From 4b387deb78dcbe491c1f73fdd758f4ca3307bbbe Mon Sep 17 00:00:00 2001 From: Soeren Moch Date: Fri, 1 Mar 2019 13:10:52 +0100 Subject: [PATCH 1/6] board: tbs2910: Fix default environment Especially fix usb keyboard support. Other changes are only for beautification. Signed-off-by: Soeren Moch --- include/configs/tbs2910.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/configs/tbs2910.h b/include/configs/tbs2910.h index 2d4b9c9bfe..b06c90939c 100644 --- a/include/configs/tbs2910.h +++ b/include/configs/tbs2910.h @@ -94,7 +94,7 @@ "run set_con_hdmi; " \ "else " \ "run set_con_serial; " \ - "fi;" + "fi" #endif /* CONFIG_USB_KEYBOARD */ #endif /* CONFIG_CMD_USB */ @@ -142,12 +142,12 @@ "console=ttymxc0\0" \ "fan=gpio set 92\0" \ "set_con_serial=setenv stdout serial; " \ - "setenv stderr serial;\0" \ + "setenv stderr serial\0" \ "set_con_hdmi=setenv stdout serial,vga; " \ - "setenv stderr serial,vga;\0" \ - "stderr=serial,vga;\0" \ - "stdin=serial,usbkbd;\0" \ - "stdout=serial,vga;\0" + "setenv stderr serial,vga\0" \ + "stderr=serial,vga\0" \ + "stdin=serial,usbkbd\0" \ + "stdout=serial,vga\0" #define CONFIG_BOOTCOMMAND \ "mmc rescan; " \ From 9b8d9ec41a6f161d53d32bf71f79332236b44ba1 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Thu, 21 Mar 2019 10:59:06 -0300 Subject: [PATCH 2/6] pico-imx6ul: Fix eMMC boot after DM_MMC conversion After the DM_MMC conversion the following eMMC boot error is observed: U-Boot SPL 2019.04-rc4 (Mar 20 2019 - 18:53:28 +0000) Trying to boot from MMC1 MMC Device 0 not found spl: could not find mmc device 0. error: -19 SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ### This happens because the SPL code does not initialize the SDHC pins and clock. Fix it by moving the original eMMC initialization from U-Boot proper to SPL. Reported-by: Otavio Salvador Signed-off-by: Fabio Estevam Tested-by: Fabio Berton Reviewed-by: Otavio Salvador --- board/technexion/pico-imx6ul/spl.c | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/board/technexion/pico-imx6ul/spl.c b/board/technexion/pico-imx6ul/spl.c index 6464a32d3b..f972cc9eaf 100644 --- a/board/technexion/pico-imx6ul/spl.c +++ b/board/technexion/pico-imx6ul/spl.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -141,4 +142,37 @@ void board_init_f(ulong dummy) void reset_cpu(ulong addr) { } + +#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ + PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \ + PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS) + +static iomux_v3_cfg_t const usdhc1_pads[] = { + MX6_PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_READY_B__USDHC1_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_CE0_B__USDHC1_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_CE1_B__USDHC1_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), + MX6_PAD_NAND_CLE__USDHC1_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), +}; + +static struct fsl_esdhc_cfg usdhc_cfg[1] = { + {USDHC1_BASE_ADDR}, +}; + +int board_mmc_getcd(struct mmc *mmc) +{ + return 1; +} + +int board_mmc_init(bd_t *bis) +{ + imx_iomux_v3_setup_multiple_pads(usdhc1_pads, ARRAY_SIZE(usdhc1_pads)); + usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK); + return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); +} #endif From b7de88cd5cb8c213fb158b37fcf0662c1d2332cd Mon Sep 17 00:00:00 2001 From: Adam Ford Date: Sun, 3 Mar 2019 16:22:45 -0600 Subject: [PATCH 3/6] ARM: imx6q_logic: Enable UUID support With UUID support, the root can now point to UUID. This makes swiching between mmc 0 and mmc 1 easier by simplying changing mmcdev between 0 and 1. From there, the scripts handle the rest. Signed-off-by: Adam Ford --- configs/imx6q_logic_defconfig | 1 + include/configs/imx6_logic.h | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/configs/imx6q_logic_defconfig b/configs/imx6q_logic_defconfig index 8a875a8716..385efcec4e 100644 --- a/configs/imx6q_logic_defconfig +++ b/configs/imx6q_logic_defconfig @@ -46,6 +46,7 @@ CONFIG_CMD_USB_SDP=y CONFIG_CMD_USB_MASS_STORAGE=y CONFIG_CMD_CACHE=y # CONFIG_CMD_LED is not set +CONFIG_CMD_UUID=y CONFIG_CMD_PMIC=y CONFIG_CMD_EXT4_WRITE=y CONFIG_CMD_MTDPARTS=y diff --git a/include/configs/imx6_logic.h b/include/configs/imx6_logic.h index a121064e37..ad45b106b0 100644 --- a/include/configs/imx6_logic.h +++ b/include/configs/imx6_logic.h @@ -23,7 +23,7 @@ /* MMC Configs */ #define CONFIG_SYS_FSL_ESDHC_ADDR 0 #define CONFIG_SYS_FSL_USDHC_NUM 2 -#define CONFIG_MMCROOT "/dev/mmcblk1p2" /* Dev kit SD card */ + /* Ethernet Configs */ #define CONFIG_FEC_XCV_TYPE RMII @@ -43,10 +43,10 @@ "console=" CONSOLE_DEV "\0" \ "mmcdev=1\0" \ "mmcpart=1\0" \ - "mmcroot=" CONFIG_MMCROOT " rootwait rw\0" \ + "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \ "nandroot=ubi0:rootfs rootfstype=ubifs\0" \ "mmcargs=setenv bootargs console=${console},${baudrate}" \ - " root=${mmcroot} ${mtdparts}\0" \ + " root=PARTUUID=${uuid} rootwait rw\0 ${mtdparts}\0" \ "nandargs=setenv bootargs console=${console},${baudrate}" \ " ubi.mtd=fs root=${nandroot} ${mtdparts}\0" \ "ramargs=setenv bootargs console=${console},${baudrate}" \ @@ -60,8 +60,8 @@ "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdt_file}\0" \ "loadramdisk=fatload mmc ${mmcdev}:${mmcpart} ${ramdisk_addr_r}" \ " ${ramdisk_file}; setenv ramdisksize ${filesize}\0" \ - "mmcboot=echo Booting from mmc...; run mmcargs; run loadimage;" \ - " run loadfdt; bootz ${loadaddr} - ${fdt_addr_r}\0" \ + "mmcboot=echo Booting from mmc...; run finduuid; run mmcargs;" \ + "run loadimage; run loadfdt; bootz ${loadaddr} - ${fdt_addr_r}\0" \ "mmcramboot=run ramargs; run loadimage;" \ " run loadfdt; run loadramdisk;" \ " bootz ${loadaddr} ${ramdisk_addr_r} ${fdt_addr_r}\0" \ From 8b9cba0295dcdce5eb8bb10d79f6dafb5a167349 Mon Sep 17 00:00:00 2001 From: Michael Trimarchi Date: Fri, 8 Mar 2019 13:05:03 +0530 Subject: [PATCH 4/6] configs: icore: Fix U-Boot proper loading from nand SPL on Engicam i.Core M6 boards enabled DM, so it would require some malloc() pool before relocation in order to load U-Boot proper properly. So, enable SPL malloc() pool of 0x2000 size similarly like what we have used for icore mmc defconfigs. Reviewed-by: Jagan Teki Tested-by: Shyam Saini Signed-off-by: Michael Trimarchi Reviewed-by: Fabio Estevam --- configs/imx6dl_icore_nand_defconfig | 1 + configs/imx6q_icore_nand_defconfig | 1 + 2 files changed, 2 insertions(+) diff --git a/configs/imx6dl_icore_nand_defconfig b/configs/imx6dl_icore_nand_defconfig index c34c515080..69c45b948b 100644 --- a/configs/imx6dl_icore_nand_defconfig +++ b/configs/imx6dl_icore_nand_defconfig @@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x17800000 CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_TARGET_MX6Q_ENGICAM=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y diff --git a/configs/imx6q_icore_nand_defconfig b/configs/imx6q_icore_nand_defconfig index cf149d615b..b53a5010e5 100644 --- a/configs/imx6q_icore_nand_defconfig +++ b/configs/imx6q_icore_nand_defconfig @@ -4,6 +4,7 @@ CONFIG_SYS_TEXT_BASE=0x17800000 CONFIG_SPL_GPIO_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_TARGET_MX6Q_ENGICAM=y CONFIG_SPL_SERIAL_SUPPORT=y CONFIG_SPL=y From 40ee163cc4e304d3b0a84cd0be37520270b95271 Mon Sep 17 00:00:00 2001 From: Jagan Teki Date: Thu, 21 Mar 2019 14:05:53 +0530 Subject: [PATCH 5/6] configs: icorem6: Use imx6 cratch register for bootcount SRAM address used for bootcount on exiting code is erasing previous count value when system reset from Linux. So use the dedicated imx6 scratch register, GPR2 to preserve the contents even if the system reset from Linux. Fixes: 4eb9aa39350e ("configs: imx6qdl_icore_mmc: Enable watchdog and bootcounter") Signed-off-by: Michael Trimarchi Signed-off-by: Jagan Teki Tested-by: Shyam Saini Reviewed-by: Stefano Babic --- configs/imx6qdl_icore_mmc_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6qdl_icore_mmc_defconfig index 68ad1c6d20..24e99718e6 100644 --- a/configs/imx6qdl_icore_mmc_defconfig +++ b/configs/imx6qdl_icore_mmc_defconfig @@ -16,7 +16,7 @@ CONFIG_CMD_BOOTCOUNT=y CONFIG_BOOTCOUNT_LIMIT=y CONFIG_BOOTCOUNT_BOOTLIMIT=3 CONFIG_SYS_BOOTCOUNT_SINGLEWORD=y -CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000 +CONFIG_SYS_BOOTCOUNT_ADDR=0x020D8024 CONFIG_SYS_BOOTCOUNT_MAGIC=0x0B01C041 CONFIG_IMX_WATCHDOG=y CONFIG_DEBUG_UART=y From 00102ae52055e294ac37ae1380f37620f4a8bb26 Mon Sep 17 00:00:00 2001 From: Fabio Estevam Date: Wed, 27 Mar 2019 20:03:39 -0300 Subject: [PATCH 6/6] pico-imx7d: README: Recommend the usage of a USB hub Since commit 9e3c0174da842 ("pico-imx7d: Add LCD support") we started to notice some hangs in U-Boot. There is not an issue on such commit per se, but due to the LCD support the current drawn is increased and this may cause issues when powering pico-imx7d-pi from USB. Some computers may be a bit strict with USB current draw and will shut down their ports if the draw is too high. The solution for that is to use an externally powered USB hub between the board and the host computer. Add such recommendation to the README file. Signed-off-by: Fabio Estevam --- board/technexion/pico-imx7d/README | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/board/technexion/pico-imx7d/README b/board/technexion/pico-imx7d/README index 24eb97e82c..f21d8301cb 100644 --- a/board/technexion/pico-imx7d/README +++ b/board/technexion/pico-imx7d/README @@ -26,6 +26,10 @@ Connect a USB to serial adapter between the host PC and pico. Connect a USB cable between the OTG pico port and the host PC. +Note: Some computers may be a bit strict with USB current draw and will +shut down their ports if the draw is too high. The solution for that is +to use an externally powered USB hub between the board and the host computer. + Open a terminal program such as minicom. Copy SPL and u-boot.img to the imx_usb_loader folder.