Operating System in PCI option ROM
Operating System in PCI option ROM
I'm currently developing an OS in a PCI option ROM card using a 64K flash memory. I used the BEV as my method to boot the OS. My code currently working, but I still wonder how it is executed ? my code loads (probably relocates) itself into known RAM address at boot (after the BEV invoked by system BIOS) and get executed there. The thing that is still obscured is : How the code pointed to by the BEV (BEV 'partially' explained in PnP BIOS 1.0A spec) gets executed ? does system bios copies all of the code that reside in the option ROM to RAM prior to executing it ? As a hint: I discards all my option ROM codes during post, by setting the rom size to zero (offset 02h) prior to returning to system bios, and as far as I know the Expansion ROM Base Address register is disabled after POST by the system BIOS. Then how these confusing BEV booting method really works under the hood ?
RE:Operating System in PCI option ROM
I'm sure the programm situated in the rom is automatically loaded into memory. You should remember th JMP 0x0000:0xFFFFF instruction (it is used to reboot your system). This instraction has the perpose of pointing to a procedure(we can call it so) that is situated in the ROM-BIOS.
Tip:
Using an EEPROM will be better than a FLASH mem chip. Be sure!!!!
Tip:
Using an EEPROM will be better than a FLASH mem chip. Be sure!!!!