Only for programmers and BIOS gurus with technical questions.
#60331 by Awbios
Sat Jan 25, 2014 3:58 pm
Hi. I have Award bios with gPXE PCI option ROM. ROM's memory mapped:
Code: Select allVGA ROM (40K) 'A000h' in C0000
PCI ROM (42K) 'A800h' in CC000 (C0000+A000+2000 -> VGA location+VGA size+8K)

Next I added 2 ISA option ROM like this:
Code: Select allcbrom bios.bin /isa first.bin (4K) '1000h' (auto map to D7000)
cbrom bios.bin /isa second.bin d800:0 (1K) '400h'

First ISA ROM is added with /isa and CBROM added this as type ISA ROM[1]
Second ISA ROM need add like /isa xxxx:0 because /isa add same type like first [1]

Until now everything works:
  • PCI driver[A] - CC000
  • ISA ROM[1] - D7000
  • ISA ROM[A] - D8000
Now I want add one more ISA ROM (2K) to D9000 but after starting the computer ROM is not in memory. At D9000 is only FF FF FF:
Code: Select alldebug
-d d900:0 FF FF FF FF ....

I try also add third ISA ROM to E0000 but still not in memory after PC boot :-(. I noticed that the first ISA ROM is mapped always at address D7000 no matter how you insert:

cbrom bios.bin /isa first.bin

or

cbrom bios.bin /isa first.bin d700:0

or

cbrom bios.bin /other 40a4 first.bin

but

/isa always add as type ISA ROM[1]
/isa xxxx:0 always add as ISA ROM[A] (not ISA ROM[2]. Why not ISA ROM[2] or [3] ?)
/other 40a4 always add as ISA ROM[1]
What does it depend? Why the second ISA ROM's are always of type [1] if try add only with /isa parameter???

I know all ISA ROM types for /other -> Award module types
Code: Select allADD_STANDART_AWARD_MOD(0x40A0, "ISA ROM A" )
ADD_STANDART_AWARD_MOD(0x40A1, "ISA ROM B" )
ADD_STANDART_AWARD_MOD(0x40A2, "ISA ROM C" )
ADD_STANDART_AWARD_MOD(0x40A3, "ISA ROM D" )
ADD_STANDART_AWARD_MOD(0x40A4, "ISA ROM 1" )
ADD_STANDART_AWARD_MOD(0x40A5, "ISA ROM 2" )
ADD_STANDART_AWARD_MOD(0x40A6, "ISA ROM 3" )

I try also add all ISA ROM's with /other (40a0, 40a1 and 40a2) but then works only first added 8O