From f4afa2a5e5b92bfac78483309cb98f9de773d1c5 Mon Sep 17 00:00:00 2001 From: Hiago De Franco Date: Mon, 2 Oct 2023 16:51:22 -0300 Subject: u-boot-toradex: Add patch for imx7 variant detection Add patch to enable variant detection durint boot time. Depending on the board configuration, the variant will be set to "-emmc" or cleared in case it is a NAND device. This patch improves variant detection during system initialization through USB recovery mode. Related-to: TEI-1112 Signed-off-by: Hiago De Franco (cherry picked from commit 16e5f73b2b294855fe579e8252b149154bdb7322) --- ...ibri_imx7-Enable-nand-emmc-detection-and-.patch | 82 ++++++++++++++++++++++ recipes-bsp/u-boot/u-boot-toradex_2022.07.bb | 1 + 2 files changed, 83 insertions(+) create mode 100644 recipes-bsp/u-boot/u-boot-toradex/0001-toradex-colibri_imx7-Enable-nand-emmc-detection-and-.patch diff --git a/recipes-bsp/u-boot/u-boot-toradex/0001-toradex-colibri_imx7-Enable-nand-emmc-detection-and-.patch b/recipes-bsp/u-boot/u-boot-toradex/0001-toradex-colibri_imx7-Enable-nand-emmc-detection-and-.patch new file mode 100644 index 0000000..b231bba --- /dev/null +++ b/recipes-bsp/u-boot/u-boot-toradex/0001-toradex-colibri_imx7-Enable-nand-emmc-detection-and-.patch @@ -0,0 +1,82 @@ +From a3554a151aa9c9ab2affd289458269273b08dfcf Mon Sep 17 00:00:00 2001 +From: Hiago De Franco +Date: Wed, 27 Sep 2023 13:22:25 -0300 +Subject: [PATCH] toradex: colibri_imx7: Enable nand/emmc detection and set + boot variant + +Add detection of eMMC vs NAND devices on the Colibri iMX7 +board. A GPIO is configured to detect the presence of an on-board resistor +that is configured differently based on the flash memory used. Depending on +the detection result, the 'variant' environment variable is set to '-emmc' +or cleared, indicating the type of storage device. + +This enhancement improves variant detection during system initialization +through USB recovery mode, where U-Boot is loaded directly to RAM. This +allows variant detection for an accurate device tree selection. + +Submitted [https://lore.kernel.org/u-boot/20231002115749.15160-1-hiagofranco@gmail.com/] +Signed-off-by: Hiago De Franco + +--- + board/toradex/colibri_imx7/colibri_imx7.c | 24 +++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/board/toradex/colibri_imx7/colibri_imx7.c b/board/toradex/colibri_imx7/colibri_imx7.c +index 119e67b47f..f0356af008 100644 +--- a/board/toradex/colibri_imx7/colibri_imx7.c ++++ b/board/toradex/colibri_imx7/colibri_imx7.c +@@ -53,6 +53,11 @@ DECLARE_GLOBAL_DATA_PTR; + + #define USB_CDET_GPIO IMX_GPIO_NR(7, 14) + ++#define FLASH_DETECTION_CTRL (PAD_CTL_HYS | PAD_CTL_PUE) ++#define FLASH_DET_GPIO IMX_GPIO_NR(6, 11) ++ ++static bool is_emmc; ++ + int dram_init(void) + { + gd->ram_size = get_ram_size((void *)PHYS_SDRAM, imx_ddr_size()); +@@ -60,6 +65,10 @@ int dram_init(void) + return 0; + } + ++static iomux_v3_cfg_t const flash_detection_pads[] = { ++ MX7D_PAD_SD3_RESET_B__GPIO6_IO11 | MUX_PAD_CTRL(FLASH_DETECTION_CTRL), ++}; ++ + static iomux_v3_cfg_t const uart1_pads[] = { + MX7D_PAD_UART1_RX_DATA__UART1_DTE_TX | MUX_PAD_CTRL(UART_PAD_CTRL), + MX7D_PAD_UART1_TX_DATA__UART1_DTE_RX | MUX_PAD_CTRL(UART_PAD_CTRL), +@@ -183,6 +192,16 @@ int board_init(void) + /* address of boot parameters */ + gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; + ++ /* ++ * Enable GPIO on NAND_WE_B/eMMC_RST with 100k pull-down. eMMC_RST ++ * is pulled high with 4.7k for eMMC devices. This allows to reliably ++ * detect eMMC/NAND flash ++ */ ++ imx_iomux_v3_setup_multiple_pads(flash_detection_pads, ARRAY_SIZE(flash_detection_pads)); ++ gpio_request(FLASH_DET_GPIO, "flash-detection-gpio"); ++ is_emmc = gpio_get_value(FLASH_DET_GPIO); ++ gpio_free(FLASH_DET_GPIO); ++ + #ifdef CONFIG_FEC_MXC + setup_fec(); + #endif +@@ -348,6 +367,11 @@ int board_late_init(void) + env_set("bootcmd", "sdp 0"); + } + #endif ++ if (is_emmc) ++ env_set("variant", "-emmc"); ++ else ++ env_set("variant", ""); ++ + return 0; + } + #endif /* CONFIG_BOARD_LATE_INIT */ +-- +2.40.1 + diff --git a/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb b/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb index 82eda2d..af07340 100644 --- a/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb +++ b/recipes-bsp/u-boot/u-boot-toradex_2022.07.bb @@ -21,4 +21,5 @@ TDX_PATCHES = " \ file://0001-apalis-colibri_imx6-imx6ull-_imx7-update-env-memory-.patch \ file://0001-configs-colibri-imx7-Fix-bad-block-table-in-flash-co.patch \ file://0001-colibri_imx6-fix-RALAT-and-WALAT-values.patch \ + file://0001-toradex-colibri_imx7-Enable-nand-emmc-detection-and-.patch \ " -- cgit v1.2.3