Экзотика NEC не хочет принимать видеокарту

Попалась вот в руки экзотика на чипсете NEC
Производитель материнки Eagles
Описывать не буду, уже подробно описывали - она на форуме уже попадалась

rom.by/phpBB2/viewtopic.php?p=13120

и вот здесь поругали её BIOS
rom.by/phpBB2/viewtopic.php?t=5123

Проблема в какой-то индивидуальной непереносимости к видеокарте Asus V3000 (Riva128) PCI

Если вставить ISA видеокарту то материнка стартует и грузится ОС
Если же поставить PCI то выдает ошибку видео (8 коротких пиков спикера)

Причем как мне кажется проблема конкретно с этой видеокартой, если порыть интрнет то у людей с другими PCI картами работает

Сначала думал что есть несовместимость версий PCI - на видео то она PCI 2.1 а на материнке хрен знает, но если загрузиться при вставленной ISA и PCI то операционка распознает её корректно и проблема остается лишь в конфликте 2х видеокарт

Тоесть получается контроллер PCI работает и видеокарта работает, но POST с ней проходить BIOS не желает

BIOS у материнки собственный, меню нестандартное, словами не передать
Все что по теме (настройки контроллера в том числе и Assign IRQ for PCI VGA) уже перепробовал

Вот теперь надо решить вопрос кто виноват
Либо BIOS материнки не находит видео
Либо BIOS видеокарты особенный и не хочет подгружаться

В любом случае проблему надо решить одну - чтобы до ОС увидела видеокарту PCI как единственную

Либо нужно исправлять несовместимость и заставить видео проходить POST
Либо заставить пройти POST с ошибкой, чтобы ОС при загрузке подцепила видеокарту (на другой материнке если из видео вытащить флешку то POST пройдет с ошиибкой и пойдет дальше, а когда очередь дойдет до ОС она уже сама её проинициализирует)

Сейчас при ошибке POST останавливается и дальще грузить систему не хочет, что при этом он пишет к сожалению не увидишь

Поменять видеокарту не могу - именна эта нужна
Поменять материнку тем более - её приемущества в том что она очень маленькая (21х16), и в полном обвесе (MB, P1-166, 32MB SDRAM, Video, HDD) требует только +5V при этом ничего не греется и потребляет при этом всего 6Вт - такого больше не найти!

Помогите советом плиз, очень уж хочется поднять, итак уже с того света её вытащил (битый ШИМ, раскачка, мосфеты, отломанная панелька) :)

DiVersant писал(-а):
Если я правильно понял, 3Д будет невостребовано.

Именно !

DiVersant писал(-а):
В таком случае лучше будет воткнуть какой-нить RageII с вивой и наслаждаться. Riva128 вообще достаточно капризный зверь, особенно под в95, а что-то другое на этого зверя водружать смысла нет - слишком он крив и тормознут.

Конечно ! Опять же таки если Rage не будет так же капризничать
Ну а пока есть V3000 отлично зарекомендовавший себя под win98 буду пробовать его

Тем более под Rage опять искать дрова\утилиты
Да и найти этот Rage еще надо.....

Аватар пользователя DiVersant

Глюков в эксплуатации Rage особо замечено не было.
На радиорынке вполне можно найти. Драйвера - на сайте.
Кроме него есть еще пара приемлимых вариантов -
Matrox Mystique 220 или Millennium II+ Rainbow Runner (заодно будет аппаратный MJPEG кодер и MPEG-декодер) и карточки с тюнером и VIVO на базе CL-GD5446. К примеру, PixelView ComboTV Plus


Model name: PV-CL5446P+ / PV-CL544XP+
Драйвера: prolink.com.tw/chinese/products/discontinue.htm#5446
Юзал и то, и другое - претензий нет.

Вот еще по раннеру: dealtime.co.uk/xPF-Matrox_Rainbow_Runner_Studio_MGA_MYST_RRSTI

Thinking... [■■■■■■■■■■■■■■■□□□□□]75% completed...

Аватар пользователя Root

Цитата:
Да и найти этот Rage еще надо...

опять же знаем где найти, но, увы, человек "за так" ее не отдаст, а платить рублев 500-700 за такой раритет особого смысла не представляет:(

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя DiVersant

Ну...
Я так понимаю, это принципиальный интерес - из г. слепить пулю?
Могу сказать, что это будет г-ная пуля.
Задачи хоть какие стоят?

Thinking... [■■■■■■■■■■■■■■■□□□□□]75% completed...

Diversant писал(-а):
Ну...
Я так понимаю, это принципиальный интерес - из г. слепить пулю?

Так и есть !

Diversant писал(-а):
Могу сказать, что это будет г-ная пуля.

Ну не скажите, далеко не всегда... Я бы сказал редко

Diversant писал(-а):
Задачи хоть какие стоят?

Задача пока стоит одна - собрать микропроцессорную систему, обладающую минимальным энегопотреблением и физическими размерами, имеющую видео вход\выход
Реально для чего все это надо скажу если все получится;)

