3dfx Voodoo 2 - ремонт?

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
jack7277
Newbie
Сообщения: 45
Зарегистрирован: 07.05.2015,16:03
Откуда: Н.Новгород

3dfx Voodoo 2 - ремонт?

Сообщение jack7277 » 28.05.2020,11:37

Ответили с utsource, нет у них на складе памяти.

Jager
Advanced Member
Сообщения: 1469
Зарегистрирован: 10.11.2018,21:27

3dfx Voodoo 2 - ремонт?

Сообщение Jager » 03.06.2020,17:30

Влезу и со своим вопросом, но про Banshee.
Чем лучше проверить память целиком? Есть подозрения что несколько дорожек повреждены - виднеется медь, но непонятно разорваны они или нет.

Аватара пользователя
flytux
Full Member
Сообщения: 296
Зарегистрирован: 29.07.2019,15:50
Откуда: Ханты

3dfx Voodoo 2 - ремонт?

Сообщение flytux » 04.06.2020,13:40

Аккуратно и точечно процарапать дорожки до меди выше и ниже повреждений, проверить тестером.
Залудить с использованием ЛТИ-120 (хорошо к окислам цепляется), промыть, нанести на повреждения зеленую маску
---
Достойная замена Кая. Хорошая агрессивность, напористая, иохайды! (с) Кай

DanDare
Newbie
Сообщения: 59
Зарегистрирован: 06.02.2022,15:26
Откуда: Россия

3dfx Voodoo 2 - ремонт?

Сообщение DanDare » 10.09.2022,17:12

Досталась и мне Вуда - приобрёл здесь на форуме (продавалась как неисправная).
После пропайки FBI карта стала определяться системой. Драйвера встали нормально,
но glide вылетает с ошибкой.
Вот лог MOJO.EXE:

Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0xd4d2a000
Physical Base Address: 0xe6000008
PCI Device Number: 0xf
Vendor ID: 0x121a
Device ID: 0x2
FBI Revision: 2
FBI Memory: 4 MB
FBI PowerOn Sense: 0x2
TMU PowerOn Sense: 0xdead
FBI DAC Output Color Format: 24BPP
Scan-Line Interleaved? No
TMU Revision: 57005
Number TMUs: 57005
WARNING: Board 0: Bogus number of TMUs (57005)!

--------------------------------begin---------------------------------
sst1Init Routines: InitCode $Revision: 5 $
sst1InitMapBoard(): BoardsInSystem = 1
sst1InitMapBoard(): vAddr:0xd4d2a000 pAddr:0xe6000008 Dev:0xf Board:0
sst1InitRegisters(): Setting TREX-to-FBI FIFO THRESHOLD to 0x8...
sst1InitRegisters(): Setting PRELIM FT-CLK delay to 0x8...
sst1InitRegisters(): Storing TREX0INIT0=0x5441
sst1InitRegisters(): Storing TREX0INIT1=0xf420
sst1InitRegisters(): Storing TREX1INIT0=0x5441
sst1InitRegisters(): Storing TREX1INIT1=0xf420
sst1InitRegisters(): Storing TREX2INIT0=0x5441
sst1InitRegisters(): Storing TREX2INIT1=0xf420
sst1InitRegisters(): Setting up FAST DRAM Configuration
ERROR: b_sum=0x040 r_sum=0x000
sst1InitFillDeviceInfo(): Retry #1 for chip GetInfo()...
ERROR: b_sum=0x040 r_sum=0x000
sst1InitFillDeviceInfo(): Retry #2 for chip GetInfo()...
ERROR: b_sum=0x040 r_sum=0x000
sst1InitFillDeviceInfo(): Retry #3 for chip GetInfo()...
ERROR: b_sum=0x040 r_sum=0x000
sst1InitFillDeviceInfo(): Retry #4 for chip GetInfo()...
ERROR: b_sum=0x040 r_sum=0x000
sst1InitRegisters(): ERROR filling DeviceInfo...
--------------------------------end------------------------------------

Нащёл исходники glide из какого-то старого Slackware Linux
(glide2x.tar.gz, swlibs.tar.gz) ещё пригодился порт glide под OS2
(LIB-Glide-2.zip) плюс немного магии Voodoo и удалось таки
собрать из всего этого MOJO.EXE - теперь появилась возможность
более гибко твикать процесс инициализации:


