1 /*
2  * ti_am335x_common.h
3  *
4  * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
5  *
6  * SPDX-License-Identifier:	GPL-2.0+
7  *
8  * For more details, please see the technical documents listed at
9  * http://www.ti.com/product/am3359#technicaldocuments
10  */
11 
12 #ifndef __CONFIG_TI_AM335X_COMMON_H__
13 #define __CONFIG_TI_AM335X_COMMON_H__
14 
15 #define CONFIG_AM33XX
16 #define CONFIG_ARCH_CPU_INIT
17 #define CONFIG_SYS_CACHELINE_SIZE       64
18 #define CONFIG_MAX_RAM_BANK_SIZE	(1024 << 20)	/* 1GB */
19 #define CONFIG_SYS_TIMERBASE		0x48040000	/* Use Timer2 */
20 #define CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC
21 
22 #ifndef CONFIG_SPL_BUILD
23 # define CONFIG_OMAP_SERIAL
24 #endif
25 
26 #include <asm/arch/omap.h>
27 
28 /* NS16550 Configuration */
29 #define CONFIG_SYS_NS16550
30 #ifdef CONFIG_SPL_BUILD
31 #define CONFIG_SYS_NS16550_SERIAL
32 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
33 #endif
34 #define CONFIG_SYS_NS16550_CLK		48000000
35 
36 /* Network defines. */
37 #define CONFIG_CMD_NET			/* 'bootp' and 'tftp' */
38 #define CONFIG_CMD_DHCP
39 #define CONFIG_CMD_MII
40 #define CONFIG_BOOTP_DNS		/* Configurable parts of CMD_DHCP */
41 #define CONFIG_BOOTP_DNS2
42 #define CONFIG_BOOTP_SEND_HOSTNAME
43 #define CONFIG_BOOTP_GATEWAY
44 #define CONFIG_BOOTP_SUBNETMASK
45 #define CONFIG_NET_RETRY_COUNT         10
46 #define CONFIG_CMD_PING
47 #define CONFIG_DRIVER_TI_CPSW		/* Driver for IP block */
48 #define CONFIG_MII			/* Required in net/eth.c */
49 
50 /*
51  * RTC related defines. To use bootcount you must set bootlimit in the
52  * environment to a non-zero value and enable CONFIG_BOOTCOUNT_LIMIT
53  * in the board config.
54  */
55 #define CONFIG_SYS_BOOTCOUNT_ADDR	0x44E3E000
56 
57 /* Enable the HW watchdog, since we can use this with bootcount */
58 #define CONFIG_HW_WATCHDOG
59 #define CONFIG_OMAP_WATCHDOG
60 
61 /*
62  * SPL related defines.  The Public RAM memory map the ROM defines the
63  * area between 0x402F0400 and 0x4030B800 as a download area and
64  * 0x4030B800 to 0x4030CE00 as a public stack area.  The ROM also
65  * supports X-MODEM loading via UART, and we leverage this and then use
66  * Y-MODEM to load u-boot.img, when booted over UART.
67  */
68 #define CONFIG_SPL_TEXT_BASE		0x402F0400
69 #define CONFIG_SPL_MAX_SIZE		(0x4030B800 - CONFIG_SPL_TEXT_BASE)
70 #define CONFIG_SYS_SPL_ARGS_ADDR	(CONFIG_SYS_SDRAM_BASE + \
71 					 (128 << 20))
72 
73 /* Enable the watchdog inside of SPL */
74 #define CONFIG_SPL_WATCHDOG_SUPPORT
75 
76 /*
77  * Since SPL did pll and ddr initialization for us,
78  * we don't need to do it twice.
79  */
80 #if !defined(CONFIG_SPL_BUILD) && !defined(CONFIG_NOR_BOOT)
81 #define CONFIG_SKIP_LOWLEVEL_INIT
82 #endif
83 
84 /*
85  * When building U-Boot such that there is no previous loader
86  * we need to call board_early_init_f.  This is taken care of in
87  * s_init when we have SPL used.
88  */
89 #if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && !defined(CONFIG_SPL)
90 #define CONFIG_BOARD_EARLY_INIT_F
91 #endif
92 
93 #ifdef CONFIG_NAND
94 #define CONFIG_SPL_NAND_AM33XX_BCH	/* ELM support */
95 #endif
96 
97 /* Now bring in the rest of the common code. */
98 #include <configs/ti_armv7_common.h>
99 
100 #endif	/* __CONFIG_TI_AM335X_COMMON_H__ */
101