Везде, где ставиться задача построить нечто подобное за деньги, конечно можно пойти и закупиться комплектующими, но тут я бы сказал профинтерес

Root писал(-а):
опять же знаем где найти, но, увы, человек "за так" ее не отдаст, а платить рублев 500-700 за такой раритет особого смысла не представляет

Вот именно!

Что самое интересное - подобный "принципиальный интерес" возникает всякий раз когда в руки попадает что то неординарное!:)

Со стороны это выглядит, наверное, как безумие - разбираться в какой то проблеме, когда есть более удачные\готовые решения - успевай только бало отваливать:)

Можно конечно пойти еще более сложным и интересным путем - выпаять этот SAA7111A а с ним и 7003 заодно, к этому ATмегу, памяти, и.т.д. На это просто времени уйдет немерянно, с одним только протоколом CompactFlash разбираться сколько...

Сейчас проще использовать готовую платформу (DOS\Win), я не думаю что несовместимость окажется настолько принципиальной. Тем более что использовать DOS\Win гораздо разумнее чем строить свою систему и разрабатывать свою платформу с претензией на универсальность...

Ну, да это уже оффтоп...:)

Аватар пользователя icbook

Цитата:
...но я не могу понять, что в данном случае мешает загрузке?

А Вы установите POST-карту, и сообщите код останова, т.к. есть два варианта: 2Ah и 32h.

icbook писал(-а):
А Вы установите POST-карту, и сообщите код останова, т.к. есть два варианта: 2Ah и 32h.

ISA Post карта останавливается на 31h

AMIBIOS POST Checkpoint Codes писал(-а):
31h:
The display memory read/write test or retrace checking failed. Performing the alternate display memory read/write test next.

Все-таки кривой PCI ???

Добавлено спустя 8 часов 33 минуты 49 секунд:

icbook, а для AMIшного биоса видеоадаптер - это всего лишь ROM с сигнатурой 55AA в области C000 или еще какие проверки идут ?

Вот с ISA в\к можно всю память из панелек поснимать, адаптер не работает, а POST проходит
Но если вытащить BIOS то POST останавливается на 31h
Значит видео-памть не проверяется?

И по какому адресу видео-биос передается управление? (мне нужно иниц. облать найти в видео-биос)

Добавлено спустя 12 часов 49 минут 51 секунду:

2ALL , у кого если есть BIOS от этого игла - просьба - отмыльте пожалуйста, почему-то не получается слить дамп:(

Аватар пользователя DiVersant

RRA писал(-а):
Diversant писал(-а):
Ну...
Я так понимаю, это принципиальный интерес - из г. слепить пулю?

Так и есть !

Безумству храбрых...

И всё-таки, что это должно получиться в результате?
Есть нездоровые подозрения, что кривая PCI и полное отсутствие BM не дадут реализовать задуманное. Всё-таки речь идет о video-in, а это накладывает определённые требования к промзводительности...

Thinking... [■■■■■■■■■■■■■■■□□□□□]75% completed...

Определилась суть проблемы.
Вся подсистема PCI работает исправно.
Ошибка, скорее всего, в коде BIOS.

Дело в том что BIOS не может найти видео-биос карты.
При этом в\к можно инициализировать принудительно, если ссорудить следуюшее:

1)Слить с ASUS видеокарты видео-биос и записать в отдельную флешь
2)Эту флешь размесить в адресном пространстве Optional Boot ROM, вставив её в сетевую карту с DIP32 панелью
3)Вставить сетевую карту в слот PCI
4)Вставить ASUS видеокарту (без биоса) в слот PCI
5)В ISA поставить всё ту-же видео Trident9000
6)В оставшийся слот - POST-кодер

Система стартует...
1) Находится видео-биос Trident9000 и выполняется на коде 2C
2) Находится биос сетевой карты (на самом деле видео:) ) на коде 91 и передается управление ему
3) Код 97. Наш видео-биос выполняется!! Инициализируется видеокарта ASUS, при этом происходит крах Tridenta

