Operating System in PCI option ROM
Posted: Wed May 07, 2003 12:22 am
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 (still in real mode). 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 ? ???