VGA BIOS на i855GME

Доброго дня, коллеги!

Имеем следующего зверя - AEC-6910. Построено это чудо на базе чипсета i855GME.

Предыстория такова: необходимо вывести графику под FreeBSD и Xorg на панель с соотношением сторон 16:9. Драйвер видео i810(4) поддерживает работу только с режимами, прописанными в VGA BIOS. Нужно ли упоминать, что при просмотре утилиткой /usr/ports/sysutils/915resolution списка "зашитых" режимов, необходимых не обнаружилось?:)
В итоге встал перед выбором: либо исправлять драйвер i810, либо править BIOS. После прочтения массы материалов на этом сайте и форуме, остановился все же на втором, т.к. вопрос показался вполне решаемым.

Для генерации VGA BIOS для интеловских чипсетов с интегрированным графическим ядром применяется связка из Intel Embedded Graphics Drivers Configuration Editor (IEGD CED) и Open Watcom C/C++. Это ПО позволяет скомпилить бинарник VGA.BIN, который, как написано в официальном мануале, интегрируется в системный BIOS материнской платы. Но вот как его туда корректно интегрировать - Intel не сообщает. Рекомендует обращаться к производителю BIOS или MB. Несмотря на то, что партию контроллеров AEC-6910 мы покупаем большую, производитель ничего толком сказать не смог. Наверное, сам поразмещал OEM-заказы конторам-однодневкам... Пришлось вот лезть в инет и искать, как обойти алчных производителей:))) Впрочем, это все лирика.

Практика же заключается в следующем: из материнки вытащен BIOS, при помощи вышеуказанного ПО сгенерирован VGA.BIN, теперь дело за малым - объединить:)

Вот что имеем:

C:\Award\CBROM>cbrom original.bin /d
cbrom V1.55 [10/12/05 Release] (C)Phoenix Technologies 2001-2005

              ******** original.bin BIOS component ********

 No. Item-Name         Original-Size   Compressed-Size Original-File-Name
================================================================================
  0. System BIOS       20000h(128.00K)  13A16h(78.52K)  8150P15A.BIN
  1. XGROUP CODE       0CC50h(51.08K)   08902h(34.25K)  awardext.rom
  2. ACPI table        03CDFh(15.22K)   01857h(6.08K)   ACPITBL.BIN
  3. EPA LOGO          0168Ch(5.64K)    0030Dh(0.76K)   AwardBmp.bmp
  4. YGROUP ROM        0C1B0h(48.42K)   04D2Ch(19.29K)  awardeyt.rom
  5. GROUP ROM[ 0]     04720h(17.78K)   02040h(8.06K)   _EN_CODE.BIN
  6. VGA ROM[1]        10000h(64.00K)   07DD4h(31.46K)  MTG_3148.DAT
  7. GROUP ROM[ 5]     01A00h(6.50K)    00C65h(3.10K)   M09_3148.BIN
  8. GV3                01CDDh(7.22K)   00B74h(2.86K)   PPMINIT.ROM
(SP) NCPUCODE          18800h(98.00K)   18800h(98.00K)  NCPUCODE.BIN

  Total compress code space  = 4B000h(300.00K)
  Total compressed code size = 46995h(282.40K)
  Remain compress code space = 0466Bh(17.60K)

                          ** Micro Code Information **
Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID
------------------+--------------------+--------------------+-------------------
SLOT1  01   0692  |  SLOT1  02   0694  |  SLOT1  45   0695  |  SLOT1  07   0695
SLOT1  06   06D0  |  SLOT1  09   06D1  |  SLOT1  10   06D2  |  SLOT1  17   06D6
SLOT1  20   06D8  |  SLOT1  08   06E0  |  SLOT1  0C   06E1  |  PPGA   0C   06E1
SLOT1  26   06E4  |  SLOT1  39   06E8  |  PPGA   53   06EC  |  SLOT1  50   06EC
SLOT1  01   0692  |  SLOT1  02   0694  |  SLOT1  45   0695  |  SLOT1  07   0695
SLOT1  06   06D0  |  SLOT1  09   06D1  |  SLOT1  10   06D2  |       0000     000
0
     0000     0000|       0000     0000|  ^C

