Booting i.MX 6SoloX from SPI Flash Print

This application note explains how to boot Emcraft i.MX 6SoloX SOM Satrter KitĀ from ST25P32V6P SPI flash:

  • Set the S4 DIP switches to the to boot from NAND (Internal Boot, NAND - default settings).
  • Connect the serial Flash dongle to the i.MX 6 SoloX ECSPI5 pins on the baseboard P12 header:
  • P12 pin SPI Flash pin
    24 (ECSPI5_SS0) CS
    28 (ECSPI5_MISO) DOUT
    21 (ECSPI5_MOSI) DIN
    23 (ECSPI5_SCLK) CLK
    39 (GND) GND
    1 (3V3_RSPB) VSS

  • Make sure Emcraft release images are installed on the SOM.
  • Stop at U-Boot prompt and modify DTB as below:
  • SLX-SOM U-Boot > nand read ${dtb_addr} ${dtb_offset} 0x20000 NAND read: device 0 offset 0xe00000, size 0x20000 131072 bytes read: OK SLX-SOM U-Boot > fdt addr ${dtb_addr} SLX-SOM U-Boot > fdt set /soc/aips-bus@02200000/ecspi@0228c000/\ m25p32@5 status "okay" SLX-SOM U-Boot > fdt rm /soc/aips-bus@02200000/ecspi@0228c000/\ m25p32@5/partition@0 read-only

  • Boot the board:
  • SLX-SOM U-Boot > nand read ${loadaddr} ${uImage_offset} \
    ${flashsize} && run args addip && bootm ${loadaddr} - ${dtb_addr}

  • After booting, SPI board should appear as MTD device (eg mtd6). Erase SPI Flash:
  • ~ # flash_eraseall /dev/mtd6
    ...
    ~ #

  • Emcraft rootfs image has u-boot.imx image on the root filesystem. Write this image to SPI Flash:
  • ~ # dd of=/dev/mtd6 if=/u-boot.imx bs=1k seek=1
    ...
    ~ #

  • Turn off the board and set S4 DIP switches 1-8 to On On On Off Off Off On On (Internal Boot, SPI).
  • Turn on the board and check booting over serial console.