Skip to contentSkip to conversation

Prepare for TI816X : reuse existing code from TI814X

PATCH Superseded TENART Antoine 3 participants 9 messages Jun 19, 2013 – Jun 26, 2013 1 message not in the archive

Subsystems (2)

v4 of 6 Superseded Latest is v6 →

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

PATCH v4 1/3 Prepare for TI816X : reuse existing code from TI814X

Rename some CONFIG_TI814X to a more generic CONFIG_81XX

---
 Makefile                                |    2 +-
 arch/arm/cpu/armv7/Makefile             |    2 +-
 arch/arm/cpu/armv7/omap-common/Makefile |    2 +-
 arch/arm/include/asm/arch-am33xx/cpu.h  |    2 +-
 arch/arm/include/asm/arch-am33xx/omap.h |    2 +-
 drivers/serial/ns16550.c                |    4 ++--
 spl/Makefile                            |    2 +-
 7 files changed, 8 insertions(+), 8 deletions(-)
Makefile +1 -1
index 693b3f2..248b1f4 100644
@@ -337,7 +337,7 @@ LIBS-y += api/libapi.o
 LIBS-y += post/libpost.o
 LIBS-y += test/libtest.o
 
-ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TI814X),)
+ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TI81XX),)
 LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
 endif
 
arch/arm/cpu/armv7/Makefile +1 -1
index 7a8c2d0..415ace8 100644
@@ -32,7 +32,7 @@ COBJS	+= cache_v7.o
 COBJS	+= cpu.o
 COBJS	+= syslib.o
 
-ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TEGRA)$(CONFIG_MX6)$(CONFIG_TI814X),)
+ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TEGRA)$(CONFIG_MX6)$(CONFIG_TI81XX),)
 SOBJS	+= lowlevel_init.o
 endif
 
arch/arm/cpu/armv7/omap-common/Makefile +1 -1
index c4b9809..20586d3 100644
@@ -37,7 +37,7 @@ COBJS	+= vc.o
 COBJS	+= abb.o
 endif
 
-ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TI814X),)
+ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TI81XX),)
 COBJS	+= boot-common.o
 SOBJS	+= lowlevel_init.o
 endif
arch/arm/include/asm/arch-am33xx/cpu.h +1 -1
index 3d3a7c8..13c0667 100644
@@ -54,7 +54,7 @@
 /* Reset control */
 #ifdef CONFIG_AM33XX
 #define PRM_RSTCTRL			(PRCM_BASE + 0x0F00)
-#elif defined(CONFIG_TI814X)
+#elif defined(CONFIG_TI81XX)
 #define PRM_RSTCTRL			(PRCM_BASE + 0x00A0)
 #endif
 #define PRM_RSTST			(PRM_RSTCTRL + 8)
arch/arm/include/asm/arch-am33xx/omap.h +1 -1
index e7576c1..777a456 100644
@@ -32,7 +32,7 @@
 #define NON_SECURE_SRAM_START	0x402F0400
 #define NON_SECURE_SRAM_END	0x40310000
 #define SRAM_SCRATCH_SPACE_ADDR	0x4030C000
-#elif defined(CONFIG_TI814X)
+#elif defined(CONFIG_TI81XX)
 #define NON_SECURE_SRAM_START	0x40300000
 #define NON_SECURE_SRAM_END	0x40320000
 #define SRAM_SCRATCH_SPACE_ADDR	0x4031B800
drivers/serial/ns16550.c +2 -2
index d77c25f..d659eb0 100644
@@ -57,7 +57,7 @@ void NS16550_init(NS16550_t com_port, int baud_divisor)
 
 	serial_out(CONFIG_SYS_NS16550_IER, &com_port->ier);
 #if (defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)) || \
-			defined(CONFIG_AM33XX) || defined(CONFIG_TI814X)
+			defined(CONFIG_AM33XX) || defined(CONFIG_TI81XX)
 	serial_out(0x7, &com_port->mdr1);	/* mode select reset TL16C750*/
 #endif
 	serial_out(UART_LCR_BKSE | UART_LCRVAL, &com_port->lcr);
@@ -72,7 +72,7 @@ void NS16550_init(NS16550_t com_port, int baud_divisor)
 	serial_out(UART_LCRVAL, &com_port->lcr);
 #if (defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)) || \
 	defined(CONFIG_AM33XX) || defined(CONFIG_SOC_DA8XX) || \
-	defined(CONFIG_TI814X)
+	defined(CONFIG_TI81XX)
 
 	/* /16 is proper to hit 115200 with 48MHz */
 	serial_out(0, &com_port->mdr1);
spl/Makefile +1 -1
index d8fe948..3ea8ce0 100644
@@ -84,7 +84,7 @@ LIBS-$(CONFIG_SPL_ETH_SUPPORT) += drivers/net/phy/libphy.o
 LIBS-$(CONFIG_SPL_MUSB_NEW_SUPPORT) += drivers/usb/musb-new/libusb_musb-new.o
 LIBS-$(CONFIG_SPL_USBETH_SUPPORT) += drivers/usb/gadget/libusb_gadget.o
 
-ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TI814X),)
+ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX)$(CONFIG_TI81XX),)
 LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
 endif
 
Signature · 1 line
1.7.10.4
#2 lore raw

PATCH v4 1/3 Prepare for TI816X : reuse existing code from TI814X

Quoted 3 lines · TENART Antoine

Rename some CONFIG_TI814X to a more generic CONFIG_81XX

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130625/c5d6bdf0/attachment.pgp>
#3 lore raw

PATCH v4 2/3 Add TI816X support

