yogev_ezra wrote:Мне уже можно бояться, или пока потерпеть? А если серьёзно, сколько стоит лицензия обычного BIOS? Если 3-5$ за штуку, то что так сильно изменится? Ну будет компьютер стоить 197$ вместо 200$... Где революция?
Потерпи пока, нормальные революции осенью начинаются.
А если серьёзно, то такие цены бывают только при штамповке серий по 50-100 тыс. бортов. И, кстати, судить надо не по розничным ценам, а по себестоимости: в крупносерийном производстве 3-5$ - это огромная маржа, там приходится считать буквально каждую копейку.
Если тебя интересуют реальные расценки - отправь запрос в AMI, они одно время рекламировали варианты легких биосов для встраиваемых систем. Но мне почему-то кажется, что лицензирование мелочевки ниже $50,000 их вообще не заинтересует.
К тому же ты в любом случае получишь 16-битного кота в мешке, исходники никто не откроет.
art_zh wrote:К тому же ты в любом случае получишь 16-битного кота в мешке, исходники никто не откроет.
Да - здесь ты абсолютно прав. Но если ты стираешь BIOS в любом случае и меняешь его на CoreBoot / что-то ещё, то какая тебе разница, что там было до этого, и было ли оно закрытым / открытым? Максимум, скажи своей фабрике продать тебе плату вообще без BIOS-а, и сразу прошей свою...
art_zh wrote:Я для разминки перепрошил свой BIOS с 1М на 2М SPI ROM и только что успешно загрузился.
Так что теперь для экспериментов свободно 1.15 Мбайт. Начну с полноценным BIOSом, а потом посмотрим что оттуда можно будет выкинуть.
выкинуть это как? Исходники есть? Или типа, что то подошло к данному чипсету "открытое" и кем то выложенное?...
А то по фразе лихо так "выкинуть" звучит
Или реверсишь тоже пыхтишь + даташиты на конкретный чипсет куришь???
P.S.
выкидывай смело тело прошивальщика встроенного, лого картинки, PXE boot тоже можно.
Если присутствуют, конечно
VaStaNi
BIOS довольно четко подразделяется на совершенно независимые друг от друга блоки. Характерные примеры - vBIOS для встроенной видеокарты, дисковый сервис SATA/RAID или сетевой BIOS. Я имел в виду, что некоторые из этих блоков совершенно не нужны, при случае на их место можно записать что-нибудь полезное.
Определить расположение, размер и назначение этих блоков можно с помощью утилиты bios_extract
С первой попытки удалось прошить в 2Мб-чип CoreBoot + SeaBIOS + VGA.rom + kolibri.img (неупакованный), и еще 60Кб свободного места осталось.
Загрузка длится около 1.5 секунд, быстрее чем установка видеорежима. Включается экран - и на нем уже светится синее меню Колибри
Сразу после входа в графический режим (VESA 1240x1024x32) система глухо виснет.
Похоже, зависание происходит ещё до загрузки страничных таблиц.
art_zh wrote:Загрузка длится около 1.5 секунд, быстрее чем установка видеорежима. Включается экран - и на нем уже светится синее меню Колибри
Сразу после входа в графический режим (VESA 1240x1024x32) система глухо виснет.
Всё равно - огромный прогресс! Так держать!
З.Ы. 1240x1024x32 не бывает, бывает 1280x1024x32, может поэтому и виснет
art_zh: а что говорит вывод с последовательного порта?
А вот как можно делать отладку по последовательному порту с помощью gdb http://www.coreboot.org/Debugging
XVilka
COM для отладки я пока не использовал, да и по большому счету не знаю чем он тут может помочь:
- CoreBoot работает на ASROCK E350M1, это факт.
- Синий экран подтверждает, что SeaBIOS запускается, успешно загружает ядро с img-файла и отрабатывает 16-разрядные функции ввода/вывода как положено.
- тот же Синий экран (а также факт входа в VESA-режим) подтверждает, что VideoBIOS нормально работает и управляет встроенной графикой.
Так что к CoreBoot'у в данном случае претензий нет. Во всяком случае, пока нет,-- железо можно будет полноценно протестировать только в Колибри.
Баг наверняка сидит в загрузочной части ядра - что-то не срастается при входе в 32-разрядный режим.
А конфиг SeaBIOS мой? там у меня был какой-то параметр, без которого такая же фигня была.
Где-то в предоставляемых сервисах. Поэтому мой конфиг предоставлял самый необходимый минимум для запуска колибри.
конечно VESA1280х1024, маленькая апичатка вышла. VESA-режимы выбираются в синем меню как положено - я проверял режим развертки со стороны монитора, так что проблема не здесь - дальше.
Никакого желания трассировать старт ядра на реальном железе нет, легче сразу сделать elf-загрузчик как XVilka предлагал, и не париться с SeaBiosом.