if (r_sum != b_sum) {

INIT_PRINTF(("ERROR: b_sum=0x%03x r_sum=0x%03x\n", r_sum, b_sum));

return(FXFALSE);

}

if (rb_tbl[r_sum] != -1) {

INIT_PRINTF(("ERROR: non-unique r/b_sum=0x%03x\n", r_sum));

return(FXFALSE);

}


rb_tbl[r_sum] = tst_color;


if (g_tbl[g_sum] != -1) {

INIT_PRINTF(("ERROR: non-unique g_sum=0x%03x\n", g_sum));

return(FXFALSE);

}
g_tbl[g_sum] = tst_color;


...


Убрав всё return(FXFALSE) получил такой лог:


Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0xd4d2a000
Physical Base Address: 0xe6000008
PCI Device Number: 0xf
Vendor ID: 0x121a
Device ID: 0x2
FBI Revision: 0
FBI Memory: 4 MB
FBI PowerOn Sense: 0x2
TMU PowerOn Sense: 0x208cf
FBI DAC Output Color Format: 16BPP
Scan-Line Interleaved? No
TMU Revision: 7
Number TMUs: 2
TMU 0 RAM: 4 MB
TMU 1 RAM: 0 MB






Вот собственно код теста, на котором вылетает инициализация:

ISET(sst->fbzColorPath, SST_RGBSEL_C1 | SST_CC_PASS);
//закрашенный path (?)
ISET(sst->fbzMode, SST_DRAWBUFFER_FRONT | SST_RGBWRMASK | SST_ENDITHER);
RGB последовательность байт

int x=0,y=0;

for (tst_color = 0; tst_color <= 255; tst_color++) {

INIT_INFO((2,"tst_color=0x%02x\n", tst_color));

ISET(sst->c1, (tst_color << 16) | (tst_color << 8) | tst_color);
//серый цвет (r=b=g) интенсивностью tst_color

drawTriangle(sst, x,y,36);
//рисует треуголник в Framebuffer

if(readAndSum4x4(sstbase, x,y, &r_sum,&g_sum,&b_sum) == FXFALSE)
; //сумирует каждый из цветов в квадрате 4x4
return(FXFALSE);
//тк r=b=g, то и сумма каждого цвета должна совпадать,


if (r_sum != b_sum) {

INIT_PRINTF(("ERROR: b_sum=0x%03x r_sum=0x%03x\n", r_sum, b_sum));

return(FXFALSE);

}



}

ERROR: b_sum=0x040 r_sum=0x000 - читай на чёрном треугольнике (tst_color = 0) появляется артифакт ввиде синих пикселей.

Что может быть? Битая память ? FBI ?

shikoist
Newbie
Сообщения: 47
Зарегистрирован: 31.01.2019,09:14
Откуда: Красноярск
Контактная информация:

3dfx Voodoo 2 - ремонт?

Сообщение shikoist » 11.09.2022,15:49

TMU второй показывает 0 мегабайт памяти. Он либо неисправен, либо к нему нет питания. Я бы проверял дорожки.

DanDare
Newbie
Сообщения: 59
Зарегистрирован: 06.02.2022,15:26
Откуда: Россия

3dfx Voodoo 2 - ремонт?

Сообщение DanDare » 12.09.2022,14:10

Так треугольник этот рисуется в памяти FBI, да и текстурирование для него не применяется

Обнаружение количества памяти подключенной к FBI происходит достаточно просто без её тестирования
и не одинаково для вариантов с 4, 2, 1 MB:

ISET(sst->lfbMode, SST_LFB_ZZ | SST_LFB_WRITEFRONTBUFFER |
SST_LFB_READDEPTHABUFFER);
sst1InitIdleFBI(sstbase);

/* Check for 4 MBytes... */
/* Write to Zbuffer in 800x600 resolution in upper 2 MBytes of memory */
LFB_PUTPIXEL(128, 100, 0xdead); /* maps to row:0x216, col:0x80, bank:0x1 */
LFB_PUTPIXEL(0, 0, 0x0);
LFB_PUTPIXEL(798, 599, 0xffff);
LFB_PUTPIXEL(200, 200, 0x55aa); /* maps to row:0x23d, col:0x104, bank:0x0 */
LFB_PUTPIXEL(20, 20, 0xffff);
LFB_PUTPIXEL(400, 400, 0x0);
sst1InitIdleFBI(sstbase);
if((LFB_GETPIXEL(128, 100) == 0xdead) &&
(LFB_GETPIXEL(200, 200) == 0x55aa)) {
retval = 4;
ISET(sst->lfbMode, (SST_LFB_565 | SST_LFB_READBACKBUFFER));
sst1InitIdleFBI(sstbase);
goto fbiMemSizeDone;
}


