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 .