Contains documentation and testing details for qspi flash interface. Signed-off-by: Sourav Poddar <sourav.poddar@ti.com> Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>master
parent
247cdf0413
commit
2f24223ae1
@ -0,0 +1,48 @@ |
||||
------------------------------------------------- |
||||
Simple steps used to test the QSPI at U-Boot |
||||
------------------------------------------------- |
||||
|
||||
For #1, build the patched U-Boot and load MLO/u-boot.img |
||||
|
||||
---------------------------------- |
||||
Boot from another medium like MMC |
||||
---------------------------------- |
||||
|
||||
U-Boot# mmc dev 0 |
||||
mmc0 is current device |
||||
U-Boot# fatload mmc 0 0x82000000 MLO |
||||
reading MLO |
||||
55872 bytes read in 8 ms (6.7 MiB/s) |
||||
U-Boot# fatload mmc 0 0x83000000 u-boot.img |
||||
reading u-boot.img |
||||
248600 bytes read in 19 ms (12.5 MiB/s) |
||||
|
||||
-------------------------------------------------- |
||||
Commands to erase/write u-boot/mlo to flash device |
||||
-------------------------------------------------- |
||||
U-Boot# sf probe 0 |
||||
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB, mapped at 5c000000 |
||||
SF: Warning - Only lower 16MiB accessible, Full access #define CONFIG_SPI_FLASH_BAR |
||||
U-Boot# sf erase 0 0x10000 |
||||
SF: 65536 bytes @ 0x0 Erased: OK |
||||
U-Boot# sf erase 0x20000 0x10000 |
||||
SF: 65536 bytes @ 0x20000 Erased: OK |
||||
U-Boot# sf erase 0x30000 0x10000 |
||||
SF: 65536 bytes @ 0x30000 Erased: OK |
||||
U-Boot# sf erase 0x40000 0x10000 |
||||
SF: 65536 bytes @ 0x40000 Erased: OK |
||||
U-Boot# sf erase 0x50000 0x10000 |
||||
SF: 65536 bytes @ 0x50000 Erased: OK |
||||
U-Boot# sf erase 0x60000 0x10000 |
||||
SF: 65536 bytes @ 0x60000 Erased: OK |
||||
U-Boot# sf write 82000000 0 0x10000 |
||||
SF: 65536 bytes @ 0x0 Written: OK |
||||
U-Boot# sf write 83000000 0x20000 0x60000 |
||||
SF: 393216 bytes @ 0x20000 Written: OK |
||||
|
||||
For #2, set sysboot to QSPI-1 boot mode(SYSBOOT[5:0] = 100110) and power |
||||
on. ROM should find the GP header at offset 0 and load/execute SPL. SPL |
||||
then detects that ROM was in QSPI-1 mode (boot code 10) and attempts to |
||||
find a U-Boot image header at offset 0x20000 (set in the config file) |
||||
and proceeds to load that image using the U-Boot image payload offset/size |
||||
from the header. It will then start U-Boot. |
@ -0,0 +1,47 @@ |
||||
QSPI U-boot support |
||||
------------------ |
||||
|
||||
Host processor is connected to serial flash device via qpsi |
||||
interface. QSPI is a kind of spi module that allows single, |
||||
dual and quad read access to external spi devices. The module |
||||
has a memory mapped interface which provide direct interface |
||||
for accessing data form external spi devices. |
||||
|
||||
The one QSPI in the device is primarily intended for fast booting |
||||
from Quad SPI flash devices. |
||||
|
||||
Usecase |
||||
------- |
||||
|
||||
MLO/u-boot.img will be flashed from SD/MMC to the flash device |
||||
using serial flash erase and write commands. Then, switch settings |
||||
will be changed to qspi boot. Then, the ROM code will read MLO |
||||
from the predefined location in the flash, where it was flashed and |
||||
execute it after storing it in SDRAM. Then, the MLO will read |
||||
u-boot.img from flash and execute it from SDRAM. |
||||
|
||||
SPI mode |
||||
------- |
||||
SPI mode uses mtd spi framework for transfer and reception of data. |
||||
Can be used in: |
||||
1. Normal mode: use single pin for transfers |
||||
2. Dual Mode: use two pins for transfers. |
||||
3. Quad mode: use four pin for transfer |
||||
|
||||
Memory mapped read mode |
||||
----------------------- |
||||
In this, SPI controller is configured using configuration port and then |
||||
controler is switched to memory mapped port for data read. |
||||
|
||||
Driver |
||||
------ |
||||
drivers/qspi/ti_qspi.c |
||||
- Newly created file which is responsible for configuring the |
||||
qspi controller and also for providing the low level api which |
||||
is responsible for transferring the datas from host controller |
||||
to flash device and vice versa. |
||||
|
||||
Testing |
||||
------- |
||||
A seperated file named README.dra_qspi_test has been created which gives all the |
||||
details about the commands required to test qspi at u-boot level. |
Loading…
Reference in new issue