In reply to a message not in the archive
---
 arch/arm/cpu/armv7/am33xx/Makefile                 |    1 +
 arch/arm/cpu/armv7/am33xx/clock_ti814x.c           |   95 ----
 arch/arm/cpu/armv7/am33xx/clock_ti816x.c           |  529 ++++++++++++++++++++
 arch/arm/cpu/armv7/am33xx/emif4.c                  |    2 +
 arch/arm/include/asm/arch-am33xx/clock.h           |    4 +
 arch/arm/include/asm/arch-am33xx/clock_ti81xx.h    |  142 ++++++
 arch/arm/include/asm/arch-am33xx/ddr_defs.h        |   35 +-
 arch/arm/include/asm/arch-am33xx/hardware.h        |    7 +-
 arch/arm/include/asm/arch-am33xx/hardware_am33xx.h |    5 +
 arch/arm/include/asm/arch-am33xx/hardware_ti814x.h |    5 +
 arch/arm/include/asm/arch-am33xx/hardware_ti816x.h |   57 +++
 arch/arm/include/asm/arch-am33xx/mmc_host_def.h    |    3 +
 arch/arm/include/asm/arch-am33xx/mux.h             |    2 +
 arch/arm/include/asm/arch-am33xx/mux_ti816x.h      |  363 ++++++++++++++
 arch/arm/include/asm/arch-am33xx/spl.h             |   11 +-
 15 files changed, 1147 insertions(+), 114 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/am33xx/clock_ti816x.c
 create mode 100644 arch/arm/include/asm/arch-am33xx/clock_ti81xx.h
 create mode 100644 arch/arm/include/asm/arch-am33xx/hardware_ti816x.h
 create mode 100644 arch/arm/include/asm/arch-am33xx/mux_ti816x.h
arch/arm/cpu/armv7/am33xx/Makefile +1 -0
index c97e30d..703d7a2 100644
@@ -18,6 +18,7 @@ LIB	= $(obj)lib$(SOC).o
 
 COBJS-$(CONFIG_AM33XX)	+= clock_am33xx.o
 COBJS-$(CONFIG_TI814X)	+= clock_ti814x.o
+COBJS-$(CONFIG_TI816X)	+= clock_ti816x.o
 COBJS	+= sys_info.o
 COBJS	+= mem.o
 COBJS	+= ddr.o
arch/arm/cpu/armv7/am33xx/clock_ti814x.c +0 -95

103 lines not on this page · raw message

arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +529 -0

529 lines not on this page · raw message