Вроде бы все красиво: только что сгенерированный VGA.BIN и несжатый VGA ROM (он же MTG_3148.DAT) имеют одинаковый размер - 64К, однако если глянуть на их внутреннюю структуру, то вылазят кое-какие несоответствия. Например, в "зашитом" в системный BIOS модуле часто встречаются plain-text сигнатуры производителя вроде "Интел инсайд" или "аллах акбар" (шутка), однако VGA.BIN никаких подобных "штучек" внутри не имеет - чисто бинарник, без всяких там стихов внутри. Из этого вылазит одна неприятность, из-за которой и стопорнулся: размер сжатого MTG_3148.DAT - 31.46K, а вот сгенерированный VGA.BIN сжимается при помощи LHA до 53К (сказываются различия в структуре). Генерировать пробовал много раз, с разными опциями - степень сжатия всегда оставалась порядка 84%, то есть результирующий размер сжатого файла при любых установках нового VGA BIOS оставался в пределах 53К.
Если присмотреться, то становится очевидным, что даже с учетом замены VGA ROM и удаления EPA и GV3 (кстати, не особо уверен, что его можно удалять) места на новый VGA ROM не хватит.

Кроме того, есть несколько вещей, которые смущают:
1. При перечислении Micro Code Information CBROM вываливается с ошибкой - к чему бы это? (ОС - WinXP SP2 со всеми обновлениями и исправлениями). CBROM версии 1.55, т.е. - последний, предыдущие версии вообще не видят NCPUCODE b некорректно определяют GV3, так что применять их смысла нет. Кстати, предыдущие версии и не перечисляют ничего...
2. При помощи CBROM невозможно ни извлечь, ни удалить NCPUCODE.
3. CBROM учитывает размер NCPUCODE в Total compressed code size при том, что NCPUCODE не сжат (рядом с именем модуля я не нашел характерных для lha заголовков, да и сам CBROM определяет этот модуль как non-compress cpu code.
4. Total compress code space составляет всего 300К, что как бы маловато для общего размера в 512К (4-Мб флешка). Ведь встречаются и 400К свободного места...

Собственно, вопросы, как всегда, очевидны: кто виноват и что делать?:))) А если серьезно, то хотелось бы узнать - нет ли возможности каким-либо образом сжать NCPUCODE? Ведь места он занимает ооочень немало. Ну и может быть посоветуете, что можно безбоязненно выбросить из прошивки, чтобы на новый VGA ROM хватило места? У девайса есть несколько не особо нужных интегрированных устройств (PCMCIA, CF, watchdog и несколько последовательных портов, которые реализованы отдельными чипами, на них даже в BIOS Setup отдельная страничка выделена) - и ни одного явно предназначенного для них модуля!!!! То есть я даже не знаю, чего бы такого грохнуть... Может быть, есть еще какой-то способ увеличить доступное для записи модулей место, а то 300К смотрится смешно. И, до кучи, кроме VGA BIOS хотелось бы еще туда загнать LAN BOOTROM (вдохновился парой веток на форуме) - загрузка по сети в принципе нужна, но не реализована в существующей прошивке. Только вот место, место, место...

Добавлю, что флешка на маме - 49LF004A, установлена в колодку PLCC, так что заменить ее не составит труда, если угроблю. Правда, не на ходу - при разборке девайса камень и северный мост отрываются от корпуса-радиатора, следовательно при включенном девайсе до BIOS не добраться. Ну это мелочи - сделаю парочку копий (программатор и флешки имеются), так что экспериментов можно не бояться.

Заранее всем благодарен за помощь.

Аватар пользователя J`JF

Да, спасибо, забыл отписаться. Процедура завершилась... полным провалом:))) Нет, с точки зрения модификации BIOS все класс. Винда запускается, линукс запускается, фря - тоже, но только в консоли. Микрокоды расковырял, хотел бы написать тулзу для работы с ними, но нет у меня базы данных по идентификаторам процессоров, а то было бы классно и, думаю, кое-кому пригодилось бы.


Да, так вот, для работы графики с IEGD-VBIOS нужны свои драйвера. Они есть для Linux и win32, но для FreeBSD их нет. Так что понаблюдав консоль, поняв, что это не то, что нужно, занялся поисками исходников простого Video BIOS для интегрированного видеоядра Intel, а не IEGD. Они точно есть, ведь как-то этот, заранее прошитый BIOS сгенерировали... Трясу пока поставщиков, но что-то надежды на усепх все меньше и меньше... Никто не сталкивался?

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

reactivated.net/weblog/archives/2007/04/widescreen-intel-video-bios-hack-n...

geocities.com/stomljen/

Добавлено спустя 6 минут 48 секунд:

Для Intel740 в своё время бродили исходники BIOS

Добавлено спустя 4 минуты 38 секунд:

download.intel.com/design/intarch/specupdt/30839205.pdf

Добавлено спустя 5 минут 1 секунду:

intellinuxgraphics.org/documentation.html

Дрессируем коров :)

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые 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.

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

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