On 19.01.2008 01:08, Carl-Daniel Hailfinger wrote:
On 19.01.2008 00:17, Ronald Hoogenboom wrote:
On Fri, 2008-01-18 at 23:31 +0100, Carl-Daniel Hailfinger wrote:
Thanks for reworking the code! I have factored out some common status registers to duplicate less code and hope the code still works. Could you please review it and tell me what you think?
Fine by me, works like a charm, the way I meant it to work ;-).
Thanks, checked in and added you as copyright holder. Revision 3061.
What about the following patch on top of it?
Make sure we delay writing the next byte long enough in SPI byte programming. This could even result in a speedup. Print a "b" for every kByte written to flash. Minor formatting changes.
Signed-off-by: Carl-Daniel Hailfinger c-d.hailfinger.devel.2006@gmx.net
Index: spi.c =================================================================== --- spi.c (Revision 3061) +++ spi.c (Arbeitskopie) @@ -516,12 +516,10 @@ for (i=0; i<total_size; i++) { generic_spi_write_enable(); spi_byte_program(i,buf[i]); - /* FIXME: We really should read the status register and delay - * accordingly. - */ - //while (generic_spi_read_status_register() & JEDEC_RDSR_BIT_WIP) + while (generic_spi_read_status_register() & JEDEC_RDSR_BIT_WIP) myusec_delay(10); - //if (i%1024==0) fputc('b',stderr); + if (i % 1024 == 0) + printf("b"); } /* resume normal ops... */ outb(0x20, it8716f_flashport); @@ -553,7 +551,8 @@ if (total_size > 512 * 1024) { for (i = 0; i < total_size; i+=3) { int toread=3; - if (total_size-i < toread) toread=total_size-i; + if (total_size - i < toread) + toread = total_size - i; spi_3byte_read(i, buf+i, toread); } } else {
Regards, Carl-Daniel