From cb77d7ba0a2eeedbe13e20996b9e20298a096a35 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Wed, 10 Dec 2014 14:37:20 +0100 Subject: colibri-imx6: add board_rev to the U-Boot environment Unify code with Apalis iMX6 while not changing behaviour Add board_rev to the U-Boot environment. On V1.0A HW: 010a Add CONFIG_ENV_VARS_UBOOT_CONFIG --- board/toradex/colibri_imx6/colibri_imx6.c | 35 +++++++++++++++++++++++-------- include/configs/colibri_imx6.h | 6 ++++-- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/board/toradex/colibri_imx6/colibri_imx6.c b/board/toradex/colibri_imx6/colibri_imx6.c index ea342a63a7..4c567e8c48 100644 --- a/board/toradex/colibri_imx6/colibri_imx6.c +++ b/board/toradex/colibri_imx6/colibri_imx6.c @@ -35,6 +35,8 @@ DECLARE_GLOBAL_DATA_PTR; +static u32 get_board_rev_local(void); + #if defined(CONFIG_BOARD_LATE_INIT) && (defined(CONFIG_TRDX_CFG_BLOCK) || \ defined(CONFIG_SERIAL_TAG)) /* buffer suitable for DMA */ @@ -180,13 +182,12 @@ iomux_v3_cfg_t const usb_pads[] = { */ #define UFCR 0x90 /* FIFO Control Register */ #define UFCR_DCEDTE (1<<6) /* DCE=0 */ -#define SET_DCEDTE(p) (writel( (readl((u32 *) (p)) | UFCR_DCEDTE), (u32 *) (p))) static void setup_dtemode_uart(void) { - SET_DCEDTE(UART1_BASE + UFCR); - SET_DCEDTE(UART2_BASE + UFCR); - SET_DCEDTE(UART3_BASE + UFCR); + setbits_le32((u32 *)(UART1_BASE + UFCR), UFCR_DCEDTE); + setbits_le32((u32 *)(UART2_BASE + UFCR), UFCR_DCEDTE); + setbits_le32((u32 *)(UART3_BASE + UFCR), UFCR_DCEDTE); } static void setup_iomux_uart(void) @@ -617,6 +618,7 @@ int board_late_init(void) char env_str[256]; int i; + u32 rev; unsigned size = 0; char *addr_str, *end; @@ -676,15 +678,19 @@ int board_late_init(void) } } #endif /* CONFIG_TRDX_CFG_BLOCK */ + + rev = get_board_rev_local(); + +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG + snprintf(env_str, ARRAY_SIZE(env_str), "%.4x", rev); + setenv("board_rev", env_str); +#endif + return 0; } #endif /* CONFIG_BOARD_LATE_INIT */ -/* i.MX6 uses the 'standard' board revision for things, i.e. - video decoding no longer works. - so don't interfere with the Apalis iMX6 HW Revision */ -#ifdef CONFIG_REVISION_TAG -u32 get_board_rev(void) +u32 get_board_rev_local(void) { #ifdef CONFIG_BOARD_LATE_INIT int i; @@ -716,7 +722,18 @@ u32 get_board_rev(void) return 0; #endif /* CONFIG_BOARD_LATE_INIT */ } + +/* i.MX6 Kernel/Userspace 3.0.35 uses the 'standard' board revision for + things, i.e. video decoding no longer works, + so don't interfere with the Apalis iMX6 HW Revision */ +#if 0 +#ifdef CONFIG_REVISION_TAG +u32 get_board_rev(void) +{ + return get_board_rev_local(); +} #endif /* CONFIG_REVISION_TAG */ +#endif #ifdef CONFIG_SERIAL_TAG void get_board_serial(struct tag_serialnr *serialnr) diff --git a/include/configs/colibri_imx6.h b/include/configs/colibri_imx6.h index a941ed46f3..e25145ec97 100644 --- a/include/configs/colibri_imx6.h +++ b/include/configs/colibri_imx6.h @@ -43,6 +43,7 @@ /* Make the HW version stuff available in u-boot env */ #define CONFIG_VERSION_VARIABLE /* ver environment variable */ +#define CONFIG_ENV_VARS_UBOOT_CONFIG #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG /* I2C Configs */ @@ -190,6 +191,7 @@ "sddtbload=setenv dtbparam; fatload mmc 1:1 ${fdt_addr_r} " \ "${fdt_file} && setenv dtbparam \" - ${fdt_addr_r}\" && true\0" +#define FDT_FILE "imx6dl-colibri-eval-v3.dtb" #define CONFIG_EXTRA_ENV_SETTINGS \ "bootcmd=run emmcboot ; echo ; echo emmcboot failed ; " \ "run nfsboot ; echo ; echo nfsboot failed ; " \ @@ -199,7 +201,7 @@ "console=ttymxc0\0" \ "defargs=enable_wait_mode=off galcore.contiguousSize=50331648\0" \ EMMC_BOOTCMD \ - "fdt_file=imx6dl-colibri-eval-v3.dtb\0" \ + "fdt_file=" FDT_FILE "\0" \ MEM_LAYOUT_ENV_SETTINGS \ NFS_BOOTCMD \ SD_BOOTCMD \ @@ -229,6 +231,7 @@ #define CONFIG_SYS_MAXARGS 32 #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE +#define CONFIG_SYS_ALT_MEMTEST #define CONFIG_CMD_MEMTEST #define CONFIG_SYS_MEMTEST_START 0x10000000 #define CONFIG_SYS_MEMTEST_END 0x10010000 @@ -277,7 +280,6 @@ #define CONFIG_CMD_BMP #define CONFIG_CMD_TIME -#define CONFIG_SYS_ALT_MEMTEST #define CONFIG_CMD_BOOTZ #define CONFIG_SUPPORT_RAW_INITRD -- cgit v1.2.3