mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-06-09 23:36:03 +09:00
README: qspi usecase and testing documentation.
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>
This commit is contained in:
parent
247cdf0413
commit
2f24223ae1
48
doc/SPI/README.ti_qspi_dra_test
Normal file
48
doc/SPI/README.ti_qspi_dra_test
Normal file
|
@ -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.
|
47
doc/SPI/README.ti_qspi_flash
Normal file
47
doc/SPI/README.ti_qspi_flash
Normal file
|
@ -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
Block a user