Hi Martin,
thanks for testing this.
On 07.04.2010 12:21, rayer wrote:
I tried the latest build and didn't get a crash - well mmap() emulation seems to be finally working ;)
Great.
but when I tried to dump flash with -V -r it hanged after probing chip: AE49F2008, skipped I wait a minute but it didn't probed other chips, so I pressed CTRL+C...
This is really bad. It means that low memory access to the SPI controller MMIO region still does not work reliably.
It also seems to have some problems with delay loop calibration. Maybe you can use DJGPP functions udelay() and uclock() with ~1us granularity.
The big problem here is that gettimeofday() apparently does not have any usable precision on your machine (maybe DOS/DJGPP related). Sometimes (always?) the time has not changed at all even after we delay for 10000 us and that causes the timer code to bail out.
So I opened the case and lookoed for the flash chip - PMC Pm49FL004T and passed - c Pm49FL004 option. Then the chip was probed OK and flash content dumped, well done.
Great.
To summarize: - gettimeofday() has precision worse than 10 ms and that triggers timer recalculation. - Low uncached memory access is still broken on DOS or our SB600 SPI code has a bug. It would be cool if you could run flashrom under Linux on that machine (no read/write needed) and post the output in verbose mode. OTOH, it is possible that the BIOS screwed up caching of the SB600 SPI MMIO region and in this case we can't do anything about it because checking MTRRs is infeasible.
Regards, Carl-Daniel