Operating System in PCI option ROM

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
Pinczakko

Operating System in PCI option ROM

Post by Pinczakko »

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 ?
Mara

RE:Operating System in PCI option ROM

Post by Mara »

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!!!!
Post Reply