2013-12-03 23:43:27 +00:00
|
|
|
Sandbox SPI/SPI Flash Implementation
|
|
|
|
====================================
|
|
|
|
|
2016-05-04 08:47:31 +00:00
|
|
|
U-Boot supports SPI and SPI flash emulation in sandbox. This must be enabled
|
2020-04-27 06:46:45 +00:00
|
|
|
via a device tree.
|
2013-12-03 23:43:27 +00:00
|
|
|
|
|
|
|
For example:
|
|
|
|
|
2020-04-27 06:46:45 +00:00
|
|
|
spi@0 {
|
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
reg = <0 1>;
|
|
|
|
compatible = "sandbox,spi";
|
|
|
|
cs-gpios = <0>, <&gpio_a 0>;
|
|
|
|
spi.bin@0 {
|
|
|
|
reg = <0>;
|
|
|
|
compatible = "spansion,m25p16", "jedec,spi-nor";
|
|
|
|
spi-max-frequency = <40000000>;
|
|
|
|
sandbox,filename = "spi.bin";
|
|
|
|
};
|
|
|
|
};
|
2013-12-03 23:43:27 +00:00
|
|
|
|
|
|
|
Supported chips are W25Q16 (2MB), W25Q32 (4MB) and W25Q128 (16MB). Once
|
|
|
|
U-Boot it started you can use 'sf' commands as normal. For example:
|
|
|
|
|
2020-04-27 06:46:45 +00:00
|
|
|
$ dd if=/dev/zero of=spi.bin bs=1M count=2
|
|
|
|
$ u-boot -T
|
2013-12-03 23:43:27 +00:00
|
|
|
|
|
|
|
Since the SPI bus is fully implemented as well as the SPI flash connected to
|
|
|
|
it, you can also use low-level SPI commands to access the flash. For example
|
|
|
|
this reads the device ID from the emulated chip:
|
|
|
|
|
|
|
|
=> sspi 0 32 9f
|
2020-04-27 06:46:45 +00:00
|
|
|
SF: Detected m25p16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
|
|
|
|
FF202015
|
2013-12-03 23:43:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
Simon Glass
|
|
|
|
sjg@chromium.org
|
|
|
|
7/11/2013
|
|
|
|
Note that the sandbox SPI implementation was written by Mike Frysinger
|
|
|
|
<vapier@gentoo.org>.
|