We are currently trying to boot from an external SPI Flash memory on a custom board.
This memory is connected to Tegra K1 through SPI4 with the correct Chip Select (CS0).
The boot_sel straps are configured as “1000” : SPI BOOT.
We know the JTK1 has a w25q32dw chip which seems to be fine to boot from.
It seems that the BootROM can’t read back what is written in it.
We are using an AT45DB081E part :
>>> Verifying image in RAM...
crc32 for 801bd000 ... 802389ff ==> 25f8ae68
>>> Selecting SPI device...
SF: Detected AT45DB081D with page size 256 Bytes, erase size 64 KiB, total 1 MiB
>>> Erasing SPI...
SF: 1048576 bytes @ 0x0 Erased: OK
>>> Writing image back to SPI...
device 0 offset 0x0, size 0x7ba00
SF: 506368 bytes @ 0x0 Written: OK
>>> Reading image back from SPI...
device 0 offset 0x0, size 0x7ba00
SF: 506368 bytes @ 0x0 Read: OK
>>> Verifying image from flash...
crc32 for c0000000 ... c007b9ff ==> ffce05a9
CRC MISMATCH of readback image
Our aim is only to boot from SPI external flash that is not the Jetson’s one.
To achieve it we need to know which memories (chips) are compatible…From your side, giving us a list would be impossible (because would be kind of officially support SPI boot).
At least guidelines/requirements about the driver used by BootROM will be a great hint.
TK1 BootROM should be able to support SPI ROM boot using standard JEDEC READ 0x03 and RDSR 0x05 commands.
BootROM does not require JEDEC READ_ID 0x90/0xAB command.