summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2021-08-10 18:25:59 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2021-08-12 13:40:11 +0200
commit1ae3ca27d9f522fea084ee546f9a45157438e265 (patch)
tree2fbb68e5c3c54799f1d9e2adb48ac19082a41417
parent9ad0030ceaa6df29dfff6fe9da968643d659ea88 (diff)
colibri-imx6ull: add tezi recovery config
This configuration creates an U-Boot which does not use any storage device, i.e. no eMMC or NAND. It is used to boot U-Boot over recovery aka. Serial Downloader without the need to know if the module uses eMMC or NAND for storage. It detects the storage device type and start the Toradex Easy Installer with the matching configuration. Note that for NAND devices the mtd partitioning is not patched into the device tree by U-Boot. It must be part of the provided device tree. Related-to: TEI-922 Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--board/toradex/colibri-imx6ull/Kconfig2
-rw-r--r--configs/colibri-imx6ull_tezi-recovery_defconfig73
-rw-r--r--include/configs/colibri-imx6ull_tezi-recovery.h129
3 files changed, 203 insertions, 1 deletions
diff --git a/board/toradex/colibri-imx6ull/Kconfig b/board/toradex/colibri-imx6ull/Kconfig
index 8548548a95..63a75ec2d8 100644
--- a/board/toradex/colibri-imx6ull/Kconfig
+++ b/board/toradex/colibri-imx6ull/Kconfig
@@ -32,7 +32,7 @@ config TDX_CFG_BLOCK_2ND_ETHADDR
default y
config SYS_CONFIG_NAME
- default "colibri-imx6ull-tezi-recovery" if (!TARGET_COLIBRI_IMX6ULL_NAND && !TARGET_COLIBRI_IMX6ULL_EMMC)
+ default "colibri-imx6ull_tezi-recovery" if (!TARGET_COLIBRI_IMX6ULL_NAND && !TARGET_COLIBRI_IMX6ULL_EMMC)
if TARGET_COLIBRI_IMX6ULL_NAND
diff --git a/configs/colibri-imx6ull_tezi-recovery_defconfig b/configs/colibri-imx6ull_tezi-recovery_defconfig
new file mode 100644
index 0000000000..7b3c94848b
--- /dev/null
+++ b/configs/colibri-imx6ull_tezi-recovery_defconfig
@@ -0,0 +1,73 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_SYS_TEXT_BASE=0x87800000
+CONFIG_ENV_SIZE=0x2000
+CONFIG_TARGET_COLIBRI_IMX6ULL=y
+CONFIG_DM_GPIO=y
+# CONFIG_TDX_CFG_BLOCK is not set
+CONFIG_TDX_EASY_INSTALLER=y
+CONFIG_NR_DRAM_BANKS=1
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/toradex/colibri-imx6ull/imximage.cfg,MX6ULL,IMX_NAND"
+CONFIG_BOOTDELAY=1
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_VERSION_VARIABLE=y
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_HUSH_PARSER=y
+CONFIG_SYS_PROMPT="Colibri iMX6ULL TEZI # "
+CONFIG_CMD_BOOTZ=y
+# CONFIG_CMD_ELF is not set
+# CONFIG_CMD_IMI is not set
+# CONFIG_CMD_XIMG is not set
+CONFIG_CMD_ASKENV=y
+CONFIG_CRC32_VERIFY=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_SYS_MEMTEST_START=0x80000000
+CONFIG_SYS_MEMTEST_END=0x88000000
+CONFIG_CMD_DM=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_REGULATOR=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_CONTROL=y
+CONFIG_DEFAULT_DEVICE_TREE="imx6ull-colibri"
+CONFIG_USB_FUNCTION_FASTBOOT=y
+CONFIG_FASTBOOT_BUF_ADDR=0x12000000
+CONFIG_FASTBOOT_BUF_SIZE=0x10000000
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_MXC=y
+CONFIG_DM_MMC=y
+CONFIG_FSL_USDHC=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_MICREL=y
+CONFIG_DM_ETH=y
+CONFIG_FEC_MXC=y
+CONFIG_MII=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_DM_SERIAL=y
+CONFIG_MXC_UART=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="Toradex"
+CONFIG_USB_GADGET_VENDOR_NUM=0x1b67
+CONFIG_USB_GADGET_PRODUCT_NUM=0x4000
+CONFIG_CI_UDC=y
+CONFIG_SYS_WHITE_ON_BLACK=y
+CONFIG_OF_LIBFDT_OVERLAY=y
diff --git a/include/configs/colibri-imx6ull_tezi-recovery.h b/include/configs/colibri-imx6ull_tezi-recovery.h
new file mode 100644
index 0000000000..0650cd057d
--- /dev/null
+++ b/include/configs/colibri-imx6ull_tezi-recovery.h
@@ -0,0 +1,129 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2018-2021 Toradex AG
+ *
+ * Configuration settings for the Colibri iMX6ULL module when used with TEZI in recovery.
+ * used with the eMMC and NAND variant, i.e. not accessing any storage device.
+ *
+ * based on colibri_imx7.h
+ */
+
+#ifndef __COLIBRI_IMX6ULL_RECOVERY_CONFIG_H
+#define __COLIBRI_IMX6ULL_RECOVERY_CONFIG_H
+
+#include "mx6_common.h"
+#define CONFIG_IOMUX_LPSR
+
+#define PHYS_SDRAM_SIZE SZ_1G
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN (32 * SZ_1M)
+
+/* Network */
+#define CONFIG_TFTP_TSIZE
+
+/* ENET1 */
+#define IMX_FEC_BASE ENET2_BASE_ADDR
+
+/* MMC Config */
+#define CONFIG_SYS_FSL_ESDHC_ADDR 0
+#define CONFIG_SYS_FSL_USDHC_NUM 1
+
+/* I2C configs */
+#define CONFIG_SYS_I2C_SPEED 100000
+
+#define CONFIG_IPADDR 192.168.10.2
+#define CONFIG_NETMASK 255.255.255.0
+#define CONFIG_SERVERIP 192.168.10.1
+#define CONFIG_ROOTPATH "/srv/nfs"
+
+/* can't determine the u-boot update variant in the recovery u-boot */
+#define UBOOT_UPDATE ""
+
+#define MEM_LAYOUT_ENV_SETTINGS \
+ "bootm_size=0x10000000\0" \
+ "fdt_addr_r=0x82100000\0" \
+ "kernel_addr_r=0x81000000\0" \
+ "pxefile_addr_r=0x87100000\0" \
+ "ramdisk_addr_r=0x82200000\0" \
+ "scriptaddr=0x87000000\0"
+
+#define UBI_BOOTCMD \
+ "ubiargs=ubi.mtd=ubi root=ubi0:rootfs rw rootfstype=ubifs " \
+ "ubi.fm_autoconvert=1\0" \
+ "ubiboot=run setup; " \
+ "setenv bootargs console=ttymxc0,115200 quiet " \
+ "rootfstype=squashfs root=/dev/ram autoinstall " \
+ "${teziargs}; echo Booting Toradex Easy Installer...; " \
+ "ubi part ubi && " \
+ "ubi read ${ramdisk_addr_r} rootfs && " \
+ "bootm ${ramdisk_addr_r}\0"
+
+/* No module specific environment in the recovery u-boot */
+#define MODULE_EXTRA_ENV_SETTINGS ""
+
+#define BOOT_TARGET_DEVICES(func) \
+ func(MMC, mmc, 0) \
+ func(USB, usb, 0) \
+ func(DHCP, dhcp, na)
+#include <config_distro_bootcmd.h>
+
+#define BOOT_SCRIPT "boot-tezi.scr"
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ BOOTENV \
+ MEM_LAYOUT_ENV_SETTINGS \
+ 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" \
+ "fdt_board=eval-v3\0" \
+ "fdt_fixup=;\0" \
+ "ip_dyn=yes\0" \
+ "kernel_file=zImage\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" \
+ "setsdupdate=mmc rescan && setenv interface mmc && " \
+ "fatload ${interface} 0:1 ${loadaddr} " \
+ "${board}/flash_blk.img && source ${loadaddr}\0" \
+ "setup=setenv setupargs " \
+ "console=tty1 console=${console}" \
+ ",${baudrate}n8 ${memargs} consoleblank=0\0" \
+ "setupdate=run setsdupdate || run setusbupdate || run setethupdate\0" \
+ "setusbupdate=usb start && setenv interface usb && " \
+ "fatload ${interface} 0:1 ${loadaddr} " \
+ "${board}/flash_blk.img && source ${loadaddr}\0" \
+ "splashpos=m,m\0" \
+ "splashimage=" __stringify(CONFIG_LOADADDR) "\0" \
+ "videomode=video=ctfb:x:640,y:480,depth:18,pclk:39722,le:48,ri:16,up:33,lo:10,hs:96,vs:2,sync:0,vmode:0\0" \
+ "vidargs=video=mxsfb:640x480M-16@60"
+
+#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
+
+/* Physical Memory Map */
+#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
+
+#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET \
+ (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR \
+ (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
+
+/* USB Configs */
+#define CONFIG_EHCI_HCD_INIT_AFTER_RESET
+
+#define CONFIG_MXC_USB_PORTSC (PORT_PTS_UTMI | PORT_PTS_PTW)
+#define CONFIG_MXC_USB_FLAGS 0
+#define CONFIG_USB_MAX_CONTROLLER_COUNT 2
+
+#define CONFIG_IMX_THERMAL
+
+#define CONFIG_USBD_HS
+#endif /* __COLIBRI_IMX6ULL_RECOVERY_CONFIG_H */