#ifndef __CONFIG_H
#define __CONFIG_H
+#ifndef CONFIG_SOC_MX6UL
+#define CONFIG_ARM_ERRATA_743622
+#define CONFIG_ARM_ERRATA_751472
+#define CONFIG_ARM_ERRATA_794072
+#define CONFIG_ARM_ERRATA_761320
+
+#ifndef CONFIG_SYS_L2CACHE_OFF
+#define CONFIG_SYS_L2_PL310
+#define CONFIG_SYS_PL310_BASE L2_PL310_BASE
+#endif
+
+#define CONFIG_SYS_FSL_ESDHC_HAS_DDR_MODE
+#define CONFIG_MP
+#endif
+#define CONFIG_BOARD_POSTCLK_INIT
+#define CONFIG_MXC_GPT_HCLK
+
+#include <linux/kconfig.h>
#include <linux/sizes.h>
#include <asm/arch/imx-regs.h>
-#include "mx6_common.h"
/*
* Ka-Ro TX6 board - SoC configuration
#define CONFIG_BOARD_LATE_INIT
#define CONFIG_BOARD_EARLY_INIT_F
#define CONFIG_SYS_GENERIC_BOARD
+#define CONFIG_CMD_GPIO
#ifndef CONFIG_TX6_UBOOT_MFG
/* LCD Logo and Splash screen support */
-#define CONFIG_LCD
#ifdef CONFIG_LCD
#define CONFIG_SPLASH_SCREEN
#define CONFIG_SPLASH_SCREEN_ALIGN
+#ifndef CONFIG_SOC_MX6UL
#define CONFIG_VIDEO_IPUV3
#define CONFIG_IPUV3_CLK (CONFIG_SYS_SDRAM_CLK * 1000000 / 2)
+#else
+#define CONFIG_VIDEO_MXS
+#define MXS_LCDIF_BASE 0x021c8000UL
+#endif /* CONFIG_SOC_MX6UL */
#define CONFIG_LCD_LOGO
#define LCD_BPP LCD_COLOR32
#define CONFIG_CMD_BMP
+#define CONFIG_BMP_8BPP
+#define CONFIG_BMP_16BPP
+#define CONFIG_BMP_24BPP
+#define CONFIG_BMP_32BPP
#define CONFIG_VIDEO_BMP_RLE8
#endif /* CONFIG_LCD */
#endif /* CONFIG_TX6_UBOOT_MFG */
* Memory configuration options
*/
#define CONFIG_NR_DRAM_BANKS 0x1 /* # of SDRAM banks */
+#ifndef CONFIG_SOC_MX6UL
#define PHYS_SDRAM_1 0x10000000 /* Base address of bank 1 */
-#ifdef CONFIG_SYS_SDRAM_BUS_WIDTH
-#define PHYS_SDRAM_1_WIDTH CONFIG_SYS_SDRAM_BUS_WIDTH
-#elif defined(CONFIG_SYS_SDRAM_BUS_WIDTH_32)
-#define PHYS_SDRAM_1_WIDTH 32
+#define CONFIG_SYS_MPU_CLK 792
+#else
+#define PHYS_SDRAM_1 0x80000000 /* Base address of bank 1 */
+#define CONFIG_SYS_MPU_CLK 528
+#endif
+#ifndef CONFIG_SYS_SDRAM_BUS_WIDTH
+#if defined(CONFIG_SYS_SDRAM_BUS_WIDTH_32)
+#define CONFIG_SYS_SDRAM_BUS_WIDTH 32
#elif defined(CONFIG_SYS_SDRAM_BUS_WIDTH_16)
-#define PHYS_SDRAM_1_WIDTH 16
+#define CONFIG_SYS_SDRAM_BUS_WIDTH 16
+#else
+#define CONFIG_SYS_SDRAM_BUS_WIDTH 64
+#endif
+#endif /* CONFIG_SYS_SDRAM_BUS_WIDTH */
+#ifdef __ASSEMBLY__
+#define _AC(x,s) x
+#else
+#define _AC(x,s) (x##s)
+#endif
+#define UL(x) _AC(x,UL)
+#define PHYS_SDRAM_1_SIZE (UL(CONFIG_SYS_SDRAM_CHIP_SIZE) * SZ_1M \
+ / 32 * CONFIG_SYS_SDRAM_BUS_WIDTH)
+#if PHYS_SDRAM_1_SIZE > SZ_1G
+#define FDT_HIGH_STR "fdt_high=ffffffff\0"
#else
-#define PHYS_SDRAM_1_WIDTH 64
+#define FDT_HIGH_STR ""
#endif
-#define PHYS_SDRAM_1_SIZE (SZ_512M / 32 * PHYS_SDRAM_1_WIDTH)
-#ifdef CONFIG_MX6Q
+
+#ifdef CONFIG_SOC_MX6Q
#define CONFIG_SYS_SDRAM_CLK 528
#else
#define CONFIG_SYS_SDRAM_CLK 400
#endif
#define CONFIG_STACKSIZE SZ_128K
+#define CONFIG_SPL_STACK (IRAM_BASE_ADDR + SZ_16K)
#define CONFIG_SYS_MALLOC_LEN SZ_8M
#define CONFIG_SYS_MEMTEST_START PHYS_SDRAM_1 /* Memtest start address */
#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + SZ_4M)
* U-Boot general configurations
*/
#define CONFIG_SYS_LONGHELP
-#if defined(CONFIG_MX6Q)
-#define CONFIG_SYS_PROMPT "TX6Q U-Boot > "
-#elif defined(CONFIG_MX6DL)
-#define CONFIG_SYS_PROMPT "TX6DL U-Boot > "
-#elif defined(CONFIG_MX6S)
-#define CONFIG_SYS_PROMPT "TX6S U-Boot > "
+#if defined(CONFIG_SOC_MX6Q)
+#elif defined(CONFIG_SOC_MX6DL)
+#elif defined(CONFIG_SOC_MX6S)
+#elif defined(CONFIG_SOC_MX6UL)
#else
#error Unsupported i.MX6 processor variant
#endif
#define CONFIG_SYS_64BIT_VSPRINTF
-/*
- * Flattened Device Tree (FDT) support
-*/
-#ifdef CONFIG_OF_LIBFDT
-#ifdef CONFIG_TX6_NAND
-#endif
-#endif /* CONFIG_OF_LIBFDT */
-
/*
* Boot Linux
*/
#endif
#define CONFIG_ZERO_BOOTDELAY_CHECK
#define CONFIG_SYS_AUTOLOAD "no"
-#ifndef CONFIG_TX6_UBOOT_MFG
+#define DEFAULT_BOOTCMD "run bootcmd_${boot_mode} bootm_cmd"
#define CONFIG_BOOTFILE "uImage"
#define CONFIG_BOOTARGS "init=/linuxrc console=ttymxc0,115200 ro debug panic=1"
-#define CONFIG_BOOTCOMMAND "run bootcmd_${boot_mode} bootm_cmd"
+#ifndef CONFIG_TX6_UBOOT_MFG
+#define CONFIG_BOOTCOMMAND DEFAULT_BOOTCMD
+#else
+#define CONFIG_BOOTCOMMAND "setenv bootcmd '" DEFAULT_BOOTCMD "';" \
+ "env import " xstr(CONFIG_BOOTCMD_MFG_LOADADDR) ";run bootcmd_mfg"
+#if (defined(CONFIG_SOC_MX6SX) || defined(CONFIG_SOC_MX6SL) || defined(CONFIG_SOC_MX6UL))
+#define CONFIG_BOOTCMD_MFG_LOADADDR 80500000
#else
-#define CONFIG_BOOTCOMMAND "env import " xstr(CONFIG_BOOTCMD_MFG_LOADADDR) ";run bootcmd_mfg"
#define CONFIG_BOOTCMD_MFG_LOADADDR 10500000
+#endif
#define CONFIG_DELAY_ENVIRONMENT
#endif /* CONFIG_TX6_UBOOT_MFG */
+#if (defined(CONFIG_SOC_MX6SX) || defined(CONFIG_SOC_MX6SL) || defined(CONFIG_SOC_MX6UL))
+#define CONFIG_LOADADDR 82000000
+#define CONFIG_FDTADDR 81000000
+#else
#define CONFIG_LOADADDR 18000000
#define CONFIG_FDTADDR 11000000
+#endif
#define CONFIG_SYS_LOAD_ADDR _pfx(0x, CONFIG_LOADADDR)
#define CONFIG_SYS_FDT_ADDR _pfx(0x, CONFIG_FDTADDR)
#ifndef CONFIG_SYS_LVDS_IF
/*
* Extra Environments
*/
-#ifndef CONFIG_TX6_UBOOT_MFG
-#ifdef CONFIG_ENV_IS_NOWHERE
+#ifdef CONFIG_TX6_UBOOT_NOENV
#define CONFIG_EXTRA_ENV_SETTINGS \
"autostart=no\0" \
"autoload=no\0" \
+ "baseboard=stk5-v3\0" \
"bootdelay=-1\0" \
"fdtaddr=" xstr(CONFIG_FDTADDR) "\0" \
"mtdids=" MTDIDS_DEFAULT "\0" \
"mtdparts=" MTDPARTS_DEFAULT "\0"
#else
+#define CONFIG_SYS_CPU_CLK_STR xstr(CONFIG_SYS_MPU_CLK)
+
#define CONFIG_EXTRA_ENV_SETTINGS \
"autostart=no\0" \
"baseboard=stk5-v3\0" \
- "bootargs_jffs2=run default_bootargs;set bootargs ${bootargs}" \
+ "bootargs_jffs2=run default_bootargs" \
+ ";setenv bootargs ${bootargs}" \
" root=/dev/mtdblock3 rootfstype=jffs2\0" \
- "bootargs_mmc=run default_bootargs;set bootargs ${bootargs}" \
+ "bootargs_mmc=run default_bootargs;setenv bootargs ${bootargs}" \
MMC_ROOT_STR \
- "bootargs_nfs=run default_bootargs;set bootargs ${bootargs}" \
+ "bootargs_nfs=run default_bootargs;setenv bootargs ${bootargs}" \
" root=/dev/nfs nfsroot=${nfs_server}:${nfsroot},nolock" \
" ip=dhcp\0" \
- "bootargs_ubifs=run default_bootargs;set bootargs ${bootargs}" \
+ "bootargs_ubifs=run default_bootargs" \
+ ";setenv bootargs ${bootargs}" \
" ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs\0" \
- "bootcmd_jffs2=set autostart no;run bootargs_jffs2" \
+ "bootcmd_jffs2=setenv autostart no;run bootargs_jffs2" \
";nboot linux\0" \
- "bootcmd_mmc=set autostart no;run bootargs_mmc" \
+ "bootcmd_mmc=setenv autostart no;run bootargs_mmc" \
";fatload mmc 0 ${loadaddr} uImage\0" \
CONFIG_SYS_BOOT_CMD_NAND \
- "bootcmd_net=set autoload y;set autostart n;run bootargs_nfs" \
+ "bootcmd_net=setenv autoload y;setenv autostart n" \
+ ";run bootargs_nfs" \
";dhcp\0" \
"bootm_cmd=bootm ${loadaddr} - ${fdtaddr}\0" \
"boot_mode=" CONFIG_SYS_DEFAULT_BOOT_MODE "\0" \
- "cpu_clk=800\0" \
- "default_bootargs=set bootargs " CONFIG_BOOTARGS \
+ "cpu_clk=" CONFIG_SYS_CPU_CLK_STR "\0" \
+ "default_bootargs=setenv bootargs " CONFIG_BOOTARGS \
" ${append_bootargs}\0" \
+ EMMC_BOOT_PART_STR \
+ EMMC_BOOT_ACK_STR \
"fdtaddr=" xstr(CONFIG_FDTADDR) "\0" \
- CONFIG_SYS_FDTSAVE_CMD \
+ FDT_HIGH_STR \
+ FDTSAVE_CMD_STR \
"mtdids=" MTDIDS_DEFAULT "\0" \
"mtdparts=" MTDPARTS_DEFAULT "\0" \
"nfsroot=/tftpboot/rootfs\0" \
"touchpanel=tsc2007\0" \
"video_mode=" DEFAULT_VIDEO_MODE "\0"
#endif /* CONFIG_ENV_IS_NOWHERE */
-#endif /* CONFIG_TX6_UBOOT_MFG */
#ifdef CONFIG_TX6_NAND
-#define CONFIG_SYS_DEFAULT_BOOT_MODE "nand"
+#define CONFIG_SYS_DEFAULT_BOOT_MODE "nand"
#define CONFIG_SYS_BOOT_CMD_NAND \
- "bootcmd_nand=set autostart no;run bootargs_ubifs;nboot linux\0"
-#define CONFIG_SYS_FDTSAVE_CMD \
+ "bootcmd_nand=setenv autostart no;run bootargs_ubifs;nboot linux\0"
+#define FDTSAVE_CMD_STR \
"fdtsave=fdt resize;nand erase.part dtb" \
";nand write ${fdtaddr} dtb ${fdtsize}\0"
#define MTD_NAME "gpmi-nand"
#define MTDIDS_DEFAULT "nand0=" MTD_NAME
#define CONFIG_SYS_NAND_ONFI_DETECTION
#define MMC_ROOT_STR " root=/dev/mmcblk0p2 rootwait\0"
-#define ROOTPART_UUID_STR ""
+#define ROOTPART_UUID_STR ""
+#define EMMC_BOOT_ACK_STR ""
+#define EMMC_BOOT_PART_STR ""
#else
-#define CONFIG_SYS_DEFAULT_BOOT_MODE "mmc"
-#define CONFIG_SYS_BOOT_CMD_NAND ""
-#define CONFIG_SYS_FDTSAVE_CMD \
- "fdtsave=mmc open 0 1;mmc write ${fdtaddr} " \
- xstr(CONFIG_SYS_DTB_BLKNO) " 80;mmc close 0 1\0"
-#define MMC_ROOT_STR " root=PARTUUID=${rootpart_uuid} rootwait\0"
-#define ROOTPART_UUID_STR "rootpart_uuid=0cc66cc0-02\0"
+#define CONFIG_SYS_DEFAULT_BOOT_MODE "mmc"
+#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1
+#define CONFIG_SYS_BOOT_CMD_NAND ""
+#define FDTSAVE_CMD_STR \
+ "fdtsave=mmc partconf 0 ${emmc_boot_ack} ${emmc_boot_part} ${emmc_boot_part}" \
+ ";mmc write ${fdtaddr} " xstr(CONFIG_SYS_DTB_BLKNO) " 80" \
+ ";mmc partconf 0 ${emmc_boot_ack} ${emmc_boot_part} 0\0"
#define MTD_NAME ""
#define MTDIDS_DEFAULT ""
-#ifdef CONFIG_SUPPORT_EMMC_BOOT
-#endif
+#define MMC_ROOT_STR " root=PARTUUID=${rootpart_uuid} rootwait\0"
+#define ROOTPART_UUID_STR "rootpart_uuid=0cc66cc0-02\0"
+#define EMMC_BOOT_ACK_STR "emmc_boot_ack=1\0"
+#define EMMC_BOOT_PART_STR "emmc_boot_part=" \
+ xstr(CONFIG_SYS_MMCSD_FS_BOOT_PARTITION) "\0"
#endif /* CONFIG_TX6_NAND */
-/*
- * U-Boot Commands
- */
-#include <config_cmd_default.h>
-
/*
* Serial Driver
*/
#define CONFIG_BAUDRATE 115200 /* Default baud rate */
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200, }
#define CONFIG_SYS_CONSOLE_INFO_QUIET
+#define CONFIG_CONS_INDEX 1
/*
* GPIO driver
/* This is required for the FEC driver to work with cache enabled */
#define CONFIG_SYS_ARM_CACHE_WRITETHROUGH
+#ifndef CONFIG_SOC_MX6UL
+#define CONFIG_FEC_MXC_PHYADDR 0
#define IMX_FEC_BASE ENET_BASE_ADDR
+#else
+#define FEC_MDIO_BASE_ADDR ENET_BASE_ADDR
+#endif
#define CONFIG_FEC_XCV_TYPE RMII
#endif
/*
* I2C Configs
*/
-#ifdef CONFIG_SYS_I2C
+#ifdef CONFIG_HARD_I2C
#define CONFIG_SYS_I2C_BASE I2C1_BASE_ADDR
#define CONFIG_SYS_I2C_SPEED 400000
+#endif /* CONFIG_HARD_I2C */
#if defined(CONFIG_TX6_REV)
#if CONFIG_TX6_REV == 0x1
-#define CONFIG_SYS_I2C_SLAVE 0x3c
#define CONFIG_LTC3676
#elif CONFIG_TX6_REV == 0x2
-#define CONFIG_SYS_I2C_SLAVE 0x32
#define CONFIG_RN5T618
#elif CONFIG_TX6_REV == 0x3
-#define CONFIG_SYS_I2C_SLAVE 0x33
#define CONFIG_RN5T567
#else
#error Unsupported TX6 module revision
#endif
-#endif /* CONFIG_TX6_REV */
+#else /* CONFIG_TX6_REV */
/* autodetect which PMIC is present to derive TX6_REV */
+#ifdef CONFIG_SOC_MX6UL
+#define CONFIG_SYS_I2C
+#define CONFIG_SYS_I2C_SOFT
+#define CONFIG_SYS_I2C_SOFT_SPEED 400000
+#define CONFIG_SOFT_I2C_GPIO_SCL IMX_GPIO_NR(5, 0)
+#define CONFIG_SOFT_I2C_GPIO_SDA IMX_GPIO_NR(5, 1)
+#define CONFIG_SOFT_I2C_READ_REPEATED_START
+#else
#define CONFIG_LTC3676 /* TX6_REV == 1 */
+#endif
#define CONFIG_RN5T567 /* TX6_REV == 3 */
-#endif /* CONFIG_CMD_I2C */
+#endif /* CONFIG_TX6_REV */
#define CONFIG_ENV_OVERWRITE
#define CONFIG_ENV_OFFSET (CONFIG_U_BOOT_IMG_SIZE + CONFIG_SYS_NAND_U_BOOT_OFFS)
#define CONFIG_ENV_SIZE SZ_128K
#define CONFIG_ENV_RANGE (3 * CONFIG_SYS_NAND_BLOCK_SIZE)
-#else
-#undef CONFIG_ENV_IS_IN_NAND
#endif /* CONFIG_TX6_NAND */
#ifdef CONFIG_ENV_OFFSET_REDUND
#define CONFIG_SYS_FSL_ESDHC_ADDR 0
#endif
#ifdef CONFIG_CMD_MMC
-#define CONFIG_DOS_PARTITION
#define CONFIG_CMD_FAT
#define CONFIG_FAT_WRITE
#define CONFIG_CMD_EXT2
#define CONFIG_SYS_MMC_ENV_PART 0x1
#define CONFIG_DYNAMIC_MMC_DEVNO
#endif /* CONFIG_ENV_IS_IN_MMC */
-#else
-#undef CONFIG_ENV_IS_IN_MMC
#endif /* CONFIG_CMD_MMC */
-#ifdef CONFIG_ENV_IS_NOWHERE
-#undef CONFIG_ENV_SIZE
-#define CONFIG_ENV_SIZE SZ_4K
-#endif
-
#ifdef CONFIG_TX6_NAND
#define MTDPARTS_DEFAULT "mtdparts=" MTD_NAME ":" \
xstr(CONFIG_SYS_U_BOOT_PART_SIZE) \