Lyawon писал(а): Сб май 18, 2024 12:35 am
Только вот такой вопрос: как эту дополнительную ПЗУ использовать? Понятно, что можно какой-то больший бросить записать. А вот если мне надо BIOS extension другие позагружать? Их что, просто ровными блоками подописывать в ПЗУ после основного блока и всё? Не думаю...
Обычно системный BIOS хранится по адресу F0000 (применительно к совсем старым машинам, с некоторых 486-х уже могут положить и в E0000).
Option ROM'ы (т.е расширения) принято загружать от C0000 (биос для VGA) до E0000 невключительно. Ну и на ранних машинах (XT, 286, 386) вроде как возможно до F0000 невключительно.
Т.е. Option ROM'ы должны быть расположены раньше, чем системный BIOS. В этом основная проблема, т.к. наверняка адресация для ПЗУ BIOS фиксированная и как раз выставлена F0000.
Если бы адресация системной ПЗУ была настраиваемая, можно было бы настроить 64-килобайтную ПЗУ (27C512) на адрес E8000. Тогда бы верхняя половина этого ПЗУ находилась бы в валидной зоне для Option ROM (E8000 - E8FFF), а нижняя - аккурат по адресу F0000 (F0000 - F7FFF). При этом образ системного BIOS надо было бы прошить во вторую половину ПЗУ, а первую половину можно было бы нашпиговать мелкими (и не очень) расширениями по своему усмотрению.
Кстати, эта ПЗУ может в теории сидеть напрямую на ISA шине и изменить адресацию путём колхозинга было бы возможно.
Option ROM'ы нужно распологать по двухкилобайтным границам. Т.е. например D0000, D0800, D1000, D1800 - всё это строго говоря является валидными адресами расположения расширений и системный биос их оттуда должен подгрузить. На сетевушках с ПЗУ обычно дают выставить адреса C8000, D0000, D8000, реже E0000, E8000.
Можно попробовать расположить свои Option ROM'ы и за начальным адресом BIOS. Т.е. наш BIOS сидит по адресу F0000 и имеет объём 8 килобайт (это 0x2000 байт). Значит, первый же Option ROM можно расположить по адресу F0000 + 2000 = F2000. Но если верить википедии, системный BIOS там не обязан их искать и скорее всего не запустит.
UPD: короче, проще взять отдельную ISA-карту с ПЗУ с настраиваемой адресацией. Например, сетевушку. Но есть и открытые проекты плат с ПЗУ для Option ROM, они мелкие, поместятся в тесный корпус.