diff options
author | Diego Dorta <diego.dorta@nxp.com> | 2017-07-07 15:38:34 -0300 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2017-07-12 10:28:19 +0200 |
commit | 07f6ddb67a4bdd6cf2f3cdbb2518539537cbe0e1 (patch) | |
tree | 373711220efaff7097df94439cd9802010c5203a /board | |
parent | 283c2a65538ec62e2b0cd1664ae2eddfd9265036 (diff) | |
download | u-boot-07f6ddb67a4bdd6cf2f3cdbb2518539537cbe0e1.tar.gz |
mx6sabreauto: Add Falcon mode support
Add support for Falcon mode and explain in the README the steps to
boot the kernel directly without loading the full U-Boot.
Signed-off-by: Diego Dorta <diego.dorta@nxp.com>
Acked-by: Fabio Estevam <fabio.estevam@nxp.com>
Diffstat (limited to 'board')
-rw-r--r-- | board/freescale/mx6sabreauto/README | 62 | ||||
-rw-r--r-- | board/freescale/mx6sabreauto/mx6sabreauto.c | 7 |
2 files changed, 69 insertions, 0 deletions
diff --git a/board/freescale/mx6sabreauto/README b/board/freescale/mx6sabreauto/README index 7e4596ad75..e8c589b92a 100644 --- a/board/freescale/mx6sabreauto/README +++ b/board/freescale/mx6sabreauto/README @@ -18,3 +18,65 @@ $ sudo dd if=SPL of=/dev/sdX bs=1K seek=1 && sync - Flash the u-boot.img binary into the SD card: $ sudo dd if=u-boot.img of=/dev/sdX bs=1K seek=69 && sync + +Booting via Falcon mode +----------------------- + +Write in mx6sabreauto_defconfig the following define below: + +CONFIG_SPL_OS_BOOT=y + +In order to build it: + +$ make mx6sabreauto_defconfig + +$ make + +This will generate the SPL image called SPL and the u-boot.img. + +- Flash the SPL image into the SD card: + +$ sudo dd if=SPL of=/dev/sdb bs=1K seek=1 && sync + +- Flash the u-boot.img image into the SD card: + +$ sudo dd if=u-boot.img of=/dev/sdb bs=1K seek=69 && sync + +Create a FAT16 boot partition to store uImage and the dtb file, then copy the files there: + +$ sudo cp uImage /media/boot + +$ sudo cp imx6dl-sabreauto.dtb /media/boot + +Create a partition for root file system and extract it there: + +$ sudo tar xvf rootfs.tar.gz -C /media/root + +The SD card must have enough space for raw "args" and "kernel". +To configure Falcon mode for the first time, on U-Boot do the following commands: + +- Load dtb file from boot partition: + +# load mmc 0:1 ${fdt_addr} imx6dl-sabreauto.dtb + +- Load kernel image from boot partition: + +# load mmc 0:1 ${loadaddr} uImage + +- Write kernel at 2MB offset: + +# mmc write ${loadaddr} 0x1000 0x4000 + +- Setup kernel bootargs: + +# setenv bootargs "console=ttymxc3,115200 root=/dev/mmcblk0p1 rootfstype=ext4 rootwait quiet rw" + +- Prepare args: + +# spl export fdt ${loadaddr} - ${fdt_addr} + +- Write args 1MB data (0x800 sectors) to 1MB offset (0x800 sectors) + +# mmc write 18000000 0x800 0x800 + +- Restart the board and then SPL binary will launch the kernel directly. diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c index bfd5ffa5c7..a8fe251134 100644 --- a/board/freescale/mx6sabreauto/mx6sabreauto.c +++ b/board/freescale/mx6sabreauto/mx6sabreauto.c @@ -745,6 +745,13 @@ int board_ehci_power(int port, int on) #include <spl.h> #include <libfdt.h> +#ifdef CONFIG_SPL_OS_BOOT +int spl_start_uboot(void) +{ + return 0; +} +#endif + static void ccgr_init(void) { struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR; |