This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Issues reading Linux kernel from SPI NOR flash on Starter Kit

Other Parts Discussed in Thread: AM3358

I am trying to prove out booting the Linux kernel from an SPI NOR flash device using the AM3358 Starter Kit as part of the development process towards a custom hardware solution.

I have soldered in a header into the Zigbee connector on the Starter Kit and soldered the SPI NOR flash as close as possible to it and made the necessary changes to the pin mux settings to enable SPI0 and disable I2C1 as I read in another post that they conflict with each other.

Booting from a uSD card I can detect the SPI NOR flash device and can program it with MLO.byteswap, u-boot.img and a Linux kernel uImage file.  Power cycling the board without the uSD installed and it boots correctly from the SPI NOR flash and drops me to the U-Boot prompt.

When I try to load the kernel with:

U-Boot> sf probe 0
U-Boot> sf read ${loadaddr} 0xE0000 0x3617E0

I always get the following response:

SPI RXS timed out, status=0x00000007
SF: 3545056 bytes @ 0xe0000 Read: ERROR

Oddly, within the omap3_spi.c file there are two function that generate this time out message but some debugging has shown that this has come from omap3_spi_read().

No amount of changing the SPI clock frequency, timeout or SPI mode yields any different result.  I have tried both with a Spansion S25FL164 and Atmel AT25DF081A flash devices and both are the same.  From running some tests with different sized reads, 0x16E0000 bytes will read OK whereas 0x16F000 bytes will timeout.

Any idea as to where I go next to fix this?

Thanks,

Andy.