[coreboot] SST25VF016B (2MB) flash on m57sli (IT8716F).

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Tue Jan 22 01:09:09 CET 2008


Harald: This patch should fix your problems writing to the chip. Use
either "patch -l" or remove the // before
//while (generic_spi_read_status_register() & JEDEC_RDSR_BIT_WIP)

Ronald: I need an ack to commit this.

On 20.01.2008 11:59, Ronald Hoogenboom wrote:
> Carl-Daniel Hailfinger wrote:
>
>   
>> Did you have time to test with the while
>> (generic_spi_read_status_register() & .._WIP) enabled? It would be more
>> correct to have it enabled.
>>
>>     
> I had that in initially (that's why it was there, but commented out) but 
> all it got me was slower programming times and the datasheet also 
> suggests it is ok to just do a timed wait. But in the face of 
> genericness for other chips, it is indeed more correct to do the check 
> for the busy bit.

Ronald/Harald, can you please ack the change? It is reproduced below
(whichspace-damaged).

Regards,
Carl-Daniel

Make sure we delay writing the next byte long enough in SPI byte
programming.
Minor formatting changes.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>


Index: spi.c
===================================================================
--- spi.c	(Revision 3068)
+++ spi.c	(Arbeitskopie)
@@ -519,12 +519,8 @@
 	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);
 	}



Regards,
Carl-Daniel




More information about the coreboot mailing list