Quoting Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net:
On 13.03.2008 01:36, joe@smittys.pointclark.net wrote:
As I wrote in my last mail: "erase_sector_39sf020() is the erase routine you need to use in a loop." It is the (mostly) correct routine to use. Simply call it for every block to be erased. There is an equivalent routine for the 20sf040.
However, if you want instant gratification, replace erase_jedec() with erase_lhf00l04() or erase_82802ab(). Those two functions are even closer to the datasheet recommended values. In fact, with them everything should work out of the box, including sector protection.
Carl-Daniel, I don't just want to fix this for "instant gratification". I needs to be a perminant solution. I have alot of people waiting to beta-test the RCA RM4100 coreboot bios and work on the tv-out, but we need to get flashrom working for a fallback/updates first. I can test it with the "instant gratification" method but how to incorperate this into jedec.c so it doesn't interfear with other chips that use jedec.c???
Heh. My wording was a little bit on the flowery side. Please test whether the "instant gratification" variant works, if it does, I'll take care to get it into a mergeable shape.
Please note that this will not fix writing, I'm just trying to get erase working and hope you can write to the (socketed?) chip with another tool. If the chip is not socketed, you may want to delay testing.
Of course it is socketed, I did it myself. http://www.coreboot.org/Image:Rca_rm4100_mods.jpg The board does not come socketed though. I have been using uniflash/hotflash to program the bios so far. But that is not really an option for the beta-testers so we need to get flashrom working. When I removed the // dumb check if erase was successful part from write_jedec and tried it seemed to work ok. Thanks for your help Carl-Daniel.
Thanks - Joe