[OLPC-devel] Software action items and status

Ronald G Minnich rminnich at lanl.gov
Mon Jun 12 16:14:55 EDT 2006


Ray.Tseng at quantatw.com wrote:
> Jim,
> 
>>4) Find out how to program serial flash part. (ray/ron)
> 
> 
> 1) We did not implement the user intervention (pressing space bar five secs) now, the SPI write enable is always active.  

no problem.

> 2) The EC and BIOS share the same SPI ROM, please take steps to flash the binary.

no problem. Can you resend your latest EC binary. Also I assume that the
SPI at this point is 1 MBYTE?
> a) Before flash Utility try to update any data to flash part, flash utility must issue 0xD8 command to LPC I/O port 0x66(write), and wait I/O port 0x66(read) IBF(bit 1) cleared.
This support will be integrated into our program. Is this an OLPC board
issue or is this how the chipset works? Is there a data sheet for the
part that I can have?

> b)Then flash utility set the bit 0 of EC internal register [0xFF14] through Index I/O accessing... (0x381 is high address register, 0x382 is the low address register, 0x383 is the data register...)

ok

> c) Flash utility ERASE and PROGRAM SPI ROM
> d) After flash utility completes the flash action, flash utility just need to clear the Bit 0 of EC internal register [0xFF14] through Index I/O accessing...

thanks, this is very very useful info.

>  
> void Before(void)
> {
> BYTE temp
> 	outportb(0x66, 0xD8);		// issue PreReset command to EC 
> 	while (inportb(0x66) & 0x02);
> 
> // force KBC into Reset Mode
> 	outportb(0x381, 0xFF);
> 	outportb(0x382, 0x14);
> 	Temp = inport(0x383) | 0x01;
> 	outportb(0x383, Temp);
> }
> 
> void After(void)
> {
> // KBC back to normal run mode.
> 	outportb(0x381, 0xFF);
> 	outportb(0x382, 0x14);
> 	Temp = inport(0x383) & ~(0x01);
> 	outportb(0x383, Temp);
> }
> 
> Ray Tseng 6/12/06


ron



More information about the Devel mailing list