]>
Commit | Line | Data |
---|---|---|
ffdb20be MF |
1 | Sandbox SPI/SPI Flash Implementation |
2 | ==================================== | |
3 | ||
1cc0a9f4 | 4 | U-Boot supports SPI and SPI flash emulation in sandbox. This must be enabled |
5e61c4e8 | 5 | via a device tree. |
ffdb20be MF |
6 | |
7 | For example: | |
8 | ||
5e61c4e8 AT |
9 | spi@0 { |
10 | #address-cells = <1>; | |
11 | #size-cells = <0>; | |
12 | reg = <0 1>; | |
13 | compatible = "sandbox,spi"; | |
14 | cs-gpios = <0>, <&gpio_a 0>; | |
15 | spi.bin@0 { | |
16 | reg = <0>; | |
17 | compatible = "spansion,m25p16", "jedec,spi-nor"; | |
18 | spi-max-frequency = <40000000>; | |
19 | sandbox,filename = "spi.bin"; | |
20 | }; | |
21 | }; | |
ffdb20be MF |
22 | |
23 | Supported chips are W25Q16 (2MB), W25Q32 (4MB) and W25Q128 (16MB). Once | |
24 | U-Boot it started you can use 'sf' commands as normal. For example: | |
25 | ||
5e61c4e8 AT |
26 | $ dd if=/dev/zero of=spi.bin bs=1M count=2 |
27 | $ u-boot -T | |
ffdb20be MF |
28 | |
29 | Since the SPI bus is fully implemented as well as the SPI flash connected to | |
30 | it, you can also use low-level SPI commands to access the flash. For example | |
31 | this reads the device ID from the emulated chip: | |
32 | ||
33 | => sspi 0 32 9f | |
5e61c4e8 AT |
34 | SF: Detected m25p16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB |
35 | FF202015 | |
ffdb20be MF |
36 | |
37 | ||
38 | Simon Glass | |
39 | [email protected] | |
40 | 7/11/2013 | |
41 | Note that the sandbox SPI implementation was written by Mike Frysinger | |
42 | <[email protected]>. |