xref: /OK3568_Linux_fs/u-boot/include/configs/mx31pdk.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * (C) Copyright 2008 Magnus Lilja <lilja.magnus@gmail.com>
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * (C) Copyright 2004
5*4882a593Smuzhiyun  * Texas Instruments.
6*4882a593Smuzhiyun  * Richard Woodruff <r-woodruff2@ti.com>
7*4882a593Smuzhiyun  * Kshitij Gupta <kshitij@ti.com>
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * Configuration settings for the Freescale i.MX31 PDK board.
10*4882a593Smuzhiyun  *
11*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
12*4882a593Smuzhiyun  */
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #ifndef __CONFIG_H
15*4882a593Smuzhiyun #define __CONFIG_H
16*4882a593Smuzhiyun 
17*4882a593Smuzhiyun #include <asm/arch/imx-regs.h>
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun /* High Level Configuration Options */
20*4882a593Smuzhiyun #define CONFIG_MX31			/* This is a mx31 */
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun #define CONFIG_CMDLINE_TAG			/* enable passing of ATAGs */
23*4882a593Smuzhiyun #define CONFIG_SETUP_MEMORY_TAGS
24*4882a593Smuzhiyun #define CONFIG_INITRD_TAG
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun #define CONFIG_MACH_TYPE	MACH_TYPE_MX31_3DS
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun #define CONFIG_SPL_TARGET	"u-boot-with-spl.bin"
29*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE	2048
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE	0x87dc0000
32*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE	0x87e00000
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #ifndef CONFIG_SPL_BUILD
35*4882a593Smuzhiyun #define CONFIG_SKIP_LOWLEVEL_INIT
36*4882a593Smuzhiyun #endif
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun /*
39*4882a593Smuzhiyun  * Size of malloc() pool
40*4882a593Smuzhiyun  */
41*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN		(2*CONFIG_ENV_SIZE + 2 * 128 * 1024)
42*4882a593Smuzhiyun 
43*4882a593Smuzhiyun /*
44*4882a593Smuzhiyun  * Hardware drivers
45*4882a593Smuzhiyun  */
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun #define CONFIG_MXC_UART
48*4882a593Smuzhiyun #define CONFIG_MXC_UART_BASE	UART1_BASE
49*4882a593Smuzhiyun #define CONFIG_MXC_GPIO
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun #define CONFIG_HARD_SPI
52*4882a593Smuzhiyun #define CONFIG_MXC_SPI
53*4882a593Smuzhiyun #define CONFIG_DEFAULT_SPI_BUS	1
54*4882a593Smuzhiyun #define CONFIG_DEFAULT_SPI_MODE	(SPI_MODE_0 | SPI_CS_HIGH)
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun /* PMIC Controller */
57*4882a593Smuzhiyun #define CONFIG_POWER
58*4882a593Smuzhiyun #define CONFIG_POWER_SPI
59*4882a593Smuzhiyun #define CONFIG_POWER_FSL
60*4882a593Smuzhiyun #define CONFIG_FSL_PMIC_BUS	1
61*4882a593Smuzhiyun #define CONFIG_FSL_PMIC_CS	2
62*4882a593Smuzhiyun #define CONFIG_FSL_PMIC_CLK	1000000
63*4882a593Smuzhiyun #define CONFIG_FSL_PMIC_MODE	(SPI_MODE_0 | SPI_CS_HIGH)
64*4882a593Smuzhiyun #define CONFIG_FSL_PMIC_BITLEN	32
65*4882a593Smuzhiyun #define CONFIG_RTC_MC13XXX
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun /* allow to overwrite serial and ethaddr */
68*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE
69*4882a593Smuzhiyun #define CONFIG_CONS_INDEX		1
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun #define	CONFIG_EXTRA_ENV_SETTINGS					\
72*4882a593Smuzhiyun 	"bootargs_base=setenv bootargs console=ttymxc0,115200\0"	\
73*4882a593Smuzhiyun 	"bootargs_nfs=setenv bootargs $(bootargs) root=/dev/nfs "	\
74*4882a593Smuzhiyun 		"ip=dhcp nfsroot=$(serverip):$(nfsrootfs),v3,tcp\0"	\
75*4882a593Smuzhiyun 	"bootcmd=run bootcmd_net\0"					\
76*4882a593Smuzhiyun 	"bootcmd_net=run bootargs_base bootargs_mtd bootargs_nfs; "	\
77*4882a593Smuzhiyun 		"tftpboot 0x81000000 uImage-mx31; bootm\0"		\
78*4882a593Smuzhiyun 	"prg_uboot=tftpboot 0x81000000 u-boot-with-spl.bin; "		\
79*4882a593Smuzhiyun 		"nand erase 0x0 0x40000; "				\
80*4882a593Smuzhiyun 		"nand write 0x81000000 0x0 0x40000\0"
81*4882a593Smuzhiyun 
82*4882a593Smuzhiyun #define CONFIG_SMC911X
83*4882a593Smuzhiyun #define CONFIG_SMC911X_BASE	0xB6000000
84*4882a593Smuzhiyun #define CONFIG_SMC911X_32_BIT
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun /*
87*4882a593Smuzhiyun  * Miscellaneous configurable options
88*4882a593Smuzhiyun  */
89*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP	/* undef to save memory */
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun /* memtest works on */
92*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START	0x80000000
93*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END		0x80010000
94*4882a593Smuzhiyun 
95*4882a593Smuzhiyun /* default load address */
96*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR		0x81000000
97*4882a593Smuzhiyun 
98*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING
99*4882a593Smuzhiyun 
100*4882a593Smuzhiyun /*-----------------------------------------------------------------------
101*4882a593Smuzhiyun  * Physical Memory Map
102*4882a593Smuzhiyun  */
103*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS	1
104*4882a593Smuzhiyun #define PHYS_SDRAM_1		CSD0_BASE
105*4882a593Smuzhiyun #define PHYS_SDRAM_1_SIZE	(128 * 1024 * 1024)
106*4882a593Smuzhiyun 
107*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE		PHYS_SDRAM_1
108*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_ADDR	IRAM_BASE_ADDR
109*4882a593Smuzhiyun #define CONFIG_SYS_INIT_RAM_SIZE	IRAM_SIZE
110*4882a593Smuzhiyun #define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_INIT_RAM_SIZE - \
111*4882a593Smuzhiyun 						GENERATED_GBL_DATA_SIZE)
112*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR	(CONFIG_SYS_INIT_RAM_ADDR + \
113*4882a593Smuzhiyun 						CONFIG_SYS_INIT_RAM_SIZE)
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun /*
116*4882a593Smuzhiyun  * environment organization
117*4882a593Smuzhiyun  */
118*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET		0x40000
119*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET_REDUND	0x60000
120*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			(128 * 1024)
121*4882a593Smuzhiyun 
122*4882a593Smuzhiyun /*
123*4882a593Smuzhiyun  * NAND driver
124*4882a593Smuzhiyun  */
125*4882a593Smuzhiyun #define CONFIG_MXC_NAND_REGS_BASE      NFC_BASE_ADDR
126*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE     1
127*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE           NFC_BASE_ADDR
128*4882a593Smuzhiyun #define CONFIG_MXC_NAND_HWECC
129*4882a593Smuzhiyun #define CONFIG_SYS_NAND_LARGEPAGE
130*4882a593Smuzhiyun 
131*4882a593Smuzhiyun /* NAND configuration for the NAND_SPL */
132*4882a593Smuzhiyun 
133*4882a593Smuzhiyun /* Start copying real U-Boot from the second page */
134*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_OFFS	CONFIG_SPL_PAD_TO
135*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_SIZE	0x3f800
136*4882a593Smuzhiyun /* Load U-Boot to this address */
137*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_DST	CONFIG_SYS_TEXT_BASE
138*4882a593Smuzhiyun #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST
139*4882a593Smuzhiyun 
140*4882a593Smuzhiyun #define CONFIG_SYS_NAND_PAGE_SIZE	0x800
141*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024)
142*4882a593Smuzhiyun #define CONFIG_SYS_NAND_PAGE_COUNT	64
143*4882a593Smuzhiyun #define CONFIG_SYS_NAND_SIZE		(256 * 1024 * 1024)
144*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BAD_BLOCK_POS	0
145*4882a593Smuzhiyun 
146*4882a593Smuzhiyun /* Configuration of lowlevel_init.S (clocks and SDRAM) */
147*4882a593Smuzhiyun #define CCM_CCMR_SETUP		0x074B0BF5
148*4882a593Smuzhiyun #define CCM_PDR0_SETUP_532MHZ	(PDR0_CSI_PODF(0x3f) | PDR0_CSI_PRDF(7) | \
149*4882a593Smuzhiyun 				 PDR0_PER_PODF(7) | PDR0_HSP_PODF(3) |    \
150*4882a593Smuzhiyun 				 PDR0_NFC_PODF(5) | PDR0_IPG_PODF(1) |    \
151*4882a593Smuzhiyun 				 PDR0_MAX_PODF(3) | PDR0_MCU_PODF(0))
152*4882a593Smuzhiyun #define CCM_MPCTL_SETUP_532MHZ	(PLL_PD(0) | PLL_MFD(51) | PLL_MFI(10) |  \
153*4882a593Smuzhiyun 				 PLL_MFN(12))
154*4882a593Smuzhiyun 
155*4882a593Smuzhiyun #define ESDMISC_MDDR_SETUP	0x00000004
156*4882a593Smuzhiyun #define ESDMISC_MDDR_RESET_DL	0x0000000c
157*4882a593Smuzhiyun #define ESDCFG0_MDDR_SETUP	0x006ac73a
158*4882a593Smuzhiyun 
159*4882a593Smuzhiyun #define ESDCTL_ROW_COL		(ESDCTL_SDE | ESDCTL_ROW(2) | ESDCTL_COL(2))
160*4882a593Smuzhiyun #define ESDCTL_SETTINGS		(ESDCTL_ROW_COL | ESDCTL_SREFR(3) | \
161*4882a593Smuzhiyun 				 ESDCTL_DSIZ(2) | ESDCTL_BL(1))
162*4882a593Smuzhiyun #define ESDCTL_PRECHARGE	(ESDCTL_ROW_COL | ESDCTL_CMD_PRECHARGE)
163*4882a593Smuzhiyun #define ESDCTL_AUTOREFRESH	(ESDCTL_ROW_COL | ESDCTL_CMD_AUTOREFRESH)
164*4882a593Smuzhiyun #define ESDCTL_LOADMODEREG	(ESDCTL_ROW_COL | ESDCTL_CMD_LOADMODEREG)
165*4882a593Smuzhiyun #define ESDCTL_RW		ESDCTL_SETTINGS
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun #endif /* __CONFIG_H */
168