Adam Ford | a2965c9 | 2017-04-07 10:25:34 -0500 | [diff] [blame] | 1 | U-Boot for LogicPD i.MX6 Development Kit |
| 2 | ---------------------------------------- |
| 3 | |
| 4 | This file contains information for the port of U-Boot to the Logic PD Development kit. |
| 5 | |
| 6 | Logic PD has an i.MX6 System On Module (SOM) and a correspondong development |
| 7 | board. SOM has a built-in microSD socket, DDR and NAND flash. The development kit has |
| 8 | an SMSC Ethernet PHY, serial debug port and a variety of peripherals. |
| 9 | |
| 10 | On the intial release, the SOM came with either an i.MX6D or i.MX6Q. |
| 11 | |
| 12 | For more details about Logic PD i.MX6 Development kit, visit: |
| 13 | https://www.logicpd.com/ |
| 14 | |
| 15 | Building U-Boot for Logic PD Development Kit |
| 16 | -------------------------------------------- |
| 17 | To build U-Boot for the Dual and Quad variants: |
| 18 | |
| 19 | make imx6q_logic_defconfig |
Tom Rini | 30a61f5 | 2020-05-26 14:36:49 -0400 | [diff] [blame] | 20 | make u-boot.imx CROSS_COMPILE=arm-linux- |
Adam Ford | a2965c9 | 2017-04-07 10:25:34 -0500 | [diff] [blame] | 21 | |
| 22 | |
| 23 | Flashing U-Boot into the SD card |
| 24 | -------------------------------- |
Adam Ford | 1b41105 | 2018-12-28 10:24:15 -0600 | [diff] [blame] | 25 | U-Boot is now building with SPL enabled which means there are two files to |
| 26 | load into the SD card. Make sure the card is formatted with at least two |
| 27 | partitions with the first partition being FAT32. First copy u-boot-dtb.img |
| 28 | to the first partition then burn SPL to the SD card with dd. |
| 29 | The SPL portion is programmed into a certain location for use by the internal |
| 30 | bootROM and it cannot be changed. The following instructions assume the SD |
| 31 | card is located as /dev/sdb. |
Adam Ford | a2965c9 | 2017-04-07 10:25:34 -0500 | [diff] [blame] | 32 | |
Adam Ford | 1b41105 | 2018-12-28 10:24:15 -0600 | [diff] [blame] | 33 | cp u-boot-dtb.img /dev/media/logic/boot |
| 34 | sudo dd if=SPL of=/dev/sdb bs=1k seek=1 oflag=sync status=none && sync |
| 35 | |
Adam Ford | a2965c9 | 2017-04-07 10:25:34 -0500 | [diff] [blame] | 36 | |
| 37 | Flashing U-Boot into NAND |
| 38 | ------------------------- |
| 39 | Once in Linux with MTD support for the NAND on /dev/mtd0, program U-Boot with the following: |
| 40 | with: |
| 41 | |
| 42 | kobs-ng init -v -x u-boot-dtb.imx |
| 43 | |
Adam Ford | 1b41105 | 2018-12-28 10:24:15 -0600 | [diff] [blame] | 44 | |
| 45 | Using Falcon Mode |
| 46 | ----------------- |
| 47 | With Falcon Mode enabled, U-Boot can be bypassed by having SPL directly load |
| 48 | the kernel. The device tree, Kernel and boot args must first be configured, |
| 49 | and stored to a file on the micro SD card called 'args' |
| 50 | The kernel uImage is built with LOAD_ADDR=0x12000000 and the device tree is |
| 51 | assummed to be imx6q-logicpd.dtb. |
| 52 | |
| 53 | By default the mmcroot is set to the baseboard. |
| 54 | |
| 55 | # Establish bootargs |
| 56 | run mmcargs |
| 57 | |
| 58 | # Load Linux Kernel uImage |
| 59 | fatload mmc 1 $loadaddr uImage |
| 60 | |
| 61 | # Load Device Tree |
| 62 | run loadfdt |
| 63 | |
| 64 | # Setup the blob that will get passed to the kernel |
| 65 | spl export fdt ${loadaddr} - ${fdt_addr_r} |
| 66 | |
| 67 | # Note the starting and ending address of the updated device tree. |
| 68 | # for this example: |
| 69 | # Loading Device Tree to 1ffdf000, end 1fff038b ... OK |
| 70 | # Notice that 0x1fff038b - 1ffdf000 = 0x1138b |
| 71 | # now Add 1, so the length is 0x1138c. |
| 72 | |
| 73 | fatwrite mmc 1 0x1ffdf000 args 0x1138c |
| 74 | |
| 75 | # Reset the board and it will bypass U-Boot and SPL will directly boot |
| 76 | # the uImage |
| 77 | |
| 78 | To interrupt the boot sequence and force U-Boot to load, hold the 'c' button |
| 79 | while starting. |
| 80 | |
Adam Ford | a2965c9 | 2017-04-07 10:25:34 -0500 | [diff] [blame] | 81 | Additional Support Documentation can be found at: |
| 82 | https://support.logicpd.com/ |
| 83 | |