1*9cc3ad6cSDiego DortaHow to use and build U-Boot on mx6sabresd: 2*9cc3ad6cSDiego Dorta---------------------------------- 3*9cc3ad6cSDiego Dorta 4*9cc3ad6cSDiego DortaCurrently there are three methods for booting mx6sabresd boards: 5*9cc3ad6cSDiego Dorta 6*9cc3ad6cSDiego Dorta1. Booting via Normal U-Boot (u-boot.imx) 7*9cc3ad6cSDiego Dorta 8*9cc3ad6cSDiego Dorta2. Booting via SPL (SPL and u-boot.img) 9*9cc3ad6cSDiego Dorta 10*9cc3ad6cSDiego Dorta3. Booting via Falcon mode (SPL launches the kernel directly) 11*9cc3ad6cSDiego Dorta 12*9cc3ad6cSDiego Dorta 13*9cc3ad6cSDiego Dorta1. Booting via Normal U-Boot 14*9cc3ad6cSDiego Dorta---------------------------- 15*9cc3ad6cSDiego Dorta 16*9cc3ad6cSDiego Dorta$ make mx6qsabresd_defconfig (If you want to build for mx6qsabresd) 17*9cc3ad6cSDiego Dorta 18*9cc3ad6cSDiego Dortaor 19*9cc3ad6cSDiego Dorta 20*9cc3ad6cSDiego Dorta$ make mx6dlsabresd_defconfig (If you want to build for mx6dlsabresd) 21*9cc3ad6cSDiego Dorta 22*9cc3ad6cSDiego Dorta$ make 23*9cc3ad6cSDiego Dorta 24*9cc3ad6cSDiego DortaThis will generate the image called u-boot.imx. 25*9cc3ad6cSDiego Dorta 26*9cc3ad6cSDiego Dorta- Flash the u-boot.imx binary into the SD card: 27*9cc3ad6cSDiego Dorta 28*9cc3ad6cSDiego Dorta$ sudo dd if=u-boot.imx of=/dev/sdb bs=1K seek=1 && sync 29*9cc3ad6cSDiego Dorta 30*9cc3ad6cSDiego Dorta 31*9cc3ad6cSDiego Dorta2. Booting via SPL 32*9cc3ad6cSDiego Dorta------------------ 33*9cc3ad6cSDiego Dorta 34*9cc3ad6cSDiego DortaOther method for building U-Boot on mx6qsabresd and mx6qpsabresd is 35*9cc3ad6cSDiego Dortathrough SPL. In order to do so: 36*9cc3ad6cSDiego Dorta 37*9cc3ad6cSDiego Dorta$ make mx6sabresd_spl_defconfig 38*9cc3ad6cSDiego Dorta$ make 39*9cc3ad6cSDiego Dorta 40*9cc3ad6cSDiego DortaThis will generate the SPL image called SPL and the u-boot.img. 41*9cc3ad6cSDiego Dorta 42*9cc3ad6cSDiego Dorta- Flash the SPL image into the SD card: 43*9cc3ad6cSDiego Dorta 44*9cc3ad6cSDiego Dorta$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 && sync 45*9cc3ad6cSDiego Dorta 46*9cc3ad6cSDiego Dorta- Flash the u-boot.img image into the SD card: 47*9cc3ad6cSDiego Dorta 48*9cc3ad6cSDiego Dorta$ sudo dd if=u-boot.img of=/dev/sdbbs=1K seek=69 && sync 49*9cc3ad6cSDiego Dorta 50*9cc3ad6cSDiego Dorta 51*9cc3ad6cSDiego Dorta3. Booting via Falcon mode 52*9cc3ad6cSDiego Dorta-------------------------- 53*9cc3ad6cSDiego Dorta 54*9cc3ad6cSDiego Dorta$ make mx6sabresd_spl_defconfig 55*9cc3ad6cSDiego Dorta$ make 56*9cc3ad6cSDiego Dorta 57*9cc3ad6cSDiego DortaThis will generate the SPL image called SPL and the u-boot.img. 58*9cc3ad6cSDiego Dorta 59*9cc3ad6cSDiego Dorta- Flash the SPL image into the SD card: 60*9cc3ad6cSDiego Dorta 61*9cc3ad6cSDiego Dorta$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 oflag=sync status=none && sync 62*9cc3ad6cSDiego Dorta 63*9cc3ad6cSDiego Dorta- Flash the u-boot.img image into the SD card: 64*9cc3ad6cSDiego Dorta 65*9cc3ad6cSDiego Dorta$ sudo dd if=u-boot.img of=/dev/sdbbs=1K seek=69 oflag=sync status=none && sync 66*9cc3ad6cSDiego Dorta 67*9cc3ad6cSDiego DortaCreate a partition for root file system and extract it there: 68*9cc3ad6cSDiego Dorta 69*9cc3ad6cSDiego Dorta$ sudo tar xvf rootfs.tar.gz -C /media/root 70*9cc3ad6cSDiego Dorta 71*9cc3ad6cSDiego DortaThe SD card must have enough space for raw "args" and "kernel". 72*9cc3ad6cSDiego DortaTo configure Falcon mode for the first time, on U-Boot do the following commands: 73*9cc3ad6cSDiego Dorta 74*9cc3ad6cSDiego Dorta- Setup the IP server: 75*9cc3ad6cSDiego Dorta 76*9cc3ad6cSDiego Dorta# setenv serverip <server_ip_address> 77*9cc3ad6cSDiego Dorta 78*9cc3ad6cSDiego Dorta- Download dtb file: 79*9cc3ad6cSDiego Dorta 80*9cc3ad6cSDiego Dorta# dhcp ${fdt_addr} imx6q-sabresd.dtb 81*9cc3ad6cSDiego Dorta 82*9cc3ad6cSDiego Dorta- Download kernel image: 83*9cc3ad6cSDiego Dorta 84*9cc3ad6cSDiego Dorta# dhcp ${loadaddr} uImage 85*9cc3ad6cSDiego Dorta 86*9cc3ad6cSDiego Dorta- Write kernel at 2MB offset: 87*9cc3ad6cSDiego Dorta 88*9cc3ad6cSDiego Dorta# mmc write ${loadaddr} 0x1000 0x4000 89*9cc3ad6cSDiego Dorta 90*9cc3ad6cSDiego Dorta- Setup kernel bootargs: 91*9cc3ad6cSDiego Dorta 92*9cc3ad6cSDiego Dorta# setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk1p1 rootfstype=ext4 rootwait quiet rw" 93*9cc3ad6cSDiego Dorta 94*9cc3ad6cSDiego Dorta- Prepare args: 95*9cc3ad6cSDiego Dorta 96*9cc3ad6cSDiego Dorta# spl export fdt ${loadaddr} - ${fdt_addr} 97*9cc3ad6cSDiego Dorta 98*9cc3ad6cSDiego Dorta- Write args 1MB data (0x800 sectors) to 1MB offset (0x800 sectors) 99*9cc3ad6cSDiego Dorta 100*9cc3ad6cSDiego Dorta# mmc write 18000000 0x800 0x800 101*9cc3ad6cSDiego Dorta 102*9cc3ad6cSDiego Dorta- Press KEY_VOL_UP key, power up the board and then SPL binary will 103*9cc3ad6cSDiego Dortalaunch the kernel directly. 104