I'm in the process of setting up a retro PC (a 286) and because the
machine's BIOS doesn't support IDE drives, I am hoping to put the open
source XTIDE BIOS in this machine as an option ROM. I have a network
card that can make EEPROMs visible at the right memory locations, so all
I need to do is flash the XTIDE code onto an EEPROM and install it in
the old PC.
I have an EEPROM I am planning to use for this (an SST29EE020) and I'm
using a 3Com NIC to attempt to flash the XTIDE code into it. However
when I try this, I get an error:
Error: Image size (8192 B) doesn't match the flash chip's size
While I understand this would normally be a problem, for me it's fine -
I'm only interested in the first 8kB and the rest of the chip is not
important to me. But I couldn't find any options to tell flashrom to
continue and flash anyway, and --force didn't help.
My first thought was that perhaps I just need to pad the ROM image out
so that it matches the chip size, but then I run into a problem. The
chip is 256kB, but the 3Com NIC is apparently (according to flashrom)
only capable of addressing up to 128kB.
This means if I force it, the second 128kB (the padding) will probably
just get written over the first 128kB, overwriting the data I want to
keep. I guess I could pad out the 8kB XTIDE image to only 128kB, then
double that to get a 256kB image, but it's all very kludgy!
Since flashrom has options to erase the chip, would it be possible to
add another option to allow partial flashing? This would allow me to
flash my 8kB image without worrying about address wraparound or having
to flash 248kB of blanks when I don't have to!
BTW flashrom (latest stable) tells me the SST29EE020 is untested, so I
would be happy to report back with my results, assuming you accept
flashing a 256kB chip in a 128kB programmer as a valid test ;-)