xref: /openbmc/u-boot/board/freescale/mx6sabresd/README (revision ce2f9def8266fc6ee9d4ddc2db4a01aa97299638)
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