Solved what is expansion rom?

June 19, 2011 at 23:01:53
Specs: Linux i686, Pentium III/82815
What is expansion ROM and expansion BIOS? or "ISA add-on BIOS"?

See More: what is expansion rom?

Report •


✔ Best Answer
June 20, 2011 at 03:16:55
OK. That is talking about very old systems (the ISA bus effectively disappeared years ago). In such cases you are correct to think that the expansion card would only work on a computer with a specific architecture. That is not the way that most modern devices work.

The truth is that in a modern computer once the OS has started booting the BIOS is not used.

The commands are written to special registers on the expansion card which appear as memory locations to the main computer, either within the main memory space (on some processors) or in a special I/O memory space (on the x86 processors, for example) where they are referred to as I/O ports.



#1
June 19, 2011 at 23:45:22
It is memory built in to an expansion device and/or additional code needed by that device. For example, a graphics card contains it's own RAM and also has it's own BIOS in ROM.

Report •

#2
June 20, 2011 at 00:13:29
What is this in reference to? Many of the original 8086/8088 motherboards had sockets for ROM chips for BASIC or whatever else someone might think of to put on a chip. If no boot device was available the bios would go to the ROM chip.

There were some ISA cards with an expansion bios for older computer bios' that couildn't see more than 1024 cylinders on a hard drive. Having that card allowed the bios to correctly see larger drives. I remember pulling a lot of those out of some of the original IBM pentium 60's that had that limitation.

Most of the good ISA IDE cards especially from Promise had an onboard bios that often extended drive support to larger drives. SCSI cards usually had their own bios too.

More modern add-on PCI ATA and SATA cards are the same way.

Back in the late 90's when everyone was worried about the Y2K bug there were some ISA add-on cards which kept the computer clock accurate past 2000.

In all cases the computer boots with the motherboard's bios and then hands off to these other bios' to do their thing.


Report •

#3
June 20, 2011 at 00:36:31
Much appreciate for the replies. So the code of expansion ROM is written for the CPU of that motherboard? Like our main processor is ARM and my card has a ROM and the expansion ROM code. Does this code have opcodes for ARM? How about if my CPU is Intel? So this way the expansion ROM code becomes dependent on the CPU which seems a bit illogical.

Report •

Related Solutions

#4
June 20, 2011 at 00:57:35
The expansion cards have their own processors. Their BIOS will be written for that processor, not the one on the motherboard.

Report •

#5
June 20, 2011 at 01:03:17
Well a rom chip or bios has to be compatible with the architecture of the motherboard but it's generally not written for a specific cpu.

Think of it as a block diagram. The first block is the motherboard bios. The next linked box is expansion bios 1, and the next maybe expansion bios 2, then option ROM 1 and then option ROM 2, etc. and then the boot devices.

I can't describe the exact process where command passes from one block to the next. You'll need a fairly decent computer science book for that. Or maybe someone with that knowledge will post in.


Report •

#6
June 20, 2011 at 02:41:38
I was told the main BIOS lets the expansion BIOS code to be executed and then it gets back to the main BIOS. But how the main BIOS jumps to the code of the expansion BIOS? or how the processor of that expansion card starts executing the instructions of the expansion BIOS?

Report •

#7
June 20, 2011 at 02:55:30
The main BIOS, or more likely routines within the Operating System, operate by sending a message to the BIOS in the card. Essentially this says "do function X with parameters Y or Z" - for example, a command to a graphics card may say "draw a line from A to B". The BIOS on the expansion command then looks at this message, interprets the command and does the necessary.

In essence, graphics cards, network cards, hard disk adapters, etc. are little computers in their own right which carry out very specialized tasks. This is particularly apparent with graphics cards which are really just computers that are very good at manipulating large arrays of data. This has now been taken advantage of by things like NVidia's CUDA which harnesses the processing power of graphics cards to do ordinary arithmetic rather than just graphics processing. In fact some very powerful computers are now being built which consist of a collection of graphics cards that do most of the work with a more conventional processor that serves to manage the graphics cards.


Report •

#8
June 20, 2011 at 03:10:47
"The next byte contains an offset describing the option ROM's entry point, to which the BIOS immediately transfers control. At this point, the expansion ROM code takes over,.. "
Please look at the following link from wiki and i have copied one line from the page :
http://en.wikipedia.org/wiki/BIOS
ijack, your comments have been very helpful and seems practical but why wiki says that the main BIOS finds the entry point of the option ROM. Meanwhile according to your words writing some commands is enough to trigger the expansion card processor. But where those bytes should be written? while the structure of the expansion routines seems not standard and pre-defined.

Report •

#9
June 20, 2011 at 03:16:55
✔ Best Answer
OK. That is talking about very old systems (the ISA bus effectively disappeared years ago). In such cases you are correct to think that the expansion card would only work on a computer with a specific architecture. That is not the way that most modern devices work.

The truth is that in a modern computer once the OS has started booting the BIOS is not used.

The commands are written to special registers on the expansion card which appear as memory locations to the main computer, either within the main memory space (on some processors) or in a special I/O memory space (on the x86 processors, for example) where they are referred to as I/O ports.


Report •


Ask Question