arch/arm/cpu/armv7/am33xx/emif4.c +2 -0
index aa84e96..151fdf6 100644
@@ -89,7 +89,9 @@ void config_ddr(unsigned int pll, unsigned int ioctrl,
 {
 	enable_emif_clocks();
 	ddr_pll_config(pll);
+#ifndef CONFIG_TI816X
 	config_vtp(nr);
+#endif
 	config_cmd_ctrl(ctrl, nr);
 
 	config_ddr_data(data, nr);
arch/arm/include/asm/arch-am33xx/clock.h +4 -0
index ecb5901..5a96200 100644
@@ -21,4 +21,8 @@
 
 #include <asm/arch/clocks_am33xx.h>
 
+#ifdef CONFIG_TI81XX
+#include <asm/arch/clock_ti81xx.h>
+#endif
+
 #endif
arch/arm/include/asm/arch-am33xx/clock_ti81xx.h new file +142 -0

142 lines not on this page · raw message

arch/arm/include/asm/arch-am33xx/ddr_defs.h +22 -13
index bb53a6a..374edbf 100644
@@ -200,37 +200,46 @@ struct ddr_data_regs {
  * correspond to DATA1 registers defined here.
  */
 struct ddr_regs {
-	unsigned int resv0[7];
-	unsigned int cm0csratio;	/* offset 0x01C */
+	unsigned int resv0[3];
+	unsigned int cm0config;		/* offset 0x00C */
+	unsigned int cm0configclk;	/* offset 0x010 */
 	unsigned int resv1[2];
+	unsigned int cm0csratio;	/* offset 0x01C */
+	unsigned int resv2[2];
 	unsigned int cm0dldiff;		/* offset 0x028 */
 	unsigned int cm0iclkout;	/* offset 0x02C */
-	unsigned int resv2[8];
+	unsigned int resv3[4];
+	unsigned int cm1config;		/* offset 0x040 */
+	unsigned int cm1configclk;	/* offset 0x044 */
+	unsigned int resv4[2];
 	unsigned int cm1csratio;	/* offset 0x050 */
-	unsigned int resv3[2];
+	unsigned int resv5[2];
 	unsigned int cm1dldiff;		/* offset 0x05C */
 	unsigned int cm1iclkout;	/* offset 0x060 */
-	unsigned int resv4[8];
+	unsigned int resv6[4];
+	unsigned int cm2config;		/* offset 0x074 */
+	unsigned int cm2configclk;	/* offset 0x078 */
+	unsigned int resv7[2];
 	unsigned int cm2csratio;	/* offset 0x084 */
-	unsigned int resv5[2];
+	unsigned int resv8[2];
 	unsigned int cm2dldiff;		/* offset 0x090 */
 	unsigned int cm2iclkout;	/* offset 0x094 */
-	unsigned int resv6[12];
+	unsigned int resv9[12];
 	unsigned int dt0rdsratio0;	/* offset 0x0C8 */
-	unsigned int resv7[4];
+	unsigned int resv10[4];
 	unsigned int dt0wdsratio0;	/* offset 0x0DC */
-	unsigned int resv8[4];
+	unsigned int resv11[4];
 	unsigned int dt0wiratio0;	/* offset 0x0F0 */
-	unsigned int resv9;
+	unsigned int resv12;
 	unsigned int dt0wimode0;	/* offset 0x0F8 */
 	unsigned int dt0giratio0;	/* offset 0x0FC */
-	unsigned int resv10;
+	unsigned int resv13;
 	unsigned int dt0gimode0;	/* offset 0x104 */
 	unsigned int dt0fwsratio0;	/* offset 0x108 */
-	unsigned int resv11[4];
+	unsigned int resv14[4];
 	unsigned int dt0dqoffset;	/* offset 0x11C */
 	unsigned int dt0wrsratio0;	/* offset 0x120 */
-	unsigned int resv12[4];
+	unsigned int resv15[4];
 	unsigned int dt0rdelays0;	/* offset 0x134 */
 	unsigned int dt0dldiff0;	/* offset 0x138 */
 };
arch/arm/include/asm/arch-am33xx/hardware.h +2 -5
index 5a27f9c..7f3b555 100644
@@ -23,6 +23,8 @@
 #include <asm/arch/omap.h>
 #ifdef CONFIG_AM33XX
 #include <asm/arch/hardware_am33xx.h>
+#elif defined(CONFIG_TI816X)
+#include <asm/arch/hardware_ti816x.h>
 #elif defined(CONFIG_TI814X)
 #include <asm/arch/hardware_ti814x.h>
 #endif
@@ -67,15 +69,10 @@
 /* DDR Base address */
 #define DDR_CTRL_ADDR			0x44E10E04
 #define DDR_CONTROL_BASE_ADDR		0x44E11404
-#define DDR_PHY_CMD_ADDR2		0x47C0C800
-#define DDR_PHY_DATA_ADDR2		0x47C0C8C8
 
 /* UART */
 #define DEFAULT_UART_BASE		UART0_BASE
 
-#define DDRPHY_0_CONFIG_BASE		(CTRL_BASE + 0x1400)
-#define DDRPHY_CONFIG_BASE		DDRPHY_0_CONFIG_BASE
-
 /* GPMC Base address */
 #define GPMC_BASE			0x50000000
 
arch/arm/include/asm/arch-am33xx/hardware_am33xx.h +5 -0
index fa02f19..553c3bd 100644
@@ -43,8 +43,13 @@
 /* DDR Base address */
 #define DDR_PHY_CMD_ADDR		0x44E12000
 #define DDR_PHY_DATA_ADDR		0x44E120C8
+#define DDR_PHY_CMD_ADDR2		0x47C0C800
+#define DDR_PHY_DATA_ADDR2		0x47C0C8C8
 #define DDR_DATA_REGS_NR		2
 
+#define DDRPHY_0_CONFIG_BASE		(CTRL_BASE + 0x1400)
+#define DDRPHY_CONFIG_BASE		DDRPHY_0_CONFIG_BASE
+
 /* CPSW Config space */
 #define CPSW_MDIO_BASE			0x4A101000
 
arch/arm/include/asm/arch-am33xx/hardware_ti814x.h +5 -0
index 8f9315c..e6cd3a3 100644
@@ -43,8 +43,13 @@
 /* DDR Base address */
 #define DDR_PHY_CMD_ADDR		0x47C0C400
 #define DDR_PHY_DATA_ADDR		0x47C0C4C8
+#define DDR_PHY_CMD_ADDR2		0x47C0C800
+#define DDR_PHY_DATA_ADDR2		0x47C0C8C8
 #define DDR_DATA_REGS_NR		4
 
+#define DDRPHY_0_CONFIG_BASE		(CTRL_BASE + 0x1400)
+#define DDRPHY_CONFIG_BASE		DDRPHY_0_CONFIG_BASE
+
 /* CPSW Config space */
 #define CPSW_MDIO_BASE			0x4A100800
 
arch/arm/include/asm/arch-am33xx/hardware_ti816x.h new file +57 -0

57 lines not on this page · raw message

arch/arm/include/asm/arch-am33xx/mmc_host_def.h +3 -0
index 51ba791..724e252 100644
@@ -27,6 +27,9 @@
 #if defined(CONFIG_TI814X)
 #undef MMC_CLOCK_REFERENCE
 #define MMC_CLOCK_REFERENCE	192 /* MHz */
+#elif defined(CONFIG_TI816X)
+#undef MMC_CLOCK_REFERENCE
+#define MMC_CLOCK_REFERENCE	48 /* MHz */
 #endif
 
 #endif /* MMC_HOST_DEF_H */
arch/arm/include/asm/arch-am33xx/mux.h +2 -0
index 1c6b65f..4caa4d8 100644
@@ -23,6 +23,8 @@
 #include <asm/arch/mux_am33xx.h>
 #elif defined(CONFIG_TI814X)
 #include <asm/arch/mux_ti814x.h>
+#elif defined(CONFIG_TI816X)
+#include <asm/arch/mux_ti816x.h>
 #endif
 
 struct module_pin_mux {
arch/arm/include/asm/arch-am33xx/mux_ti816x.h new file +363 -0

363 lines not on this page · raw message

arch/arm/include/asm/arch-am33xx/spl.h +10 -1
index 4c23b27..6d7e8d6 100644
@@ -23,6 +23,14 @@
 #ifndef	_ASM_ARCH_SPL_H_
 #define	_ASM_SPL_H_
 
+#if defined(CONFIG_TI816X)
+#define BOOT_DEVICE_XIP		2
+#define BOOT_DEVICE_NAND	3
+#define BOOT_DEVICE_MMC1	6
+#define BOOT_DEVICE_MMC2	5
+#define BOOT_DEVICE_UART	0x43
+#define BOOT_DEVICE_MMC2_2	0xFF
+#else
 #define BOOT_DEVICE_XIP       	2
 #define BOOT_DEVICE_NAND	5
 #ifdef CONFIG_AM33XX
@@ -37,11 +45,12 @@
 #define BOOT_DEVICE_USBETH	68
 #define BOOT_DEVICE_CPGMAC	70
 #define BOOT_DEVICE_MMC2_2      0xFF
+#endif
 
 #ifdef CONFIG_AM33XX
 #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC1
 #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC2
-#elif defined(CONFIG_TI814X)
+#elif defined(CONFIG_TI81XX)
 #define MMC_BOOT_DEVICES_START	BOOT_DEVICE_MMC2
 #define MMC_BOOT_DEVICES_END	BOOT_DEVICE_MMC1
 #endif
Signature · 1 line
1.7.10.4
#4 lore raw

PATCH v4 2/3 Add TI816X support

On Wed, Jun 19, 2013 at 12:08:20PM +0200, TENART Antoine wrote:

[snip]

Quoted 9 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +9 -0
+/* WDT related */
+#define WDT_WDSC		(WDT_BASE + 0x010)
+#define WDT_WDST		(WDT_BASE + 0x014)
+#define WDT_WISR		(WDT_BASE + 0x018)
+#define WDT_WIER		(WDT_BASE + 0x01C)
+#define WDT_WWER		(WDT_BASE + 0x020)
+#define WDT_WCLR		(WDT_BASE + 0x024)
+#define WDT_WCRR		(WDT_BASE + 0x028)
+#define WDT_WLDR		(WDT_BASE + 0x02C)

arch/arm/cpu/armv7/am33xx/clock_ti816x.c line 150

Quoted 10 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +10 -0
+#define WDT_WTGR		(WDT_BASE + 0x030)
+#define WDT_WWPS		(WDT_BASE + 0x034)
+#define WDT_WDLY		(WDT_BASE + 0x044)
+#define WDT_WSPR		(WDT_BASE + 0x048)
+#define WDT_WIRQEOI		(WDT_BASE + 0x050)
+#define WDT_WIRQSTATRAW		(WDT_BASE + 0x054)
+#define WDT_WIRQSTAT		(WDT_BASE + 0x058)
+#define WDT_WIRQENSET		(WDT_BASE + 0x05C)
+#define WDT_WIRQENCLR		(WDT_BASE + 0x060)
+#define WDT_UNFREEZE		(CTRL_BASE + 0x100)

This should be using a struct like the other platforms do for wdt.

[snip]

arch/arm/cpu/armv7/am33xx/clock_ti816x.c line 213

Quoted 2 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +2 -0
+/* needed by config_dmm() */
+void enable_dmm_clocks(void) {}

#ifndef the caller?

arch/arm/cpu/armv7/am33xx/clock_ti816x.c line 237

Quoted 3 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +3 -0
+void ddr_pll_config(unsigned int pll)
+{
+	writel(0x5, &(ddr_reg[pll])->cm0config);

Magic value (0x5).

[snip]

arch/arm/cpu/armv7/am33xx/clock_ti816x.c line 281

Quoted 2 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +2 -0
+	main_pll_ctrl &= 0xFFFFFFFB;
+	main_pll_ctrl |= 4;

More magic.

[snip]

Quoted 1 line

+static void peripheral_enable(void)

Lots more magic values in here.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130625/221b12ad/attachment.pgp>
#5 lore raw

PATCH v4 2/3 Add TI816X support

Quoted 14 lines

[snip]

Quoted 13 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +13 -0
+/* WDT related */
+#define WDT_WDSC		(WDT_BASE + 0x010)
+#define WDT_WDST		(WDT_BASE + 0x014)
+#define WDT_WISR		(WDT_BASE + 0x018)
+#define WDT_WIER		(WDT_BASE + 0x01C)
+#define WDT_WWER		(WDT_BASE + 0x020)
+#define WDT_WCLR		(WDT_BASE + 0x024)
+#define WDT_WCRR		(WDT_BASE + 0x028)
+#define WDT_WLDR		(WDT_BASE + 0x02C)
+#define WDT_WTGR		(WDT_BASE + 0x030)
+#define WDT_WWPS		(WDT_BASE + 0x034)
+#define WDT_WDLY		(WDT_BASE + 0x044)
+#define WDT_WSPR		(WDT_BASE + 0x048)
Quoted 8 lines

arch/arm/cpu/armv7/am33xx/clock_ti816x.c line 150

Quoted 6 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +6 -0
+#define WDT_WIRQEOI		(WDT_BASE + 0x050)
+#define WDT_WIRQSTATRAW		(WDT_BASE + 0x054)
+#define WDT_WIRQSTAT		(WDT_BASE + 0x058)
+#define WDT_WIRQENSET		(WDT_BASE + 0x05C)
+#define WDT_WIRQENCLR		(WDT_BASE + 0x060)
+#define WDT_UNFREEZE		(CTRL_BASE + 0x100)

This should be using a struct like the other platforms do for wdt.

I'll do that and use the wd_timer structure.

Quoted 7 lines

[snip]

arch/arm/cpu/armv7/am33xx/clock_ti816x.c line 213

Quoted 2 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +2 -0
+/* needed by config_dmm() */
+void enable_dmm_clocks(void) {}

#ifndef the caller?

Yes.

Quoted 5 lines

arch/arm/cpu/armv7/am33xx/clock_ti816x.c

Quoted 3 lines
arch/arm/cpu/armv7/am33xx/clock_ti816x.c new file +3 -0
+void ddr_pll_config(unsigned int pll)
+{
+	writel(0x5,&(ddr_reg[pll])->cm0config);

Magic value (0x5).

I'll fix it.

Quoted 6 lines

[snip]

Review

Quoted 2 lines
(quoted diff) +2 -0
+	main_pll_ctrl&= 0xFFFFFFFB;
+	main_pll_ctrl |= 4;

More magic.

This one is already explained in the beginning of the function. I'll put a per instruction comment instead.

Quoted 6 lines

[snip]

Quoted 1 line

+static void peripheral_enable(void)

Lots more magic values in here.

I'll remove the magic.

Signature · 1 line
Antoine
#6 lore raw

PATCH v4 3/3 Add TI816X evm board support

In reply to a message not in the archive
---
 MAINTAINERS                  |    4 +
 board/ti/ti816x/Makefile     |   47 ++++++++
 board/ti/ti816x/evm.c        |  249 ++++++++++++++++++++++++++++++++++++++++++
 boards.cfg                   |    1 +
 include/configs/ti816x_evm.h |  188 +++++++++++++++++++++++++++++++
 5 files changed, 489 insertions(+)
 create mode 100644 board/ti/ti816x/Makefile
 create mode 100644 board/ti/ti816x/evm.c
 create mode 100644 include/configs/ti816x_evm.h
MAINTAINERS +4 -0
index 7820375..38ff5c3 100644
@@ -940,6 +940,10 @@ Lucas Stach <[email protected]>
 
 	colibri_t20_iris	Tegra20 (ARM7 & A9 Dual Core)
 
+Antoine Tenart <[email protected]>
+
+	TI816X		ARM ARMV7 (TI816x Soc)
+
 Nick Thompson <[email protected]>
 
 	da830evm	ARM926EJS (DA830/OMAP-L137)
board/ti/ti816x/Makefile new file +47 -0

47 lines not on this page · raw message

board/ti/ti816x/evm.c new file +249 -0

249 lines not on this page · raw message

boards.cfg +1 -0
index 1e598cb..95e19a1 100644
@@ -250,6 +250,7 @@ am335x_evm_uart4             arm         armv7       am335x              ti
 am335x_evm_uart5             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL6,CONS_INDEX=6
 am335x_evm_usbspl            arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1,SPL_USBETH_SUPPORT
 ti814x_evm                   arm         armv7       ti814x              ti             am33xx
+ti816x_evm                   arm         armv7       ti816x              ti             am33xx
 pcm051                       arm         armv7       pcm051              phytec         am33xx      pcm051
 sama5d3xek_mmc               arm         armv7       sama5d3xek          atmel          at91        sama5d3xek:SAMA5D3,SYS_USE_MMC
 sama5d3xek_nandflash         arm         armv7       sama5d3xek          atmel          at91        sama5d3xek:SAMA5D3,SYS_USE_NANDFLASH
include/configs/ti816x_evm.h new file +188 -0

188 lines not on this page · raw message

Signature · 1 line
1.7.10.4
#7 lore raw

PATCH v4 3/3 Add TI816X evm board support

Quoted 1 line · TENART Antoine

[snip]

include/configs/ti816x_evm.h line 42

Quoted 2 lines
include/configs/ti816x_evm.h new file +2 -0
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"verify=yes\0"

Do we really want that?

[snip]

include/configs/ti816x_evm.h line 67

Quoted 7 lines
include/configs/ti816x_evm.h new file +7 -0
+/*
+ * Memtest works on 8 MB in DRAM after skipping 32MB
+ * from start addr of ram disk
+ */
+#define CONFIG_SYS_MEMTEST_START	(PHYS_DRAM_1 + (64*1024*1024))
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START \
+		+ (8*1024*1024))

mtest isn't on by default anymore, see doc/README.memory-test

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20130625/c3f8585f/attachment.pgp>
#8 lore raw

PATCH v4 3/3 Add TI816X evm board support

Quoted 4 lines

include/configs/ti816x_evm.h line 42

Quoted 2 lines
include/configs/ti816x_evm.h new file +2 -0
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"verify=yes\0"

Do we really want that?

I don't think so. This will be removed.

Quoted 9 lines

include/configs/ti816x_evm.h line 67

Quoted 7 lines
include/configs/ti816x_evm.h new file +7 -0
+/*
+ * Memtest works on 8 MB in DRAM after skipping 32MB
+ * from start addr of ram disk
+ */
+#define CONFIG_SYS_MEMTEST_START	(PHYS_DRAM_1 + (64*1024*1024))
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START \
+		+ (8*1024*1024))

mtest isn't on by default anymore, see doc/README.memory-test

I'll remove that too.

Signature · 1 line
Antoine
#9 lore raw

PATCH v4 3/3 Add TI816X evm board support

In reply to TENART Antoine

Hi Antoine,

Quoted 317 lines · TENART Antoine
---
  MAINTAINERS                  |    4 +
  board/ti/ti816x/Makefile     |   47 ++++++++
  board/ti/ti816x/evm.c        |  249 ++++++++++++++++++++++++++++++++++++++++++
  boards.cfg                   |    1 +
  include/configs/ti816x_evm.h |  188 +++++++++++++++++++++++++++++++
  5 files changed, 489 insertions(+)

create mode 100644 board/ti/ti816x/Makefile
create mode 100644 board/ti/ti816x/evm.c
create mode 100644 include/configs/ti816x_evm.h

MAINTAINERS +4 -0
index 7820375..38ff5c3 100644
@@ -940,6 +940,10 @@ Lucas Stach <[email protected]>
 
  	colibri_t20_iris	Tegra20 (ARM7 & A9 Dual Core)
 
+Antoine Tenart <[email protected]>
+
+	TI816X		ARM ARMV7 (TI816x Soc)
+
  Nick Thompson <[email protected]>
 
  	da830evm	ARM926EJS (DA830/OMAP-L137)
board/ti/ti816x/Makefile new file +47 -0
new file mode 100644
index 0000000..dc23d93
@@ -0,0 +1,47 @@
+#
+# Copyright (C) 2013, Adeneo Embedded <www.adeneo-embedded.com>
+# Antoine Tenart, <[email protected]>
+#
+# Based on TI-PSP-04.00.02.14 :
+#
+# Copyright (C) 2009, Texas Instruments, Incorporated
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation version 2.
+#
+# This program is distributed "as is" WITHOUT ANY WARRANTY of any
+# kind, whether express or implied; without even the implied warranty
+# of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+
+include $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).o
+
+COBJS	:= evm.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+
+$(LIB):	$(obj).depend $(OBJS)
+	$(call cmd_link_o_target, $(OBJS))
+
+clean:
+	rm -f $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak $(obj).depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
board/ti/ti816x/evm.c new file +231 -0
new file mode 100644
index 0000000..12e98d5
@@ -0,0 +1,249 @@
+/*
+ * evm.c
+ *
+ * Copyright (C) 2013, Adeneo Embedded <www.adeneo-embedded.com>
+ * Antoine Tenart, <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+ */
+
+#include <common.h>
+#include <spl.h>
+#include <asm/cache.h>
+#include <asm/io.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/ddr_defs.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/arch/mmc_host_def.h>
+#include <asm/arch/mem.h>
+#include <asm/arch/mux.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_init(void)
+{
+	gd->bd->bi_boot_params = PHYS_DRAM_1 + 0x100;
+	return 0;
+}
+
+#if defined(CONFIG_SPL_BUILD)
+
+static struct module_pin_mux mmc_pin_mux[] = {
+	{ OFFSET(pincntl157), PULLDOWN_EN | PULLUDDIS | MODE(0x0) },
+	{ OFFSET(pincntl158), PULLDOWN_EN | PULLUDEN | MODE(0x0) },
+	{ OFFSET(pincntl159), PULLUP_EN | PULLUDDIS | MODE(0x0) },
+	{ OFFSET(pincntl160), PULLUP_EN | PULLUDDIS | MODE(0x0) },
+	{ OFFSET(pincntl161), PULLUP_EN | PULLUDDIS | MODE(0x0) },
+	{ OFFSET(pincntl162), PULLUP_EN | PULLUDDIS | MODE(0x0) },
+	{ OFFSET(pincntl163), PULLUP_EN | PULLUDDIS | MODE(0x0) },
+	{ -1 },
+};
+
+const struct dmm_lisa_map_regs evm_lisa_map_regs = {
+	.dmm_lisa_map_0 = 0x00000000,
+	.dmm_lisa_map_1 = 0x00000000,
+	.dmm_lisa_map_2 = 0x80640300,
+	.dmm_lisa_map_3 = 0xC0640320,
+};
+
+/*
+ * DDR2 related definitions
+ */
+
+static struct ddr_data ddr2_data = {
+	.datardsratio0		= ((0x40<<10) | (0x40<<0)),
+	.datawdsratio0		= ((0x4A<<10) | (0x4A<<0)),
+	.datawiratio0		= ((0x0<<10) | (0x0<<0)),
+	.datagiratio0		= ((0x0<<10) | (0x0<<0)),
+	.datafwsratio0		= ((0x13A<<10) | (0x13A<<0)),
+	.datawrsratio0		= ((0x8A<<10) | (0x8A<<0)),
+	.datauserank0delay	= 0x1,
+	.datadldiff0		= 0x0, /* depend on cpu rev, set later */
+};
+
+static struct cmd_control ddr2_ctrl = {
+	.cmd0csratio	= 0x80,
+	.cmd0dldiff	= 0x04, /* reset value is 0x4 */
+	.cmd0iclkout	= 0x00,
+
+	.cmd1csratio	= 0x80,
+	.cmd1dldiff	= 0x04,
+	.cmd1iclkout	= 0x00,
+
+	.cmd2csratio	= 0x80,
+	.cmd2dldiff	= 0x04,
+	.cmd2iclkout	= 0x00,
+
+};
+
+static struct emif_regs ddr2_emif0_regs = {
+	.sdram_config		= 0x43801A3A,
+	.ref_ctrl		= 0x10000C30,
+	.sdram_tim1		= 0x0AAB15E2,
+	.sdram_tim2		= 0x423631D2,
+	.sdram_tim3		= 0x0080032F,
+	.emif_ddr_phy_ctlr_1	= 0x0, /* depend on cpu rev, set later */
+};
+
+static struct emif_regs ddr2_emif1_regs = {
+	.sdram_config		= 0x43801A3A,
+	.ref_ctrl		= 0x10000C30,
+	.sdram_tim1		= 0x0AAB15E2,
+	.sdram_tim2		= 0x423631D2,
+	.sdram_tim3		= 0x0080032F,
+	.emif_ddr_phy_ctlr_1	= 0x0, /* depend on cpu rev, set later */
+};
+
+/*
+ * DDR3 related definitions
+ */
+
+#if defined(CONFIG_TI816X_DDR_PLL_400)
+#define RD_DQS		0x03B
+#define WR_DQS		0x0A6
+#define RD_DQS_GATE	0x12A
+#define EMIF_SDCFG	0x62A41032
+#define EMIF_SDREF	0x10000C30
+#define EMIF_TIM1	0x0CCCE524
+#define EMIF_TIM2	0x30308023
+#define EMIF_TIM3	0x009F82CF
+#define EMIF_PHYCFG	0x0000010B
+#elif defined(CONFIG_TI816X_DDR_PLL_531)
+#define RD_DQS		0x039
+#define WR_DQS		0x0B4
+#define RD_DQS_GATE	0x13D
+#define EMIF_SDCFG	0x62A51832
+#define EMIF_SDREF	0x1000102E
+#define EMIF_TIM1	0x0EF136AC
+#define EMIF_TIM2	0x30408063
+#define EMIF_TIM3	0x009F83AF
+#define EMIF_PHYCFG	0x0000010C
+#elif defined(CONFIG_TI816X_DDR_PLL_675)
+#define RD_DQS		0x039
+#define WR_DQS		0x091
+#define RD_DQS_GATE	0x196
+#define EMIF_SDCFG	0x62A63032
+#define EMIF_SDREF	0x10001491
+#define EMIF_TIM1	0x13358875
+#define EMIF_TIM2	0x5051806C
+#define EMIF_TIM3	0x009F84AF
+#define EMIF_PHYCFG	0x0000010F
+#elif defined(CONFIG_TI816X_DDR_PLL_796)
+#define RD_DQS		0x035
+#define WR_DQS		0x093
+#define RD_DQS_GATE	0x1B3
+#define EMIF_SDCFG	0x62A73832
+#define EMIF_SDREF	0x10001841
+#define EMIF_TIM1	0x1779C9FE
+#define EMIF_TIM2	0x50608074
+#define EMIF_TIM3	0x009F857F
+#define EMIF_PHYCFG	0x00000110
+#endif
+
+static struct ddr_data ddr3_data = {
+	.datardsratio0		= ((RD_DQS<<10) | (RD_DQS<<0)),
+	.datawdsratio0		= ((WR_DQS<<10) | (WR_DQS<<0)),
+	.datawiratio0		= ((0x20<<10) | 0x20<<0),
+	.datagiratio0		= ((0x20<<10) | 0x20<<0),
+	.datafwsratio0		= ((RD_DQS_GATE<<10) | (RD_DQS_GATE<<0)),
+	.datawrsratio0		= (((WR_DQS+0x40)<<10) | ((WR_DQS+0x40)<<0)),
+	.datauserank0delay	= 0x1,
+	.datadldiff0		= 0x0, /* depend on cpu rev, set later */
+};
+
+static const struct cmd_control ddr3_ctrl = {
+	.cmd0csratio	= 0x100,
+	.cmd0dldiff	= 0x004, /* reset value is 0x4 */
+	.cmd0iclkout	= 0x001,
+
+	.cmd1csratio	= 0x100,
+	.cmd1dldiff	= 0x004,
+	.cmd1iclkout	= 0x001,
+
+	.cmd2csratio	= 0x100,
+	.cmd2dldiff	= 0x004,
+	.cmd2iclkout	= 0x001,
+};
+
+static const struct emif_regs ddr3_emif0_regs = {
+	.sdram_config		= EMIF_SDCFG,
+	.ref_ctrl		= EMIF_SDREF,
+	.sdram_tim1		= EMIF_TIM1,
+	.sdram_tim2		= EMIF_TIM2,
+	.sdram_tim3		= EMIF_TIM3,
+	.emif_ddr_phy_ctlr_1	= EMIF_PHYCFG,
+};
+
+static const struct emif_regs ddr3_emif1_regs = {
+	.sdram_config		= EMIF_SDCFG,
+	.ref_ctrl		= EMIF_SDREF,
+	.sdram_tim1		= EMIF_TIM1,
+	.sdram_tim2		= EMIF_TIM2,
+	.sdram_tim3		= EMIF_TIM3,
+	.emif_ddr_phy_ctlr_1	= EMIF_PHYCFG,
+};
+#endif /* CONFIG_SPL_BUILD */
+
+
+void s_init(void)
+{
+#ifdef CONFIG_SPL_BUILD
+#ifdef CONFIG_ARCH_CPU_INIT
+	/*
+	 * Save the boot parameters passed by romcode.
+	 * Do it first to prevent overwrites.
+	 */
+	save_omap_boot_params();
+#endif
+
+	pll_init();
+
+	configure_module_pin_mux(mmc_pin_mux);
+
+	gd = &gdata;
+
+	preloader_console_init();
+
+#ifdef CONFIG_TI816X_EVM_DDR2
+	ddr2_data.datadldiff0 = (get_cpu_rev() == 0x1 ? 0x0 : 0xF);
+	ddr2_ctrl.cmd0dldiff = (get_cpu_rev() == 0x1 ? 0x0 : 0xF);
+	ddr2_ctrl.cmd1dldiff = (get_cpu_rev() == 0x1 ? 0x0 : 0xF);
+	ddr2_ctrl.cmd2dldiff = (get_cpu_rev() == 0x1 ? 0x0 : 0xF);
+
+	if (CONFIG_TI816X_USE_EMIF0) {
+		ddr2_emif0_regs.emif_ddr_phy_ctlr_1 =
+			(get_cpu_rev() == 0x1 ? 0x0000010B : 0x0000030B);
+		config_ddr(0, 0, &ddr2_data, &ddr2_ctrl, &ddr2_emif0_regs, 0);
+	}
+
+	if (CONFIG_TI816X_USE_EMIF1) {
+		ddr2_emif1_regs.emif_ddr_phy_ctlr_1 =
+			(get_cpu_rev() == 0x1 ? 0x0000010B : 0x0000030B);
+		config_ddr(1, 0, &ddr2_data, &ddr2_ctrl, &ddr2_emif1_regs, 1);
+	}
+#endif
+
+#ifdef CONFIG_TI816X_EVM_DDR3
+	ddr3_data.datadldiff0 = (get_cpu_rev() == 0x1 ? 0x0 : 0xF);
+

board/ti/ti816x/evm.c line 241

Quoted 10 lines
board/ti/ti816x/evm.c new file +10 -0
+	if (CONFIG_TI816X_USE_EMIF0)
+		config_ddr(0, 0, &ddr3_data, &ddr3_ctrl, &ddr3_emif0_regs, 0);
+
+	if (CONFIG_TI816X_USE_EMIF1)
+		config_ddr(1, 0, &ddr3_data, &ddr3_ctrl, &ddr3_emif0_regs, 1);
+#endif
+
+	config_dmm(&evm_lisa_map_regs);
+#endif
+}

Please rebase your patches on top of the following series.
http://u-boot.10912.n7.nabble.com/PATCH-0-4-ARM-AM33xx-Cleanup-clocks-and-hwinit-tt157703.html
There are already s_init() function present commonly, you can reuse these functions from the above series.

Thanks and regards,
Lokesh

Quoted 215 lines
board/ti/ti816x/evm.c new file +8 -0
+
+#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_GENERIC_MMC)
+int board_mmc_init(bd_t *bis)
+{
+	omap_mmc_init(0, 0, 0, -1, -1);
+	return 0;
+}
+#endif
boards.cfg +1 -0
index 1e598cb..95e19a1 100644
@@ -250,6 +250,7 @@ am335x_evm_uart4             arm         armv7       am335x              ti
  am335x_evm_uart5             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL6,CONS_INDEX=6
  am335x_evm_usbspl            arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1,SPL_USBETH_SUPPORT
  ti814x_evm                   arm         armv7       ti814x              ti             am33xx
+ti816x_evm                   arm         armv7       ti816x              ti             am33xx
  pcm051                       arm         armv7       pcm051              phytec         am33xx      pcm051
  sama5d3xek_mmc               arm         armv7       sama5d3xek          atmel          at91        sama5d3xek:SAMA5D3,SYS_USE_MMC
  sama5d3xek_nandflash         arm         armv7       sama5d3xek          atmel          at91        sama5d3xek:SAMA5D3,SYS_USE_NANDFLASH
include/configs/ti816x_evm.h new file +188 -0
new file mode 100644
index 0000000..93ad74c
@@ -0,0 +1,188 @@
+/*
+ * ti816x_evm.h
+ *
+ * Copyright (C) 2013, Adeneo Embedded <www.adeneo-embedded.com>
+ * Antoine Tenart, <[email protected]>
+ *
+ * This file is released under the terms of GPL v2 and any later version.
+ * See the file COPYING in the root directory of the source tree for details.
+ */
+
+#ifndef __CONFIG_TI816X_EVM_H
+#define __CONFIG_TI816X_EVM_H
+
+#define CONFIG_TI81XX
+#define CONFIG_TI816X
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_OMAP
+
+#define CONFIG_ARCH_CPU_INIT
+
+#include <asm/arch/omap.h>
+
+#define CONFIG_ENV_SIZE			0x2000
+#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + (32 * 1024))
+#define CONFIG_SYS_LONGHELP		/* undef save memory */
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT		"u-boot/ti816x# "
+#define CONFIG_MACH_TYPE		MACH_TYPE_TI8168EVM
+
+#define CONFIG_OF_LIBFDT
+#define CONFIG_CMDLINE_TAG		/* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS
+#define CONFIG_INITRD_TAG		/* required for ramdisk support */
+
+#include <config_cmd_default.h>		/* u-boot default commands */
+
+#define CONFIG_VERSION_VARIABLE
+#define CONFIG_DISPLAY_CPUINFO
+
+#define CONFIG_BOOTDELAY		3 /* set negative for no autoboot */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+	"verify=yes\0"
+
+#define CONFIG_BOOTCOMMAND			\
+	"mmc rescan 0;"				\
+	"fatload mmc 0 0x81000000 uImage;"	\
+	"bootm 0x81000000"
+
+#define CONFIG_BOOTARGS	"console=ttyO2,115200n8 noinitrd earlyprintk"
+
+/* Clock Defines */
+#define V_OSCK          24000000    /* Clock output from T2 */
+#define V_SCLK          (V_OSCK >> 1)
+
+#define CONFIG_SYS_MAXARGS	32
+#define CONFIG_SYS_CBSIZE	512 /* console I/O buffer size */
+#define CONFIG_SYS_PBSIZE	(CONFIG_SYS_CBSIZE \
+		+ sizeof(CONFIG_SYS_PROMPT) + 16) /* print buffer size */
+#define CONFIG_SYS_BARGSIZE	CONFIG_SYS_CBSIZE /* boot arg buffer size */
+
+/*
+ * Memtest works on 8 MB in DRAM after skipping 32MB
+ * from start addr of ram disk
+ */
+#define CONFIG_SYS_MEMTEST_START	(PHYS_DRAM_1 + (64*1024*1024))
+#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_MEMTEST_START \
+		+ (8*1024*1024))
+
+#undef  CONFIG_SYS_CLKS_IN_HZ
+#define CONFIG_SYS_LOAD_ADDR		0x81000000 /* Default load address */
+#define CONFIG_SYS_HZ			1000	   /* 1ms clock */
+
+#define CONFIG_CMD_ASKEN
+#define CONFIG_CMD_ECHO
+#define CONFIG_OMAP_GPIO
+#define CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_OMAP_HSMMC
+#define CONFIG_CMD_MMC
+#define CONFIG_DOS_PARTITION
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_EXT2
+
+#define CONFIG_FS_FAT
+
+/*
+ * Only one of the following two options (DDR3/DDR2) should be enabled
+ * CONFIG_TI816X_EVM_DDR2
+ * CONFIG_TI816X_EVM_DDR3
+ */
+#define CONFIG_TI816X_EVM_DDR3
+
+/*
+ * Supported values: 400, 531, 675 or 796 MHz
+ */
+#define CONFIG_TI816X_DDR_PLL_796
+
+#define CONFIG_TI816X_USE_EMIF0	1
+#define CONFIG_TI816X_USE_EMIF1	1
+
+
+#define CONFIG_NR_DRAM_BANKS	2		/* we have 2 banks of DRAM */
+#define PHYS_DRAM_1		0x80000000	/* DRAM Bank #1 */
+#define PHYS_DRAM_1_SIZE        0x40000000	/* 1 GB */
+#define PHYS_DRAM_2		0xC0000000	/* DRAM Bank #2 */
+#define PHYS_DRAM_2_SIZE	0x40000000	/* 1 GB */
+
+#define CONFIG_MAX_RAM_BANK_SIZE	(2048 << 20)	/* 2048MB */
+#define CONFIG_SYS_SDRAM_BASE		PHYS_DRAM_1
+#define CONFIG_SYS_INIT_SP_ADDR		(NON_SECURE_SRAM_END - \
+		GENERATED_GBL_DATA_SIZE)
+
+/**
+ * Platform/Board specific defs
+ */
+#define CONFIG_SYS_CLK_FREQ     27000000
+#define CONFIG_SYS_TIMERBASE    0x4802E000
+#define CONFIG_SYS_PTV          2   /* Divisor: 2^(PTV+1) => 8 */
+
+#undef CONFIG_NAND_OMAP_GPMC
+
+/*
+ * NS16550 Configuration
+ */
+#define CONFIG_SYS_NS16550
+#define CONFIG_SYS_NS16550_SERIAL
+#define CONFIG_SYS_NS16550_REG_SIZE (-4)
+#define CONFIG_SYS_NS16550_CLK      (48000000)
+#define CONFIG_SYS_NS16550_COM1     0x48024000  /* Base EVM has UART2 */
+
+#define CONFIG_BAUDRATE     115200
+
+/* allow overwriting serial config and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+#define CONFIG_SERIAL1
+#define CONFIG_SERIAL2
+#define CONFIG_SERIAL3
+#define CONFIG_CONS_INDEX	1
+#define CONFIG_SYS_CONSOLE_INFO_QUIET
+
+#define CONFIG_ENV_IS_NOWHERE
+
+/* SPL */
+/* Defines for SPL */
+#define CONFIG_SPL
+#define CONFIG_SPL_FRAMEWORK
+#define CONFIG_SPL_TEXT_BASE    0x40400000
+#define CONFIG_SPL_MAX_SIZE     ((128 - 18) * 1024)
+#define CONFIG_SPL_STACK        CONFIG_SYS_INIT_SP_ADDR
+
+#define CONFIG_SPL_BSS_START_ADDR   0x80000000
+#define CONFIG_SPL_BSS_MAX_SIZE     0x80000     /* 512 KB */
+
+#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 /* address 0x60000 */
+#define CONFIG_SYS_U_BOOT_MAX_SIZE_SECTORS      0x200 /* 256 KB */
+#define CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION    1
+#define CONFIG_SPL_FAT_LOAD_PAYLOAD_NAME        "u-boot.img"
+#define CONFIG_SPL_MMC_SUPPORT
+#define CONFIG_SPL_FAT_SUPPORT
+
+#define CONFIG_SPL_LIBCOMMON_SUPPORT
+#define CONFIG_SPL_LIBDISK_SUPPORT
+#define CONFIG_SPL_LIBGENERIC_SUPPORT
+#define CONFIG_SPL_SERIAL_SUPPORT
+#define CONFIG_SPL_GPIO_SUPPORT
+#define CONFIG_SPL_YMODEM_SUPPORT
+#define CONFIG_SYS_SPI_U_BOOT_OFFS  0x20000
+#define CONFIG_SYS_SPI_U_BOOT_SIZE  0x40000
+#define CONFIG_SPL_LDSCRIPT     "$(CPUDIR)/omap-common/u-boot-spl.lds"
+
+#define CONFIG_SPL_BOARD_INIT
+
+#define CONFIG_SYS_TEXT_BASE        0x80800000
+#define CONFIG_SYS_SPL_MALLOC_START 0x80208000
+#define CONFIG_SYS_SPL_MALLOC_SIZE  0x100000
+
+/* Since SPL did pll and ddr initialization for us,
+ * we don't need to do it twice.
+ */
+#ifndef CONFIG_SPL_BUILD
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#endif
+
+/* Unsupported features */
+#undef CONFIG_USE_IRQ
+
+#endif