ARM: imx6q_logic: Enable Falcon Mode and fatwrite
authorAdam Ford <aford173@gmail.com>
Fri, 28 Dec 2018 16:24:15 +0000 (10:24 -0600)
committerStefano Babic <sbabic@denx.de>
Mon, 28 Jan 2019 20:11:14 +0000 (21:11 +0100)
This patch enables Falcon Mode by default and updates the README
file to show instructions on how to run from the micro SD card
or eMMC.  This patch also enables fatwrite to help assist with
writing the 'args' to the microSD card.

Signed-off-by: Adam Ford <aford173@gmail.com>
board/logicpd/imx6/README
configs/imx6q_logic_defconfig

index df43b55d6bf5e15b51970fffe95e8a100af2a2ed..26d053a32c3bb75c5b905481748d3c135f0631cd 100644 (file)
@@ -22,8 +22,17 @@ To build U-Boot for the Dual and Quad variants:
 
 Flashing U-Boot into the SD card
 --------------------------------
+U-Boot is now building with SPL enabled which means there are two files to
+load into the SD card. Make sure the card is formatted with at least two
+partitions with the first partition being FAT32. First copy u-boot-dtb.img
+to the first partition then burn SPL to the SD card with dd.
+The SPL portion is programmed into a certain location for use by the internal
+bootROM and it cannot be changed.  The following instructions assume the SD
+card is located as /dev/sdb.
+
+  cp u-boot-dtb.img /dev/media/logic/boot
+  sudo dd if=SPL of=/dev/sdb bs=1k seek=1 oflag=sync status=none && sync
 
-See README.imximage for details on booting from SD
 
 Flashing U-Boot into NAND
 -------------------------
@@ -32,6 +41,43 @@ with:
 
   kobs-ng init -v -x u-boot-dtb.imx
 
+
+Using Falcon Mode
+-----------------
+With Falcon Mode enabled, U-Boot can be bypassed by having SPL directly load
+the kernel.  The device tree, Kernel and boot args must first be configured,
+and stored to a file on the micro SD card called 'args'
+The kernel uImage is built with LOAD_ADDR=0x12000000 and the device tree is
+assummed to be imx6q-logicpd.dtb.
+
+By default the mmcroot is set to the baseboard.
+
+  # Establish bootargs
+  run mmcargs
+
+  # Load Linux Kernel uImage
+  fatload mmc 1 $loadaddr uImage
+
+  # Load Device Tree
+  run loadfdt
+
+  # Setup the blob that will get passed to the kernel
+  spl export fdt ${loadaddr} - ${fdt_addr_r}
+
+  # Note the starting and ending address of the updated device tree.
+  # for this example:
+  # Loading Device Tree to 1ffdf000, end 1fff038b ... OK
+  # Notice that 0x1fff038b - 1ffdf000 = 0x1138b
+  # now Add 1, so the length is 0x1138c.
+
+  fatwrite mmc 1 0x1ffdf000 args 0x1138c
+
+  # Reset the board and it will bypass U-Boot and SPL will directly boot
+  # the uImage
+
+To interrupt the boot sequence and force U-Boot to load, hold the 'c' button
+while starting.
+
 Additional Support Documentation can be found at:
 https://support.logicpd.com/
 
index b5b6d011b9d45483b7eec23a02a21f6a0ce0ff6d..ec5b96c02f9ba19322a55705182988dc33ed45de 100644 (file)
@@ -23,6 +23,7 @@ CONFIG_SPL_SEPARATE_BSS=y
 CONFIG_SPL_DMA_SUPPORT=y
 CONFIG_SPL_I2C_SUPPORT=y
 CONFIG_SPL_NAND_SUPPORT=y
+CONFIG_SPL_OS_BOOT=y
 CONFIG_SPL_PAYLOAD="u-boot.img"
 CONFIG_SPL_USB_HOST_SUPPORT=y
 CONFIG_SPL_USB_GADGET=y
@@ -78,3 +79,4 @@ CONFIG_USB_GADGET_VENDOR_NUM=0x0525
 CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
 CONFIG_CI_UDC=y
 CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_FAT_WRITE=y