Kevin,
I have two sizes of flash chips because I have a BIOS savior. My 512K chip works fine, but my 1M chip doesn't.
Here's my setting from config.h
// When option roms are not pre-deployed, SeaBIOS can copy an optionrom // from flash for up to 2 devices. #define OPTIONROM_VENDEV_1 0x47521002 #define OPTIONROM_MEM_1 0xfff00000 /* 512K uses 0xfff80000 */
Either way it looks at fff80000 for the ROM. I did a hexdump of both builds, and the only difference is
1M: 00003590 04 50 ff 74 24 04 68 22 4b 0f 00 e8 b6 dd ff ff |.P.t$.h"K.......| 000035a0 83 c4 0c 81 7c 24 04 52 47 02 10 75 14 b8 00 00 |....|$.RG..u....| 000035b0 f0 ff e8 5f ff ff ff 89 c3 85 c0 0f 85 76 01 00 |..._.........v..| 000035c0 00 ff 34 24 68 4e 4b 0f 00 e8 88 dd ff ff 89 f0 |..4$hNK.........| 000035d0 0d 0c 00 00 80 ba f8 0c 00 00 ef b2 fe ec 0f b6 |................|
512K: 00003590 04 50 ff 74 24 04 68 22 4b 0f 00 e8 b6 dd ff ff |.P.t$.h"K.......| 000035a0 83 c4 0c 81 7c 24 04 52 47 02 10 75 14 b8 00 00 |....|$.RG..u....| 000035b0 f8 ff e8 5f ff ff ff 89 c3 85 c0 0f 85 76 01 00 |..._.........v..| 000035c0 00 ff 34 24 68 4e 4b 0f 00 e8 88 dd ff ff 89 f0 |..4$hNK.........| 000035d0 0d 0c 00 00 80 ba f8 0c 00 00 ef b2 fe ec 0f b6 |................|
Notice the byte at 35b0. I checked to make sure that the 1M version is the one in the 1M chip, but it won't work unless I put the video BIOS at fff80000. I put it in both places with dd since there was plenty of space, but I couldn't see a reason why it isn't working.
Do you have any debugging suggestions?
Thanks, Myles
PS I think a comment about the order of OPTIONROM_VENDEV_* would be helpful, since it is device then vendor ID. I know it matches the hardware, but I got it wrong the first time.