19cc3ad6cSDiego DortaHow to use and build U-Boot on mx6sabresd: 29cc3ad6cSDiego Dorta---------------------------------- 39cc3ad6cSDiego Dorta 4*ce2f9defSBreno LimaCurrently there are four methods for booting mx6sabresd boards: 59cc3ad6cSDiego Dorta 6*ce2f9defSBreno Lima1. Booting from SD card via normal U-Boot (u-boot.imx) 79cc3ad6cSDiego Dorta 8*ce2f9defSBreno Lima2. Booting from eMMC via normal U-Boot 99cc3ad6cSDiego Dorta 10*ce2f9defSBreno Lima3. Booting via SPL (SPL and u-boot.img) 11*ce2f9defSBreno Lima 12*ce2f9defSBreno Lima4. Booting via Falcon mode (SPL launches the kernel directly) 139cc3ad6cSDiego Dorta 149cc3ad6cSDiego Dorta 15*ce2f9defSBreno Lima1. Booting from SD card via normal U-Boot 16*ce2f9defSBreno Lima----------------------------------------- 179cc3ad6cSDiego Dorta 189cc3ad6cSDiego Dorta$ make mx6qsabresd_defconfig (If you want to build for mx6qsabresd) 199cc3ad6cSDiego Dorta 209cc3ad6cSDiego Dortaor 219cc3ad6cSDiego Dorta 229cc3ad6cSDiego Dorta$ make mx6dlsabresd_defconfig (If you want to build for mx6dlsabresd) 239cc3ad6cSDiego Dorta 249cc3ad6cSDiego Dorta$ make 259cc3ad6cSDiego Dorta 269cc3ad6cSDiego DortaThis will generate the image called u-boot.imx. 279cc3ad6cSDiego Dorta 289cc3ad6cSDiego Dorta- Flash the u-boot.imx binary into the SD card: 299cc3ad6cSDiego Dorta 309cc3ad6cSDiego Dorta$ sudo dd if=u-boot.imx of=/dev/sdb bs=1K seek=1 && sync 319cc3ad6cSDiego Dorta 329cc3ad6cSDiego Dorta 33*ce2f9defSBreno Lima2. Booting from eMMC via normal U-Boot 34*ce2f9defSBreno Lima-------------------------------------- 35*ce2f9defSBreno Lima 36*ce2f9defSBreno Lima$ make mx6qsabresd_defconfig (If you want to build for mx6qsabresd) 37*ce2f9defSBreno Lima 38*ce2f9defSBreno Limaor 39*ce2f9defSBreno Lima 40*ce2f9defSBreno Lima$ make mx6dlsabresd_defconfig (If you want to build for mx6dlsabresd) 41*ce2f9defSBreno Lima 42*ce2f9defSBreno Lima$ make 43*ce2f9defSBreno Lima 44*ce2f9defSBreno LimaThis will generate the image called u-boot.imx. 45*ce2f9defSBreno Lima 46*ce2f9defSBreno Lima- Flash the u-boot.imx binary into the eMMC: 47*ce2f9defSBreno Lima 48*ce2f9defSBreno LimaSet SW6 to download mode: 00001100 49*ce2f9defSBreno Lima 50*ce2f9defSBreno LimaPlug a usb cable to USB-OTG and load the u-boot image using the imx_usb_loader 51*ce2f9defSBreno Limatool (https://github.com/boundarydevices/imx_usb_loader): 52*ce2f9defSBreno Lima 53*ce2f9defSBreno Lima$ sudo ./imx_usb u-boot.imx 54*ce2f9defSBreno Lima 55*ce2f9defSBreno LimaIn U-boot change the eMMC partition config: 56*ce2f9defSBreno Lima 57*ce2f9defSBreno Lima=> mmc partconf 2 1 0 0 58*ce2f9defSBreno Lima 59*ce2f9defSBreno LimaMount the eMMC in the host PC: 60*ce2f9defSBreno Lima 61*ce2f9defSBreno Lima=> ums 0 mmc 2 62*ce2f9defSBreno Lima 63*ce2f9defSBreno LimaFlash the u-boot.imx binary 64*ce2f9defSBreno Lima 65*ce2f9defSBreno Lima$ sudo dd if=u-boot.imx of=/dev/sdX bs=1K seek=1 && sync 66*ce2f9defSBreno Lima 67*ce2f9defSBreno LimaSet SW6 to eMMC 8-bit boot: 11010110 68*ce2f9defSBreno Lima 69*ce2f9defSBreno Lima 70*ce2f9defSBreno Lima3. Booting via SPL 719cc3ad6cSDiego Dorta------------------ 729cc3ad6cSDiego Dorta 739cc3ad6cSDiego DortaOther method for building U-Boot on mx6qsabresd and mx6qpsabresd is 749cc3ad6cSDiego Dortathrough SPL. In order to do so: 759cc3ad6cSDiego Dorta 769cc3ad6cSDiego Dorta$ make mx6sabresd_spl_defconfig 779cc3ad6cSDiego Dorta$ make 789cc3ad6cSDiego Dorta 799cc3ad6cSDiego DortaThis will generate the SPL image called SPL and the u-boot.img. 809cc3ad6cSDiego Dorta 819cc3ad6cSDiego Dorta- Flash the SPL image into the SD card: 829cc3ad6cSDiego Dorta 839cc3ad6cSDiego Dorta$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 && sync 849cc3ad6cSDiego Dorta 859cc3ad6cSDiego Dorta- Flash the u-boot.img image into the SD card: 869cc3ad6cSDiego Dorta 879cc3ad6cSDiego Dorta$ sudo dd if=u-boot.img of=/dev/sdbbs=1K seek=69 && sync 889cc3ad6cSDiego Dorta 899cc3ad6cSDiego Dorta 90*ce2f9defSBreno Lima4. Booting via Falcon mode 919cc3ad6cSDiego Dorta-------------------------- 929cc3ad6cSDiego Dorta 939cc3ad6cSDiego Dorta$ make mx6sabresd_spl_defconfig 949cc3ad6cSDiego Dorta$ make 959cc3ad6cSDiego Dorta 969cc3ad6cSDiego DortaThis will generate the SPL image called SPL and the u-boot.img. 979cc3ad6cSDiego Dorta 989cc3ad6cSDiego Dorta- Flash the SPL image into the SD card: 999cc3ad6cSDiego Dorta 1009cc3ad6cSDiego Dorta$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 oflag=sync status=none && sync 1019cc3ad6cSDiego Dorta 1029cc3ad6cSDiego Dorta- Flash the u-boot.img image into the SD card: 1039cc3ad6cSDiego Dorta 1049cc3ad6cSDiego Dorta$ sudo dd if=u-boot.img of=/dev/sdbbs=1K seek=69 oflag=sync status=none && sync 1059cc3ad6cSDiego Dorta 1069cc3ad6cSDiego DortaCreate a partition for root file system and extract it there: 1079cc3ad6cSDiego Dorta 1089cc3ad6cSDiego Dorta$ sudo tar xvf rootfs.tar.gz -C /media/root 1099cc3ad6cSDiego Dorta 1109cc3ad6cSDiego DortaThe SD card must have enough space for raw "args" and "kernel". 1119cc3ad6cSDiego DortaTo configure Falcon mode for the first time, on U-Boot do the following commands: 1129cc3ad6cSDiego Dorta 1139cc3ad6cSDiego Dorta- Setup the IP server: 1149cc3ad6cSDiego Dorta 1159cc3ad6cSDiego Dorta# setenv serverip <server_ip_address> 1169cc3ad6cSDiego Dorta 1179cc3ad6cSDiego Dorta- Download dtb file: 1189cc3ad6cSDiego Dorta 1199cc3ad6cSDiego Dorta# dhcp ${fdt_addr} imx6q-sabresd.dtb 1209cc3ad6cSDiego Dorta 1219cc3ad6cSDiego Dorta- Download kernel image: 1229cc3ad6cSDiego Dorta 1239cc3ad6cSDiego Dorta# dhcp ${loadaddr} uImage 1249cc3ad6cSDiego Dorta 1259cc3ad6cSDiego Dorta- Write kernel at 2MB offset: 1269cc3ad6cSDiego Dorta 1279cc3ad6cSDiego Dorta# mmc write ${loadaddr} 0x1000 0x4000 1289cc3ad6cSDiego Dorta 1299cc3ad6cSDiego Dorta- Setup kernel bootargs: 1309cc3ad6cSDiego Dorta 1319cc3ad6cSDiego Dorta# setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait quiet rw" 1329cc3ad6cSDiego Dorta 1339cc3ad6cSDiego Dorta- Prepare args: 1349cc3ad6cSDiego Dorta 1359cc3ad6cSDiego Dorta# spl export fdt ${loadaddr} - ${fdt_addr} 1369cc3ad6cSDiego Dorta 1379cc3ad6cSDiego Dorta- Write args 1MB data (0x800 sectors) to 1MB offset (0x800 sectors) 1389cc3ad6cSDiego Dorta 1399cc3ad6cSDiego Dorta# mmc write 18000000 0x800 0x800 1409cc3ad6cSDiego Dorta 1419cc3ad6cSDiego Dorta- Press KEY_VOL_UP key, power up the board and then SPL binary will 1429cc3ad6cSDiego Dortalaunch the kernel directly. 143