diff --git a/mx6-Initial-Hummingboard-2-support.patch b/mx6-Initial-Hummingboard-2-support.patch deleted file mode 100644 index 44ae594..0000000 --- a/mx6-Initial-Hummingboard-2-support.patch +++ /dev/null @@ -1,240 +0,0 @@ -From f349c5dc5ca2af90e026135b807668444ff23d84 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 6 Mar 2017 09:28:37 +0000 -Subject: [PATCH 1/2] Initial Hummingboard 2 support - -Signed-off-by: Peter Robinson ---- - board/solidrun/mx6cuboxi/mx6cuboxi.c | 118 +++++++++++++++++++++++++++-------- - 1 file changed, 92 insertions(+), 26 deletions(-) - -diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c -index 285588d..5b187ff 100644 ---- a/board/solidrun/mx6cuboxi/mx6cuboxi.c -+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c -@@ -37,6 +37,15 @@ - - DECLARE_GLOBAL_DATA_PTR; - -+enum { -+ CUBOX, -+ HB1, -+ HB2, -+ HB2r15, -+}; -+ -+static int board_type; -+ - #define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ - PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \ - PAD_CTL_SRE_FAST | PAD_CTL_HYS) -@@ -48,6 +57,9 @@ DECLARE_GLOBAL_DATA_PTR; - #define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ - PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS) - -+#define ENET_PAD_CTRL_OD (PAD_CTL_PUS_100K_UP | \ -+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | PAD_CTL_ODE) -+ - #define ENET_PAD_CTRL_PD (PAD_CTL_PUS_100K_DOWN | \ - PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS) - -@@ -79,8 +91,11 @@ static iomux_v3_cfg_t const usdhc2_pads[] = { - - static iomux_v3_cfg_t const hb_cbi_sense[] = { - /* These pins are for sensing if it is a CuBox-i or a HummingBoard */ -- IOMUX_PADS(PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(UART_PAD_CTRL)), -- IOMUX_PADS(PAD_EIM_DA4__GPIO3_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), -+ IOMUX_PADS(PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(UART_PAD_CTRL)), -+ IOMUX_PADS(PAD_EIM_DA4__GPIO3_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), -+ IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | MUX_PAD_CTRL(UART_PAD_CTRL)), -+ IOMUX_PADS(PAD_CSI0_DAT14__GPIO6_IO00 | MUX_PAD_CTRL(UART_PAD_CTRL)), -+ IOMUX_PADS(PAD_CSI0_DAT18__GPIO6_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), - }; - - static iomux_v3_cfg_t const usb_pads[] = { -@@ -92,8 +107,9 @@ static void setup_iomux_uart(void) - SETUP_IOMUX_PADS(uart1_pads); - } - --static struct fsl_esdhc_cfg usdhc_cfg[1] = { -+static struct fsl_esdhc_cfg usdhc_cfg[2] = { - {USDHC2_BASE_ADDR}, -+ {USDHC3_BASE_ADDR}, - }; - - int board_mmc_getcd(struct mmc *mmc) -@@ -103,16 +119,40 @@ int board_mmc_getcd(struct mmc *mmc) - - int board_mmc_init(bd_t *bis) - { -- SETUP_IOMUX_PADS(usdhc2_pads); -- usdhc_cfg[0].esdhc_base = USDHC2_BASE_ADDR; -- usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK); -- gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk; -+ int ret; -+ u32 index = 0; -+ -+ for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) { -+ switch (index) { -+ case 0: -+ SETUP_IOMUX_PADS(usdhc2_pads); -+ usdhc_cfg[0].esdhc_base = USDHC2_BASE_ADDR; -+ usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK); -+ gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk; -+ break; -+ case 1: -+ SETUP_IOMUX_PADS(usdhc3_pads); -+ usdhc_cfg[1].esdhc_base = USDHC3_BASE_ADDR; -+ usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); -+ gd->arch.sdhc_clk = usdhc_cfg[1].sdhc_clk; -+ break; -+ default: -+ printf("Warning: you configured more USDHC controllers" -+ "(%d) then supported by the board (%d)\n", -+ index + 1, CONFIG_SYS_FSL_USDHC_NUM); -+ return -EINVAL; -+ } - -- return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); -+ ret = fsl_esdhc_initialize(bis, &usdhc_cfg[index]); -+ if (ret) -+ return ret; -+ } -+ -+ return 0; - } - - static iomux_v3_cfg_t const enet_pads[] = { -- IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL)), -+ IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL_OD)), - IOMUX_PADS(PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL)), - /* AR8035 reset */ - IOMUX_PADS(PAD_KEY_ROW4__GPIO4_IO15 | MUX_PAD_CTRL(ENET_PAD_CTRL_PD)), -@@ -328,41 +368,62 @@ int board_init(void) - return 0; - } - --static bool is_hummingboard(void) -+static int is_hummingboard(void) - { -- int val1, val2; -+ int val1, val2, val3, val4, val5; - - SETUP_IOMUX_PADS(hb_cbi_sense); - - gpio_direction_input(IMX_GPIO_NR(4, 9)); - gpio_direction_input(IMX_GPIO_NR(3, 4)); -+ gpio_direction_input(IMX_GPIO_NR(2, 8)); -+ gpio_direction_input(IMX_GPIO_NR(6, 0)); -+ gpio_direction_input(IMX_GPIO_NR(6, 4)); - - val1 = gpio_get_value(IMX_GPIO_NR(4, 9)); - val2 = gpio_get_value(IMX_GPIO_NR(3, 4)); -+ val3 = gpio_get_value(IMX_GPIO_NR(2, 8)); -+ val4 = gpio_get_value(IMX_GPIO_NR(6, 0)); -+ val5 = gpio_get_value(IMX_GPIO_NR(6, 4)); - - /* - * Machine selection - -- * Machine val1, val2 -- * ------------------------- -- * HB rev 3.x x 0 -- * CBi 0 1 -- * HB 1 1 -+ * Machine val1, val2, val3 -+ * ------------------------------- -+ * HB2 x x 0 -+ * HB rev 3.x x 0 x -+ * CBi 0 1 x -+ * HB 1 1 x - */ - -- if (val2 == 0) -- return true; -- else if (val1 == 0) -- return false; -- else -- return true; -+ if (val3 == 0) { -+ board_type = HB2; -+ } else if (val2 == 0) { -+ board_type = HB1; -+ } else if (val1 == 0) { -+ board_type = CUBOX; -+ } else { -+ board_type = HB1; -+ } -+ -+ if (val4 == 1 && val5 == 0) -+ board_type = HB2r15; -+ -+ return board_type; -+ - } - - int checkboard(void) - { -- if (is_hummingboard()) -+ switch (board_type) { -+ case HB2: -+ case HB2r15: -+ puts("Board: MX6 Hummingboard 2\n"); -+ case HB1: - puts("Board: MX6 Hummingboard\n"); -- else -+ case CUBOX: - puts("Board: MX6 Cubox-i\n"); -+ } - - return 0; - } -@@ -370,10 +431,15 @@ int checkboard(void) - int board_late_init(void) - { - #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG -- if (is_hummingboard()) -+ switch (board_type) { -+ case HB2: -+ case HB2r15: -+ setenv("board_name", "HUMMINGBOARD2"); -+ case HB1: - setenv("board_name", "HUMMINGBOARD"); -- else -+ case CUBOX: - setenv("board_name", "CUBOXI"); -+ } - - if (is_mx6dq()) - setenv("board_rev", "MX6Q"); --- -2.9.3 - -From 039d4ce71df224d36f857519cc7a7f56568a75c3 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Mon, 6 Mar 2017 11:26:21 +0000 -Subject: [PATCH 2/2] drop mmc init for the moment - ---- - board/solidrun/mx6cuboxi/mx6cuboxi.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c -index 5b187ff..50dcc09 100644 ---- a/board/solidrun/mx6cuboxi/mx6cuboxi.c -+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c -@@ -130,12 +130,6 @@ int board_mmc_init(bd_t *bis) - usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK); - gd->arch.sdhc_clk = usdhc_cfg[0].sdhc_clk; - break; -- case 1: -- SETUP_IOMUX_PADS(usdhc3_pads); -- usdhc_cfg[1].esdhc_base = USDHC3_BASE_ADDR; -- usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); -- gd->arch.sdhc_clk = usdhc_cfg[1].sdhc_clk; -- break; - default: - printf("Warning: you configured more USDHC controllers" - "(%d) then supported by the board (%d)\n", --- -2.9.3 - diff --git a/mx6cuboxi-add-support-for-detecting-Revision-1.5-SoM.patch b/mx6cuboxi-add-support-for-detecting-Revision-1.5-SoM.patch new file mode 100644 index 0000000..06b883c --- /dev/null +++ b/mx6cuboxi-add-support-for-detecting-Revision-1.5-SoM.patch @@ -0,0 +1,104 @@ +From 6f617cf4eeb14eceecfac499c723753ab1dded54 Mon Sep 17 00:00:00 2001 +From: Peter Robinson +Date: Sun, 4 Mar 2018 13:27:10 +0000 +Subject: [PATCH] mx6cuboxi: add support for detecting Revision 1.5 SoMs + +Solid Run have a rev 1.5 SoM with different a different WiFi/BT module and some +other changes. Their downstream commit 99e18b7f14 adds support for detecting +this new SoM revision. This adds that support and sets up the new +device tree naming that landed in the linux 4.16 kernel. + +Tested on a Hummingboard2 Gate. + +Signed-off-by: Peter Robinson +--- + board/solidrun/mx6cuboxi/mx6cuboxi.c | 30 +++++++++++++++++++++++++++--- + include/configs/mx6cuboxi.h | 12 ++++++------ + 2 files changed, 33 insertions(+), 9 deletions(-) + +diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c +index ee9e4f7c01..bea6275b78 100644 +--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c ++++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c +@@ -79,9 +79,11 @@ static iomux_v3_cfg_t const usdhc2_pads[] = { + }; + + static iomux_v3_cfg_t const hb_cbi_sense[] = { +- /* These pins are for sensing if it is a CuBox-i or a HummingBoard */ +- IOMUX_PADS(PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(UART_PAD_CTRL)), +- IOMUX_PADS(PAD_EIM_DA4__GPIO3_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), ++ /* These pins are for sensing if it is a CuBox-i, HummingBoard(2) and SoM rev */ ++ IOMUX_PADS(PAD_KEY_ROW1__GPIO4_IO09 | MUX_PAD_CTRL(UART_PAD_CTRL)), ++ IOMUX_PADS(PAD_EIM_DA4__GPIO3_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), ++ IOMUX_PADS(PAD_CSI0_DAT14__GPIO6_IO00 | MUX_PAD_CTRL(UART_PAD_CTRL)), ++ IOMUX_PADS(PAD_CSI0_DAT18__GPIO6_IO04 | MUX_PAD_CTRL(UART_PAD_CTRL)), + }; + + static iomux_v3_cfg_t const usb_pads[] = { +@@ -390,6 +392,25 @@ static bool is_hummingboard2(void) + return false; + } + ++static bool is_som_rev15(void) ++{ ++ int val1; ++ int val2; ++ ++ SETUP_IOMUX_PADS(hb_cbi_sense); ++ ++ gpio_direction_input(IMX_GPIO_NR(6, 0)); ++ gpio_direction_input(IMX_GPIO_NR(6, 4)); ++ ++ val1 = gpio_get_value(IMX_GPIO_NR(6, 0)); ++ val2 = gpio_get_value(IMX_GPIO_NR(6, 4)); ++ ++ if (val1 == 1 && val2 == 0) ++ return true; ++ else ++ return false; ++} ++ + int checkboard(void) + { + if (is_hummingboard2()) +@@ -412,6 +433,9 @@ int board_late_init(void) + else + env_set("board_name", "CUBOXI"); + ++ if (is_som_rev15()) ++ env_set("som_rev", "-som-v15"); ++ + if (is_mx6dq()) + env_set("board_rev", "MX6Q"); + else +diff --git a/include/configs/mx6cuboxi.h b/include/configs/mx6cuboxi.h +index 0e1d18cad8..076fd2c40e 100644 +--- a/include/configs/mx6cuboxi.h ++++ b/include/configs/mx6cuboxi.h +@@ -104,17 +104,17 @@ + "fi\0" \ + "findfdt="\ + "if test $board_name = HUMMINGBOARD2 && test $board_rev = MX6Q ; then " \ +- "setenv fdtfile imx6q-hummingboard2.dtb; fi; " \ ++ "setenv fdtfile imx6q-hummingboard2${som_rev}.dtb; fi; " \ + "if test $board_name = HUMMINGBOARD2 && test $board_rev = MX6DL ; then " \ +- "setenv fdtfile imx6dl-hummingboard2.dtb; fi; " \ ++ "setenv fdtfile imx6dl-hummingboard2${som_rev}.dtb; fi; " \ + "if test $board_name = HUMMINGBOARD && test $board_rev = MX6Q ; then " \ +- "setenv fdtfile imx6q-hummingboard.dtb; fi; " \ ++ "setenv fdtfile imx6q-hummingboard${som_rev}.dtb; fi; " \ + "if test $board_name = HUMMINGBOARD && test $board_rev = MX6DL ; then " \ +- "setenv fdtfile imx6dl-hummingboard.dtb; fi; " \ ++ "setenv fdtfile imx6dl-hummingboard${som_rev}.dtb; fi; " \ + "if test $board_name = CUBOXI && test $board_rev = MX6Q ; then " \ +- "setenv fdtfile imx6q-cubox-i.dtb; fi; " \ ++ "setenv fdtfile imx6q-cubox-i${som_rev}.dtb; fi; " \ + "if test $board_name = CUBOXI && test $board_rev = MX6DL ; then " \ +- "setenv fdtfile imx6dl-cubox-i.dtb; fi; " \ ++ "setenv fdtfile imx6dl-cubox-i${som_rev}.dtb; fi; " \ + "if test $fdtfile = undefined; then " \ + "echo WARNING: Could not determine dtb to use; fi; \0" \ + BOOTENV +-- +2.14.3 + diff --git a/uboot-tools.spec b/uboot-tools.spec index 218624e..e653a3c 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -2,7 +2,7 @@ Name: uboot-tools Version: 2018.03 -Release: 0.7%{?candidate:.%{candidate}}%{?dist} +Release: 0.8%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities License: GPLv2+ BSD LGPL-2.1+ LGPL-2.0+ URL: http://www.denx.de/wiki/U-Boot @@ -24,16 +24,14 @@ Patch4: Add-fix-for-Pine64-gigabit-throughput-issues.patch Patch5: imx-spl-Partially-revert-spl-eMMC-SD-Provide.patch Patch6: rk33xx-make_fit_atf-fix.patch Patch7: rk33xx-enable-make-itb.patch +Patch8: mx6cuboxi-add-support-for-detecting-Revision-1.5-SoM.patch # Board fixes and enablement #Patch10: db-generic-fixes.patch #Patch11: db410c-fixes.patch #Patch12: db820c-support.patch #Patch13: dragonboard-fixes.patch -#Patch14: Rpi-Add-support-for-second-sd-host-controller.patch -#Patch15: RPi-Properly-handle-dynamic-serial-configuration.patch # Patch14: mvebu-enable-generic-distro-boot-config.patch -# Patch15: mx6-Initial-Hummingboard-2-support.patch BuildRequires: bc BuildRequires: dtc @@ -292,6 +290,9 @@ cp -p board/warp7/README builds/docs/README.warp7 %endif %changelog +* Sun Mar 4 2018 Peter Robinson 2018.03-0.8.rc3 +- Add support for SoM rev 1.5 to mx6cuboxi + * Sun Feb 25 2018 Peter Robinson 2018.03-0.7.rc3 - Build 64 bit Rockchips FIT images with ARM Trusted Firmware