Автор: Compiller , 3 сентября 2007
В общем есть задачка - хочу сделать себе в AWARD BIOS штуку - интегрированный memtest86+. Данная штука реальна и сделана в матплатах Biostar TForce 550. Необходимые модули для этого лежат здесь - http://www.rebelshavenforum.com/sis-bin/ultimatebb.cgi?ubb=get_topic;f=52;t=000074;p=0. Точнее http://www.lejabeach.com/sisubb/memtest170rom.zip. Первая ссылка обсуждение на буржуйском форуме как обновить данную штуку.
В общем в чём стопор у меня - пока теоретизирую. Как сделать данную функцию вызываемой к примеру после прохождения POST, например вместо Alt+F2 вместо awdflash или ezflash? Award BIOS дулает какие-то проверки? Второе - в идеале сделать эту функцию пунктом в BIOS Setup - там же на этом буржуйском форуме описано добавление нового пункта в Award BIOS Setup.
Все предложения - обсуждаются здесь - авось мой опыт поможет кому ещё.
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Strelets

18 лет 10 месяцев назад

Господа, для решения этой задачи мне требуется даташит на чипсет NVIDIA GeForce 6150 + nForce 430 .

Прошу помощи.

icbook

18 лет 10 месяцев назад

- Нашли дураков! -- Визгливо кричал Паниковский. - Вы мне дайте Среднерусскую возвышенность, тогда я подпишу конвенцию.

- Как? Всю возвышенность? - заявил Балаганов. - А не дать ли тебе еще Мелитополь впридачу? Или Бобруйск?

:)

Упавший с Луны (не проверено)

18 лет 10 месяцев назад

"Мальчик, может, тебе дать ещё и ключ от квартиры, где деньги лежат?"

BC

18 лет 10 месяцев назад

Strelets
не нужны там даташиты, если только ты конечно не собрался дописывать memtest (который похоже далеко не все чипсеты поддерживает). Но nforce4 он вроде поддерживает, включая и intel edition. Я особо не вдавался в сорцы мемтеста, но он похоже не сильно опирается на работу с чипсетом, в основном идентификация. ;) Так, немного.

BC

18 лет 10 месяцев назад

я решил сделать полноценный редактор для award6 меню, ориентированный на моддинг, с поддержкой special item'ов.
Руками добавлять полноценный пункт меню -- геморрой, даже с использованием вспомогательных утилиток (типа дампера menuitem'ов или добавления своего текста к _xx_code.bin). Особенно, если не какой-нть банальный выбор из нескольких пунктов, а тотально опирающийся на код, т.е. на обработчики. В модбине же не редактор меню, а залепа, для серьёзных целей не годится.


Чтобы можно было при добавлении новой функции автоматически
1. добавить новый пункт меню с заданными атрибутами, в т.ч. и заданием special-обработчиков для menuitem'а
2. найти свободное место в original.tmp
3. записать туда код своего обработчика(-ов)
4. для этого пункта сделать релокацию страницы menuitem'ов в свободное место (актуально для special'ов и меню в original.tmp).
5. автоматом изменять/добавлять строки в _xx_code.bin
6. соответственно настроить все указатели на special'ы и обработчики

Ну и ессно редактирование/удаление существующих пунктов.

E.T.A. = на этой неделе.

Santa

18 лет 10 месяцев назад

[off]скрестил пальцы. Боюсь спугнуть [/off]

apple_rom

18 лет 10 месяцев назад

Немного пока неконструктивной критики. :)

Цитата:


  • 1. добавить новый пункт меню с заданными атрибутами, в т.ч. и заданием special-обработчиков для menuitem'а
  • 2. найти свободное место в original.tmp
  • 3. записать туда код своего обработчика(-ов)
  • 4. для этого пункта сделать релокацию страницы menuitem'ов в свободное место (актуально для special'ов и меню в original.tmp).
  • 5. автоматом изменять/добавлять строки в _xx_code.bin
  • 6. соответственно настроить все указатели на special'ы и обработчики

Минус в совместимость. Не во всех BIOS есть свободное место, а где есть - не всегда можно автоматизировать его поиск для корректного использования. Так работал патчер самых первых версий.
Выход - использовать модульность и учитывать "динамичность" (не пытаясь рассчитывать на "статичное" свободное место в E000/F000).
C радостью предоставлю исходники биоспатчера для реализации подобного (вряд ли особо помогут-понадобятся), равно как и ромпатчера (с реализации виндовой оболочки и не только для аварда) - в нём была заложена как раз реализация всего вышеописанного в том числе.

BC

18 лет 10 месяцев назад

Предполагается, что основной код обработчиков будет размещаться как раз не в original.tmp, а в отдельном модуле. В оригинал.тмп будет писаться только необходимый минимум для передачи управления куда надо и переходники для обработчиков. Но вообще при наличии достаточного места в original.tmp можно целиком селиться и там, это не принципиально. Под это дело планируется встроенный модуль-лоадер, чтобы, например, можно было добавить к биосу прогу (+вызов из сетапа) типа ezflash.exe не написав (в идеале) ни одной строчки на ассемблере. ;)



насчет своб.места пока следующие мысли:



- взвалить задачу нахождения своб.места на программера -- поиском или принесением чего-либо в жертву и соотв. подсовыванием проге смещения и размера этой области.
- пробовать определенный набор известных мест, ессно проверять их на n-ое кол-во 00/FF. Сейчас весьма лакомой областью является большой массив нулей перед +E000h в F-Seg (т.е. 1E000h в original.tmp). Пока проверил примерно десяток авардов -- во всех перед E000h имеются нули.
- задействовать неиспользуемые menuitem'ы, если конечно таковые найдутся. Много места и не надо в принципе, если найдутся хотя бы несколько подходящих -- уже неплохо. Здесь также предусматривается определенный ручной режим, т.е. возможность принести в жертву какой-то menuitem по указанию пользователя, т.к. далеко не всегда программа может автоматически определить, что menuitem не нужен.



Пока мне бы пригодилась свежая инфа по управляющим последовательностям в сообщениях (BORDER, POS, etc.), т.к. они похоже со времен исходников 6го аварда немного поменялись. Сужу по тому, что на выходе дампера _en_code.bin есть некоторые строки с кракозябрами. Пока с ними не разбирался, может и просто какой баг, но вообще похоже на новые/изменившиеся управляющие структуры.




А что за ром патчер, где его взять можно? На сайте вроде только bios patcher нашел.

apple_rom

18 лет 10 месяцев назад

Цитата:
В оригинал.тмп будет писаться только необходимый минимум...

"Писаться" - это слово цепляет целую кучу не всегда очевидных проблем, погрязнув с разрешением которых у большинства опускаются руки и "до задуманного" дело просто обычно не доходит. ;) Любое вмешательство потребует пересчёта изменённых контрольных сумм и соблюдения формата структуры образа BIOS при сборке. Это учёт вариантов с разными по объёму BIOS, учёт "оемных" вариаций, "исторических" модификаций и т.д. и т.п. Потому "ломовой" метод (с записью поверх и последующей перепаковкой) - стратегически неверный подход. Основания к таковому утверждению у меня есть - намучался с первыми версиями патчера, пытаясь "всё учесть". Всё перевешивает то, что гарантировать народу работу такого пересобранного BIOS - невозможно по определению. И в результате - смысл сделанного может быть полностью убит потенциальным риском убить систему.

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

п.с. Исходники скину - стукнись в аську...

NiTr0

18 лет 10 месяцев назад

Еще насчет мемтеста - ему глубоко все равно, какой северный/южный мост ;) старые версии прекрасно работали на новых АМД...