Electrical – How does Option ROM work

firmwarerom;

(Excuse me if this is not the appropriate place for such question. I just moved it from StackOverflow.)

I just read the wiki article about Option ROM.

A few questions I'd like to ask:

  1. Is Option ROM a special read-only chip on some peripheral devices?

  2. The Option ROM contains device BIOS software which is meant to help the system BIOS to interact with specific device. Right?

  3. When system boots, CPU will load the device BIOS from ROM into specific RAM address. And it is CPU that executes such device BIOS rather than the device itself. Right?

Thanks for response.

Best Answer

Wikipedia article is not much of useful information. Look here, it has good answer. IMHO option ROM is the code located in some storage device (ROM, EEPROM, flash chip) on the card inserted with "drivers" which allow using capabilities of this card. It may appear in fixed addressing space, or may be dynamically relocated according to system architecture, or be buried in RAM space switching architecture (e.g. using slotting mechanism).

Is Option ROM a special read-only chip on some peripheral devices?

I guess it can be anything which can provide code and data to CPU(s) to use the device. It can be FPGA chip with internal flash. You are to invent new ways doing it :)

The Option ROM contains device BIOS software which is meant to help the system BIOS to interact with specific device. Right?

You can say this way. This BIOS, or drivers, or whatever you call it within specific architecture - prepare system to usage of the hardware, provide APIs, hooks, calls, functions, etc.

When system boots, CPU will load the device BIOS from ROM into specific RAM address. And it is CPU that executes such device BIOS rather than the device itself. Right?

In overall you are right, but it is not necessary to copy to RAM, unless there's a kind of shadowing function is implemented which will boost code execution (RAM may be faster than ROM in access time). But there could be more than one CPU, the're could be architectures more complex that just CPU and memory (involving other controllers and intermediate devices.