Well, after many months I'm back to working on mapping IRQs for the
MaxTerm 230 thin client system (Geode GX1/CS5530).
First issue is flashrom. I've been swapping BIOS chips until now, but I
want to start using flashrom to avoid wear on the PLCC sockets.
However, flashrom identifies my SST29EE020 as an 020A, and seems unable
to erase or program it. The erase option returns immediately,
apparently doing nothing but not returning failure. The burn option
also returns immediately, and indicates failure either because the chip
isn't blank, or (I suspect) it's not actually able to write to it:
[root at fc5-test ~]# ./flashrom
Calibrating delay loop... ok
Found LinuxBIOS table at: 00000530
vendor id: eaglelion part id: 5bcm
Enabling flash write on CS5530...OK
SST29EE020A found at physical address: 0xfffc0000
Flash part is SST29EE020A (256 KB)
OK, only ENABLING flash write, but NOT FLASHING.
[root at fc5-test ~]# ./flashrom -E
Calibrating delay loop... ok
Found LinuxBIOS table at: 00000530
vendor id: eaglelion part id: 5bcm
Enabling flash write on CS5530...OK
SST29EE020A found at physical address: 0xfffc0000
Flash part is SST29EE020A (256 KB)
Erasing flash chip
[root at fc5-test ~]# ./flashrom -v linuxbios-irq-test2-20070301.rom
Calibrating delay loop... ok
Found LinuxBIOS table at: 00000530
vendor id: eaglelion part id: 5bcm
Enabling flash write on CS5530...OK
SST29EE020A found at physical address: 0xfffc0000
Flash part is SST29EE020A (256 KB)
Verifying flash - FAILED
[root at fc5-test ~]#
Any clues to flashrom's behavior appreciated.
I'm also trying to map out the IRQ routing for the onboard NIC and USB
OHCI adapters, and I have a few questions:
* Does the order the devices appear in LB's irq_tables.c matter?
* Linux always finds the LB IRQ table, but doesn't seem able to map
IRQs to my devices. Aren't the PCI IRQ lines mappable to pretty much
any available ISA IRQ line, or are these hardwired? Here's an example
of what I mean, from one of my tests (kernel 2.6.20.1, with PCI
debugging enabled):
natsemi dp8381x driver, version 2.1, Sept 11, 2006
originally by Donald Becker <becker at scyld.com>
http://www.scyld.com/network/natsemi.html
2.4.x kernel port by Jeff Garzik, Tjeerd Mulder
IRQ for 0000:00:15.0[A] -> PIRQ 02, mask 0400, excl 0800 -> newirq=10
... failed
PCI: Guessed IRQ 10 for device 0000:00:15.0
natsemi eth0: NatSemi DP8381[56] at 0xfebf2000 (0000:00:15.0),
00:50:f6:22:66:ba
, IRQ 10, port TP.
Even though it "guesses" IRQ 10, which is what I set in the table, it
doesn't work. Is that because I've got the NIC's INTA pointed at the
wrong PCI IRQ in my irq_tables.c, or because of something else?
Oh and before I forget, this is harder than a normal PC, due to the fact
that the original BIOS in this winterm was for WinCE only.
Thanks for any help with the IRQ mapping, I've not done this before and
I'm not having an easy time with it.
-Jonathan