| U-Boot for LogicPD i.MX6 Development Kit |
| ---------------------------------------- |
| |
| This file contains information for the port of U-Boot to the Logic PD Development kit. |
| |
| Logic PD has an i.MX6 System On Module (SOM) and a correspondong development |
| board. SOM has a built-in microSD socket, DDR and NAND flash. The development kit has |
| an SMSC Ethernet PHY, serial debug port and a variety of peripherals. |
| |
| On the intial release, the SOM came with either an i.MX6D or i.MX6Q. |
| |
| For more details about Logic PD i.MX6 Development kit, visit: |
| https://www.logicpd.com/ |
| |
| Building U-Boot for Logic PD Development Kit |
| -------------------------------------------- |
| To build U-Boot for the Dual and Quad variants: |
| |
| make imx6q_logic_defconfig |
| make u-boot.imx ARCH=arm CROSS_COMPILE=arm-linux- |
| |
| |
| 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 |
| |
| |
| Flashing U-Boot into NAND |
| ------------------------- |
| Once in Linux with MTD support for the NAND on /dev/mtd0, program U-Boot with the following: |
| 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/ |
| |