summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2021-07-27 19:52:36 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2021-07-29 19:14:45 +0200
commitc463e5ab8ed96d054007b60c8c7c2cc387cfdbc3 (patch)
treea1c78d6d51324e7b0e440ca130f44b9df9d6074d /include
parent98584bdb41cc6c214f7bffdb9c98b6a49b18b570 (diff)
colibri-imx6ull: add emmc variant
Add code to build the eMMC variant of the Colibri iMX6ULL, i.e. the 'Colibri iMX6ULL 1GB' which has a eMMC instead of the raw NAND used on other SKUs. Related-to: ELB-4056, ELB-4057 Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Diffstat (limited to 'include')
-rw-r--r--include/configs/colibri-imx6ull.h57
1 files changed, 45 insertions, 12 deletions
diff --git a/include/configs/colibri-imx6ull.h b/include/configs/colibri-imx6ull.h
index d6f372364a..a2f8d35f3a 100644
--- a/include/configs/colibri-imx6ull.h
+++ b/include/configs/colibri-imx6ull.h
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0+ */
/*
- * Copyright 2018-2019 Toradex AG
+ * Copyright 2018-2021 Toradex AG
*
* Configuration settings for the Colibri iMX6ULL module.
*
@@ -36,6 +36,22 @@
#define CONFIG_SERVERIP 192.168.10.1
#define CONFIG_ROOTPATH "/srv/nfs"
+#if defined(CONFIG_TARGET_COLIBRI_IMX6ULL_EMMC)
+#define UBOOT_UPDATE \
+ "uboot_hwpart=1\0" \
+ "uboot_blk=2\0" \
+ "set_blkcnt=setexpr blkcnt ${filesize} + 0x1ff && " \
+ "setexpr blkcnt ${blkcnt} / 0x200\0" \
+ "update_uboot=run set_blkcnt && mmc dev 0 ${uboot_hwpart} && " \
+ "mmc write ${loadaddr} ${uboot_blk} ${blkcnt}\0"
+#elif defined(CONFIG_TARGET_COLIBRI_IMX6ULL_NAND)
+#define UBOOT_UPDATE \
+ "update_uboot=nand erase.part u-boot1 && " \
+ "nand write ${loadaddr} u-boot1 ${filesize} && " \
+ "nand erase.part u-boot2 && " \
+ "nand write ${loadaddr} u-boot2 ${filesize}\0"
+#endif
+
#define MEM_LAYOUT_ENV_SETTINGS \
"bootm_size=0x10000000\0" \
"fdt_addr_r=0x82100000\0" \
@@ -44,12 +60,6 @@
"ramdisk_addr_r=0x82200000\0" \
"scriptaddr=0x87000000\0"
-#define UBOOT_UPDATE \
- "update_uboot=nand erase.part u-boot1 && " \
- "nand write ${loadaddr} u-boot1 ${filesize} && " \
- "nand erase.part u-boot2 && " \
- "nand write ${loadaddr} u-boot2 ${filesize}\0"
-
#ifdef CONFIG_TDX_EASY_INSTALLER
#define UBI_BOOTCMD \
"ubiargs=ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs " \
@@ -74,17 +84,32 @@
"run fdt_fixup && bootz ${kernel_addr_r} - ${fdt_addr_r}\0"
#endif /* CONFIG_TDX_EASY_INSTALLER */
+#if defined(CONFIG_TARGET_COLIBRI_IMX6ULL_NAND)
/* Run Distro Boot script if ubiboot fails */
#define CONFIG_BOOTCOMMAND "run ubiboot || run distro_bootcmd;"
+#define DFU_ALT_NAND_INFO "imx6ull-bcb part 0,1;u-boot1 part 0,2;u-boot2 part 0,3;u-boot-env part 0,4;ubi partubi 0,5"
+#define MODULE_EXTRA_ENV_SETTINGS \
+ "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
+ "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
+ UBI_BOOTCMD
+#else
+#define MODULE_EXTRA_ENV_SETTINGS ""
+#endif
+#if defined(CONFIG_TARGET_COLIBRI_IMX6ULL_NAND)
+#define BOOT_TARGET_DEVICES(func) \
+ func(MMC, mmc, 0) \
+ func(USB, usb, 0) \
+ func(DHCP, dhcp, na)
+#elif defined(CONFIG_TARGET_COLIBRI_IMX6ULL_EMMC)
#define BOOT_TARGET_DEVICES(func) \
+ func(MMC, mmc, 1) \
func(MMC, mmc, 0) \
func(USB, usb, 0) \
func(DHCP, dhcp, na)
+#endif
#include <config_distro_bootcmd.h>
-#define DFU_ALT_NAND_INFO "imx6ull-bcb part 0,1;u-boot1 part 0,2;u-boot2 part 0,3;u-boot-env part 0,4;ubi partubi 0,5"
-
#if defined(CONFIG_TDX_EASY_INSTALLER)
# define BOOT_SCRIPT "boot-tezi.scr"
#else
@@ -94,19 +119,17 @@
#define CONFIG_EXTRA_ENV_SETTINGS \
BOOTENV \
MEM_LAYOUT_ENV_SETTINGS \
- UBI_BOOTCMD \
+ MODULE_EXTRA_ENV_SETTINGS \
UBOOT_UPDATE \
"boot_scripts=" BOOT_SCRIPT "\0" \
"boot_script_dhcp=" BOOT_SCRIPT "\0" \
"bootubipart=ubi\0" \
"console=ttymxc0\0" \
"defargs=user_debug=30\0" \
- "dfu_alt_info=" DFU_ALT_NAND_INFO "\0" \
"fdt_board=eval-v3\0" \
"fdt_fixup=;\0" \
"ip_dyn=yes\0" \
"kernel_file=zImage\0" \
- "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \
"setethupdate=if env exists ethaddr; then; else setenv ethaddr " \
"00:14:2d:00:00:00; fi; tftpboot ${loadaddr} " \
"${board}/flash_eth.img && source ${loadaddr}\0" \
@@ -139,11 +162,21 @@
#define CONFIG_SYS_INIT_SP_ADDR \
(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+/* environment organization */
+
+#if defined(CONFIG_ENV_IS_IN_MMC)
+/* Environment in eMMC, before config block at the end of 1st "boot sector" */
+#define CONFIG_SYS_MMC_ENV_DEV 0
+#define CONFIG_SYS_MMC_ENV_PART 1
+#endif
+
+#ifdef CONFIG_TARGET_COLIBRI_IMX6ULL_NAND
/* NAND stuff */
#define CONFIG_SYS_MAX_NAND_DEVICE 1
/* used to initialize CONFIG_SYS_NAND_BASE_LIST which is unused */
#define CONFIG_SYS_NAND_BASE -1
#define CONFIG_SYS_NAND_ONFI_DETECTION
+#endif
/* USB Configs */
#define CONFIG_EHCI_HCD_INIT_AFTER_RESET