Возникает проблема - видео-биос не хочет передавать управление назад - система стоит:(
Может последствия инициализации Trident мешают???
-------------------------------

Тоесть проблема, имхо, в том, что BIOS материнки не может найти набортный видео-биос карты

Нужно чтобы биос Riva выполнился раньше

Остается 2 способа:

1. Аппаратный - ставим рядом с панелькой BIOS на материнкскую плату еще одну панельку, под видео-биос. С помощью нехиторй логики размещаем её в адресном пространстве VGABIOS и сажаем на шину ISA

2. Программный - микрокод Видео-биос встраиваем вместо процедур поиска Video-ROM, таким образом система получит как-бы встроенную видеокарту

однако почитав такие топики - rom.by/phpBB2/viewtopic.php?t=8956 - начнешь относиться к этой идее с опаской - как далеко можно уйти от такого простого, как казалось, вопроса как внедрение видое-биос в системный:)


Ситуация осложняется несколькими факторами
- на плате AMI Bios
- он сильно покалеченный
- непакованный (+?)

Кто может что посоветовать? Мне конечно интереснее способ программный, сейчас начну понемножку изучать код биоса, хотя понимаю что допаять доп. панель будет быстрее.

Стоит ли оно того?
Кто смотрел код Eagle BIOS под NEC Power TX, сильно запутанный код?

Возникло несколько вопросов к уважаемым гуру...
Вопросы касаются ROMSCAN, а точнее той части что копирует код из микросхемки в основную память

Вот сам ROMSCAN

Параметры - BX=Очередной адрес ROM (С000-С800 или C800-E000 или E000-E800)

ROMSCAN:
     cli              Запрет прерываний
     cld              Прямое направление
     push ds          Сохраняем DS
     mov ds, bx       Загрузка адреса ROM
     xor si, si       si=0 начало ROM
     lodsw            Загрузка сигнатуры
     xor ax, AA55     Сигнатура 55AA ??
     jne NO_SIGN      Если НЕТ - выход для поиска в след. 512
     mov cx, 0080     По умолчанию размер ROM = 80x200 = 64K
     cmp bx, E000     Адрес ROM=E0000 ?
     je DEFSIZE       Если ДА - оставим 64К
     lodsb            НЕТ - загружаем реальный размер
     mov cx, ax       Размер (в блоках х512) в CX
     
DEFSIZE:
     shl cx, 05       Умножаем CX*32
     add bx, cx       И переносим в BX
     shl cx, 04       Домножаем на 16 - CX теперь реальный размер в байтах
     xor si, si       si=0 - Начало ROM
     
CHECKSUM:
     lodsb            Загружаем байт в AL
     add ah, al       AH = AH + AL - Подсчет CRC по модулю 256
     loop CHECKSUM    Повторяем для всего ROM
     jne CRCFAIL      CRC=0 ? Если НЕТ - выход
     sti              Разрешаем прерывания
     push es          Сохраняем ES-BX-BP
     push bx
     push bp

     push cs          Создаем точку возврата из ROM - сегмент
     push ROM_RET     И смещение

     push ds          Создаем искуственный переход в ROM - сегмент
     push 0003        И смещение

     call PREPARE     Подготовка к переходу
     retf             Передача управления в ROM
     
ROM_RET:
     cli              Возврат из ROM - Запрет прерываний
     cld              Прямое направление
     pop bp           Восстанавливаем ES-BX-BP
     pop bx
     pop es
     pop ds           Восстанавливаем DS
     cmp sp, sp       Стек сбалансирован?
     ret              Выход

NO_SIGN:
     add bx, 0080     Сигнатура не найдена - прибавляем 512 байт и ищем дальше

CRCFAIL:
     pop ds           Восстанавливаем DS
     ret              Выход

Вот непонятная процедура проверки

PREPARE:
     push ds               Сохраняем регистры
     push es
     push ax
     push bx
     push cx
     push dx
     push si
     push di

     mov ax, ds            В AX - Адрес ROM
     cmp ax, C000          Видео-ROM ?
     jne EXIT              Если НЕТ - выход
     mov ax, cs            Перегружаем CS->DS
     mov ds, ax
     mov cx, cs:[3BF6]     Загружаем счетчик (в прошивке = 4)
     mov si, 3AC2          Смещение

CYCLE:
     lea bx, [si+09]       Загружаем Адрес //?????
     cmp word ptr[bx],FFFF По Адресу слово = FFFF ?
     je CONTINUE           Если ДА - продолжаем цикл
     cmp byte ptr[bx+0B],03 По Адресу+И байт = 3 ?
     je EXITERR            Если ДА - Выходим с ошибкой

CONTINUE:
     add si, 004D          Смещение + 4D
     loop CYCLE            Продолжаем цикл
     call COPYROM          Копирование ROM в основную память

