~funderscore blog cgit wiki get in touch
aboutsummaryrefslogtreecommitdiff
blob: f6a55fe78002e6a014005cf52b6fc038a76821f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Sandbox SPI/SPI Flash Implementation
====================================

U-Boot supports SPI and SPI flash emulation in sandbox. This must be enabled
via a device tree.

For example:

	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";
		};
	};

Supported chips are W25Q16 (2MB), W25Q32 (4MB) and W25Q128 (16MB). Once
U-Boot it started you can use 'sf' commands as normal. For example:

$ dd if=/dev/zero of=spi.bin bs=1M count=2
$ u-boot -T

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
SF: Detected m25p16 with page size 256 Bytes, erase size 64 KiB, total 2 MiB
FF202015


Simon Glass
sjg@chromium.org
7/11/2013
Note that the sandbox SPI implementation was written by Mike Frysinger
<vapier@gentoo.org>.