check2MByte:
/* Check for 2 MBytes... */
/* Write to color buffer in 640x480 resolution */

sst1InitSetResolution(sstbase, &SST_VREZ_640X480_60, 0);
ISET(sst->lfbMode, SST_LFB_565 | SST_LFB_WRITEFRONTBUFFER |
SST_LFB_READFRONTBUFFER);
sst1InitIdleFBI(sstbase);
LFB_PUTPIXEL(50, 100, 0xdead); /* maps to row:0x1e, col:0x99, bank:0x0 */
LFB_PUTPIXEL(0, 0, 0x0);
LFB_PUTPIXEL(638, 479, 0xffff);
......


Проверил память от memptr = SST_LFB_ADDRESS(sstbase) разными паттернами, выявился странный баг - если A4 = 0 D11 западает на 1,
и так на потяжении всего colorbuffer,
запись множества случайных данных в небитые ячейки ошибок не выявило - можно сказать, что щина данных исправна:


ADDRESS W R W^R
0x00000000: ( 000000000000000000000000 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000001: ( 000000000000000000000001 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000002: ( 000000000000000000000010 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000003: ( 000000000000000000000011 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000004: ( 000000000000000000000100 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000005: ( 000000000000000000000101 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000006: ( 000000000000000000000110 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000007: ( 000000000000000000000111 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000008: ( 000000000000000000001000 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000009: ( 000000000000000000001001 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0000000A: ( 000000000000000000001010 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0000000B: ( 000000000000000000001011 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0000000C: ( 000000000000000000001100 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0000000D: ( 000000000000000000001101 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0000000E: ( 000000000000000000001110 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0000000F: ( 000000000000000000001111 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x00000010: ( 000000000000000000010000 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000011: ( 000000000000000000010001 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000012: ( 000000000000000000010010 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000013: ( 000000000000000000010011 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000014: ( 000000000000000000010100 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000015: ( 000000000000000000010101 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000016: ( 000000000000000000010110 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000017: ( 000000000000000000010111 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000018: ( 000000000000000000011000 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x00000019: ( 000000000000000000011001 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0000001A: ( 000000000000000000011010 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0000001B: ( 000000000000000000011011 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0000001C: ( 000000000000000000011100 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0000001D: ( 000000000000000000011101 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0000001E: ( 000000000000000000011110 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0000001F: ( 000000000000000000011111 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
..........................................................................................................
0x0007FFE0: ( 000001111111111111100000 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE1: ( 000001111111111111100001 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE2: ( 000001111111111111100010 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE3: ( 000001111111111111100011 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE4: ( 000001111111111111100100 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE5: ( 000001111111111111100101 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE6: ( 000001111111111111100110 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE7: ( 000001111111111111100111 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE8: ( 000001111111111111101000 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFE9: ( 000001111111111111101001 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFEA: ( 000001111111111111101010 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFEB: ( 000001111111111111101011 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFEC: ( 000001111111111111101100 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFED: ( 000001111111111111101101 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFEE: ( 000001111111111111101110 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFEF: ( 000001111111111111101111 ) 0x00000000 ----- 0x00000800 ( 000000000000100000000000 )F
0x0007FFF0: ( 000001111111111111110000 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF1: ( 000001111111111111110001 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF2: ( 000001111111111111110010 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF3: ( 000001111111111111110011 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF4: ( 000001111111111111110100 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF5: ( 000001111111111111110101 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF6: ( 000001111111111111110110 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF7: ( 000001111111111111110111 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF8: ( 000001111111111111111000 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFF9: ( 000001111111111111111001 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFFA: ( 000001111111111111111010 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFFB: ( 000001111111111111111011 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFFC: ( 000001111111111111111100 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFFD: ( 000001111111111111111101 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O
0x0007FFFE: ( 000001111111111111111110 ) 0x00000000 ----- 0x00000000 ( 000000000000000000000000 )O

прозвонил соединения между FBI и RAM вроде всё OK (замыканий и отвалов не обнаружил)

DanDare
Newbie
Сообщения: 59
Зарегистрирован: 06.02.2022,15:26
Откуда: Россия

3dfx Voodoo 2 - ремонт?

Сообщение DanDare » 13.09.2022,10:05

Теперь неведомо что случилось - сегодня решил продолжить эксперименты с картой, а она вдруг вешает систему при любой попытки чтения/записи её адресного пространства.. прошёлся мультиметром по сигналам PCI, обрывов не наблюдаю, да и карта сконфигурирована в PCI пространстве без аномалий. Пайка на вид выглядит тоже ничего. Хз что могло с ней за ночь стать - вчера всё работало. На всякий случай вот табичка соединений (неполная) FBI с DRAM. Она не претендует на точность, но как ориентир сойдёт


PIN119 - BANK_R_A4 RA6
PIN118 - BANK_R_A5 RA6
PIN117 - BANK_R_A6 RA6
PIN116 - BANK_R_A7 RA6
PIN115 - BANK_R_A8 R34

PIN120 - BANK_R_A3 RA8
PIN121 - BANK_R_A2 RA8
PIN122 - BANK_R_A1 RA8
PIN123 - BANK_R_A0 RA8

PIN110 - BANK_L_A4 RA3
PIN109 - BANK_L_A5 RA3
PIN108 - BANK_L_A6 RA3
PIN107 - BANK_L_A7 RA3
PIN106 - BANK_L_A8 R32

PIN114 - BANK_L_A0 RA5
PIN113 - BANK_L_A1 RA5
PIN112 - BANK_L_A2 RA5
PIN111 - BANK_L_A3 RA5

PIN27 - DRAM_U4_D0
PIN28 - DRAM_U4_D1
PIN29 - DRAM_U4_D2
PIN30 - DRAM_U4_D3

PIN31 - DRAM_U4_D4
PIN32 - VSS
PIN33 - DRAM_U4_D5
PIN34 - DRAM_U4_D6
PIN35 - DRAM_U4_D7

PIN40 - DRAM_U4_D10


PIN63 - DRAM_U5_D15
PIN62 - DRAM_U5_D14
PIN61 - DRAM_U5_D13
PIN60 - DRAM_U5_D12
PIN59 - VSS
PIN58 - DRAM_U5_D11
PIN57 - DRAM_U5_D10
PIN56 - DRAM_U5_D09
PIN55 - DRAM_U5_D08

третий столбец - резистор в цепи (позиционное обозначение на плате Diamond)

DanDare
Newbie
Сообщения: 59
Зарегистрирован: 06.02.2022,15:26
Откуда: Россия

3dfx Voodoo 2 - ремонт?

Сообщение DanDare » 14.09.2022,15:53

Продолжение истории: после безуспешных попыток найти причину отказа, решил всё таки полностью перепаять чип FBI, и о чудо - она заработала. Теперь обычная непатченая версии mojo выдаёт такой лог, глюк залипания памяти FBI тоже исчез - жаль теперь не удастся выяснить его причину, глюк был весьма интересен:


Info for Voodoo board # 0:
=====================================================
Virtual Base Address: 0xd4d2a000
Physical Base Address: 0xe6000008
PCI Device Number: 0xf
Vendor ID: 0x121a
Device ID: 0x2
FBI Revision: 2
FBI Memory: 4 MB
FBI PowerOn Sense: 0x2
TMU PowerOn Sense: 0x208cf
FBI DAC Output Color Format: 16BPP
Scan-Line Interleaved? No
TMU Revision: 7
Number TMUs: 2
TMU 0 RAM: 4 MB
TMU 1 RAM: 0 MB


Бублик крутится, но текстуры `мерцают` (не знаю как на словах это объяснить). Наверно виноват второй TMU, А вот демка Virhe идет нормально.
Есть ещё проблема - пока перепаивал чип, немножко его уронил на стол, замялись ноги по стороне ближней к PCI, выравнял как мог, но далеко от идеального - карта потеряла товарный вид. Если разберусь с TMU, то за сколько можно примерно её продать с гнутыми ногами ?

Ответить