EXIT:
     pop di                Восстанавливаем регистры
     pop si
     pop dx
     pop cx
     pop bx
     pop ax
     pop es
     pop ds
     ret                   Выход

EXITERR:
     mov ah, 00            В AH=0
     mov al , [si+04]      В AL=?
     pop di                Восстанавливаем регистры
     pop si
     pop dx
     pop cx
     pop bx
     pop es
     pop es
     pop ds
     ret                   Выход

А вот и само копирование

COPYROM:
     push ds                    Сохраняем регистры
     push es
     pushad
     mov ax, C000               Загружаем адрес видео-ROM в AX
     mov ds, ax                 И перегружаем его в DS
     mov es, ax                 И в ES
     mov bx, 0000               Смещение = 0 - начало ROM
     cmp word ptr [bx], AA55    Проверяем сигнатуру
     jne SIG_ERR                Неверная сигнатура - выход
     mov bx, 0002               Смещение = 2 - размер ROM (x512)
     mov al , [bx]              Загружаем размер
     
     cmp al, 20                 Размер больше 20 (16K) ?
     ja ABOVE20                 Если ДА - сравниваем со следуюшим
     mov cx, 2000               Округляем размер до 16K
     mov bx, FC01               В BX - непонятные флаги
     jmp SIZEOK                 Размер определен
     
ABOVE20:
     cmp al, 40                 Размер больше 40 (32K) ?
     ja ABOVE40                 Если ДА - сравниваем со следующим
     mov cx, 4000               Округлям размер до 32K
     mov bx, F005               В BX - непонятные флаги
     jmp SIZEOK                 Размер определен
     
ABOVE40:
     cmp al, 60                 Размер больше 60 (48K) ?
     ja ABOVE60                 Если ДА - к следующему
     mov cx, 6000               Округляем размер до 48K
     mov bx, C015               В BX - непонятные флаги
     jmp SIZEOK                 Размер определен

ABOVE60
     mov cx, 8000               Округляем размер до 64K
     mov bx, 0055               В BX - непонятные флаги
SIZEOK:                         Размер определен

     mov al, 1C                 Шаманство с флагами и портами E0\E1
     out E0, al
     in al, E1
     and al , bh
     or bl , al 
     mov al, 1C
     out E0, al
     mov al , bl
     mov ah, 1C
     xchg ah, al 
     out E0, ax

                                Начинаем копирование
     mov si, 0000               Индекс источника = 0
     mov di, 0000               Индекс приемника = 0
     cld                        Прямое направление
     repz                       Повтор по размеру ROM
     movsw                      Копирование

     mov al, 1C                 Шаманство с флагами и портами E0\E1
     out E0, al
     in al, E1
     and al , bh
     not bx
     and bl , bh
     or bl , al 
     mov al, 1C
     out E0, al
     mov al , bl 
     mov ah, 1C
     xchg ah, al 
     out E0, ax
     
SIG_ERR:
     popad                     Восстанавливаем регистры
     pop es
     pop ds
     ret                       Выход

Непонятен сам механизм
К какому устройству относятся порты E0,E1 ?
И что можно перенастроить таким образом, чтобы обычная пересылка из области памяти в саму себя превратилась вдруг в копирование из памяти устройства на шине в системную память??

Добавлено спустя 21 час 20 минут 13 секунд:

Я неправильно интерпретировал процедуру PREPARE - то что я считал ошибкой на самом деле - успешное выполнение:)
Должно быть так

     mov cx, cs:[3BF6]     Загружаем количество слотов PCI (в прошивке = 4)
     mov si, 3AC2          Смещение на область конфигурации

CYCLE:
     lea bx, [si+09]       Загружаем адрес конф. пространства слота
     cmp word ptr[bx],FFFF По Смещение 0 - VendorID - есть устройство в слоте?
     je CONTINUE           Если НЕТ - продолжаем опрос
     cmp byte ptr[bx+0B],03 Смещение B - Base Class - устройство видеоадаптер (3)?
     je EXITOK              Если ДА - Выходим, нашли видеоадаптер

CONTINUE:
     add si, 004D          Смещение + 4D к следующему слоту
     loop CYCLE            Продолжаем цикл
     call COPYROM          Копирование ROM в основную память
.
.
.
.
EXITОК:
                                     Параметры для процедуры ROMINIT :
     mov ah, 00            В AH - номер шины - 0=шина PCI
     mov al , [si+04]      В AL=номер устройства:функции (5:3)

Получается копирование вызывается если в PCI не найден видеоадаптер, а значит это не мой случай

Все предыдущие вопросы пока сняты
Надо искать, где область 3AC2 заполняется

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей