xref: /OK3568_Linux_fs/u-boot/include/configs/ls1046ardb.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2016 Freescale Semiconductor
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
5*4882a593Smuzhiyun  */
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun #ifndef __LS1046ARDB_H__
8*4882a593Smuzhiyun #define __LS1046ARDB_H__
9*4882a593Smuzhiyun 
10*4882a593Smuzhiyun #include "ls1046a_common.h"
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun #ifdef CONFIG_SD_BOOT
13*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x82000000
14*4882a593Smuzhiyun #else
15*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE		0x40100000
16*4882a593Smuzhiyun #endif
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun #define CONFIG_SYS_CLK_FREQ		100000000
19*4882a593Smuzhiyun #define CONFIG_DDR_CLK_FREQ		100000000
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #define CONFIG_LAYERSCAPE_NS_ACCESS
22*4882a593Smuzhiyun #define CONFIG_MISC_INIT_R
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun #define CONFIG_DIMM_SLOTS_PER_CTLR	1
25*4882a593Smuzhiyun /* Physical Memory Map */
26*4882a593Smuzhiyun #define CONFIG_CHIP_SELECTS_PER_CTRL	4
27*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS		2
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #define CONFIG_DDR_SPD
30*4882a593Smuzhiyun #define SPD_EEPROM_ADDRESS		0x51
31*4882a593Smuzhiyun #define CONFIG_SYS_SPD_BUS_NUM		0
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun #define CONFIG_DDR_ECC
34*4882a593Smuzhiyun #define CONFIG_ECC_INIT_VIA_DDRCONTROLLER
35*4882a593Smuzhiyun #define CONFIG_MEM_INIT_VALUE           0xdeadbeef
36*4882a593Smuzhiyun #define CONFIG_FSL_DDR_BIST	/* enable built-in memory test */
37*4882a593Smuzhiyun #ifndef CONFIG_SPL
38*4882a593Smuzhiyun #define CONFIG_FSL_DDR_INTERACTIVE	/* Interactive debugging */
39*4882a593Smuzhiyun #endif
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun #ifdef CONFIG_RAMBOOT_PBL
42*4882a593Smuzhiyun #define CONFIG_SYS_FSL_PBL_PBI board/freescale/ls1046ardb/ls1046ardb_pbi.cfg
43*4882a593Smuzhiyun #endif
44*4882a593Smuzhiyun 
45*4882a593Smuzhiyun #ifdef CONFIG_SD_BOOT
46*4882a593Smuzhiyun #ifdef CONFIG_EMMC_BOOT
47*4882a593Smuzhiyun #define CONFIG_SYS_FSL_PBL_RCW \
48*4882a593Smuzhiyun 	board/freescale/ls1046ardb/ls1046ardb_rcw_emmc.cfg
49*4882a593Smuzhiyun #else
50*4882a593Smuzhiyun #define CONFIG_SYS_FSL_PBL_RCW board/freescale/ls1046ardb/ls1046ardb_rcw_sd.cfg
51*4882a593Smuzhiyun #endif
52*4882a593Smuzhiyun #endif
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun #ifndef SPL_NO_IFC
55*4882a593Smuzhiyun /* IFC */
56*4882a593Smuzhiyun #define CONFIG_FSL_IFC
57*4882a593Smuzhiyun /*
58*4882a593Smuzhiyun  * NAND Flash Definitions
59*4882a593Smuzhiyun  */
60*4882a593Smuzhiyun #define CONFIG_NAND_FSL_IFC
61*4882a593Smuzhiyun #endif
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE		0x7e800000
64*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_PHYS	CONFIG_SYS_NAND_BASE
65*4882a593Smuzhiyun 
66*4882a593Smuzhiyun #define CONFIG_SYS_NAND_CSPR_EXT	(0x0)
67*4882a593Smuzhiyun #define CONFIG_SYS_NAND_CSPR	(CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \
68*4882a593Smuzhiyun 				| CSPR_PORT_SIZE_8	\
69*4882a593Smuzhiyun 				| CSPR_MSEL_NAND	\
70*4882a593Smuzhiyun 				| CSPR_V)
71*4882a593Smuzhiyun #define CONFIG_SYS_NAND_AMASK	IFC_AMASK(64 * 1024)
72*4882a593Smuzhiyun #define CONFIG_SYS_NAND_CSOR	(CSOR_NAND_ECC_ENC_EN	/* ECC on encode */ \
73*4882a593Smuzhiyun 				| CSOR_NAND_ECC_DEC_EN	/* ECC on decode */ \
74*4882a593Smuzhiyun 				| CSOR_NAND_ECC_MODE_8	/* 8-bit ECC */ \
75*4882a593Smuzhiyun 				| CSOR_NAND_RAL_3	/* RAL = 3 Bytes */ \
76*4882a593Smuzhiyun 				| CSOR_NAND_PGS_4K	/* Page Size = 4K */ \
77*4882a593Smuzhiyun 				| CSOR_NAND_SPRZ_224	/* Spare size = 224 */ \
78*4882a593Smuzhiyun 				| CSOR_NAND_PB(64))	/* 64 Pages Per Block */
79*4882a593Smuzhiyun 
80*4882a593Smuzhiyun #define CONFIG_SYS_NAND_ONFI_DETECTION
81*4882a593Smuzhiyun 
82*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM0		(FTIM0_NAND_TCCST(0x7) | \
83*4882a593Smuzhiyun 					FTIM0_NAND_TWP(0x18)   | \
84*4882a593Smuzhiyun 					FTIM0_NAND_TWCHT(0x7) | \
85*4882a593Smuzhiyun 					FTIM0_NAND_TWH(0xa))
86*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM1		(FTIM1_NAND_TADLE(0x32) | \
87*4882a593Smuzhiyun 					FTIM1_NAND_TWBE(0x39)  | \
88*4882a593Smuzhiyun 					FTIM1_NAND_TRR(0xe)   | \
89*4882a593Smuzhiyun 					FTIM1_NAND_TRP(0x18))
90*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM2		(FTIM2_NAND_TRAD(0xf) | \
91*4882a593Smuzhiyun 					FTIM2_NAND_TREH(0xa) | \
92*4882a593Smuzhiyun 					FTIM2_NAND_TWHRE(0x1e))
93*4882a593Smuzhiyun #define CONFIG_SYS_NAND_FTIM3		0x0
94*4882a593Smuzhiyun 
95*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE_LIST	{ CONFIG_SYS_NAND_BASE }
96*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE	1
97*4882a593Smuzhiyun #define CONFIG_MTD_NAND_VERIFY_WRITE
98*4882a593Smuzhiyun 
99*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BLOCK_SIZE	(128 * 1024)
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun /*
102*4882a593Smuzhiyun  * CPLD
103*4882a593Smuzhiyun  */
104*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_BASE		0x7fb00000
105*4882a593Smuzhiyun #define CPLD_BASE_PHYS			CONFIG_SYS_CPLD_BASE
106*4882a593Smuzhiyun 
107*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_CSPR_EXT	(0x0)
108*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_CSPR		(CSPR_PHYS_ADDR(CPLD_BASE_PHYS) | \
109*4882a593Smuzhiyun 					CSPR_PORT_SIZE_8 | \
110*4882a593Smuzhiyun 					CSPR_MSEL_GPCM | \
111*4882a593Smuzhiyun 					CSPR_V)
112*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_AMASK		IFC_AMASK(64 * 1024)
113*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_CSOR		CSOR_NOR_ADM_SHIFT(16)
114*4882a593Smuzhiyun 
115*4882a593Smuzhiyun /* CPLD Timing parameters for IFC GPCM */
116*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_FTIM0		(FTIM0_GPCM_TACSE(0x0e) | \
117*4882a593Smuzhiyun 					FTIM0_GPCM_TEADC(0x0e) | \
118*4882a593Smuzhiyun 					FTIM0_GPCM_TEAHC(0x0e))
119*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_FTIM1		(FTIM1_GPCM_TACO(0xff) | \
120*4882a593Smuzhiyun 					FTIM1_GPCM_TRAD(0x3f))
121*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_FTIM2		(FTIM2_GPCM_TCS(0xf) | \
122*4882a593Smuzhiyun 					FTIM2_GPCM_TCH(0xf) | \
123*4882a593Smuzhiyun 					FTIM2_GPCM_TWP(0x3E))
124*4882a593Smuzhiyun #define CONFIG_SYS_CPLD_FTIM3		0x0
125*4882a593Smuzhiyun 
126*4882a593Smuzhiyun /* IFC Timing Params */
127*4882a593Smuzhiyun #define CONFIG_SYS_CSPR0_EXT		CONFIG_SYS_NAND_CSPR_EXT
128*4882a593Smuzhiyun #define CONFIG_SYS_CSPR0		CONFIG_SYS_NAND_CSPR
129*4882a593Smuzhiyun #define CONFIG_SYS_AMASK0		CONFIG_SYS_NAND_AMASK
130*4882a593Smuzhiyun #define CONFIG_SYS_CSOR0		CONFIG_SYS_NAND_CSOR
131*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM0		CONFIG_SYS_NAND_FTIM0
132*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM1		CONFIG_SYS_NAND_FTIM1
133*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM2		CONFIG_SYS_NAND_FTIM2
134*4882a593Smuzhiyun #define CONFIG_SYS_CS0_FTIM3		CONFIG_SYS_NAND_FTIM3
135*4882a593Smuzhiyun 
136*4882a593Smuzhiyun #define CONFIG_SYS_CSPR2_EXT		CONFIG_SYS_CPLD_CSPR_EXT
137*4882a593Smuzhiyun #define CONFIG_SYS_CSPR2		CONFIG_SYS_CPLD_CSPR
138*4882a593Smuzhiyun #define CONFIG_SYS_AMASK2		CONFIG_SYS_CPLD_AMASK
139*4882a593Smuzhiyun #define CONFIG_SYS_CSOR2		CONFIG_SYS_CPLD_CSOR
140*4882a593Smuzhiyun #define CONFIG_SYS_CS2_FTIM0		CONFIG_SYS_CPLD_FTIM0
141*4882a593Smuzhiyun #define CONFIG_SYS_CS2_FTIM1		CONFIG_SYS_CPLD_FTIM1
142*4882a593Smuzhiyun #define CONFIG_SYS_CS2_FTIM2		CONFIG_SYS_CPLD_FTIM2
143*4882a593Smuzhiyun #define CONFIG_SYS_CS2_FTIM3		CONFIG_SYS_CPLD_FTIM3
144*4882a593Smuzhiyun 
145*4882a593Smuzhiyun /* EEPROM */
146*4882a593Smuzhiyun #define CONFIG_ID_EEPROM
147*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_NXID
148*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_BUS_NUM		0
149*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR		0x53
150*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		1
151*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS	3
152*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS	5
153*4882a593Smuzhiyun #define I2C_RETIMER_ADDR			0x18
154*4882a593Smuzhiyun 
155*4882a593Smuzhiyun /* PMIC */
156*4882a593Smuzhiyun #define CONFIG_POWER
157*4882a593Smuzhiyun #ifdef CONFIG_POWER
158*4882a593Smuzhiyun #define CONFIG_POWER_I2C
159*4882a593Smuzhiyun #endif
160*4882a593Smuzhiyun 
161*4882a593Smuzhiyun /*
162*4882a593Smuzhiyun  * Environment
163*4882a593Smuzhiyun  */
164*4882a593Smuzhiyun #ifndef SPL_NO_ENV
165*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE
166*4882a593Smuzhiyun #endif
167*4882a593Smuzhiyun 
168*4882a593Smuzhiyun #if defined(CONFIG_SD_BOOT)
169*4882a593Smuzhiyun #define CONFIG_SYS_MMC_ENV_DEV		0
170*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET		(3 * 1024 * 1024)
171*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			0x2000
172*4882a593Smuzhiyun #else
173*4882a593Smuzhiyun #define CONFIG_ENV_SIZE			0x2000		/* 8KB */
174*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET		0x300000	/* 3MB */
175*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE		0x40000		/* 256KB */
176*4882a593Smuzhiyun #endif
177*4882a593Smuzhiyun 
178*4882a593Smuzhiyun #define AQR105_IRQ_MASK			0x80000000
179*4882a593Smuzhiyun /* FMan */
180*4882a593Smuzhiyun #ifndef SPL_NO_FMAN
181*4882a593Smuzhiyun 
182*4882a593Smuzhiyun #ifdef CONFIG_NET
183*4882a593Smuzhiyun #define CONFIG_PHY_REALTEK
184*4882a593Smuzhiyun #endif
185*4882a593Smuzhiyun 
186*4882a593Smuzhiyun #ifdef CONFIG_SYS_DPAA_FMAN
187*4882a593Smuzhiyun #define CONFIG_FMAN_ENET
188*4882a593Smuzhiyun #define CONFIG_PHY_AQUANTIA
189*4882a593Smuzhiyun #define CONFIG_PHYLIB_10G
190*4882a593Smuzhiyun #define RGMII_PHY1_ADDR			0x1
191*4882a593Smuzhiyun #define RGMII_PHY2_ADDR			0x2
192*4882a593Smuzhiyun 
193*4882a593Smuzhiyun #define SGMII_PHY1_ADDR			0x3
194*4882a593Smuzhiyun #define SGMII_PHY2_ADDR			0x4
195*4882a593Smuzhiyun 
196*4882a593Smuzhiyun #define FM1_10GEC1_PHY_ADDR		0x0
197*4882a593Smuzhiyun 
198*4882a593Smuzhiyun #define CONFIG_ETHPRIME			"FM1@DTSEC3"
199*4882a593Smuzhiyun #endif
200*4882a593Smuzhiyun 
201*4882a593Smuzhiyun #endif
202*4882a593Smuzhiyun 
203*4882a593Smuzhiyun /* QSPI device */
204*4882a593Smuzhiyun #ifndef SPL_NO_QSPI
205*4882a593Smuzhiyun #ifdef CONFIG_FSL_QSPI
206*4882a593Smuzhiyun #define CONFIG_SPI_FLASH_SPANSION
207*4882a593Smuzhiyun #define FSL_QSPI_FLASH_SIZE		(1 << 26)
208*4882a593Smuzhiyun #define FSL_QSPI_FLASH_NUM		2
209*4882a593Smuzhiyun #endif
210*4882a593Smuzhiyun #endif
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun /* USB */
213*4882a593Smuzhiyun #ifndef SPL_NO_USB
214*4882a593Smuzhiyun #define CONFIG_HAS_FSL_XHCI_USB
215*4882a593Smuzhiyun #ifdef CONFIG_HAS_FSL_XHCI_USB
216*4882a593Smuzhiyun #define CONFIG_USB_XHCI_FSL
217*4882a593Smuzhiyun #define CONFIG_USB_MAX_CONTROLLER_COUNT         3
218*4882a593Smuzhiyun #endif
219*4882a593Smuzhiyun #endif
220*4882a593Smuzhiyun 
221*4882a593Smuzhiyun /* SATA */
222*4882a593Smuzhiyun #ifndef SPL_NO_SATA
223*4882a593Smuzhiyun #define CONFIG_LIBATA
224*4882a593Smuzhiyun #define CONFIG_SCSI_AHCI
225*4882a593Smuzhiyun #define CONFIG_SCSI_AHCI_PLAT
226*4882a593Smuzhiyun 
227*4882a593Smuzhiyun #define CONFIG_SYS_SATA				AHCI_BASE_ADDR
228*4882a593Smuzhiyun 
229*4882a593Smuzhiyun #define CONFIG_SYS_SCSI_MAX_SCSI_ID		1
230*4882a593Smuzhiyun #define CONFIG_SYS_SCSI_MAX_LUN			1
231*4882a593Smuzhiyun #define CONFIG_SYS_SCSI_MAX_DEVICE		(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
232*4882a593Smuzhiyun 						CONFIG_SYS_SCSI_MAX_LUN)
233*4882a593Smuzhiyun #endif
234*4882a593Smuzhiyun 
235*4882a593Smuzhiyun #ifndef SPL_NO_MISC
236*4882a593Smuzhiyun #undef CONFIG_BOOTCOMMAND
237*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND "run distro_bootcmd; env exists secureboot"	\
238*4882a593Smuzhiyun 			   "&& esbc_halt; run qspi_bootcmd;"
239*4882a593Smuzhiyun #define MTDPARTS_DEFAULT "mtdparts=1550000.quadspi:1m(rcw)," \
240*4882a593Smuzhiyun 			"15m(u-boot),48m(kernel.itb);" \
241*4882a593Smuzhiyun 			"7e800000.flash:16m(nand_uboot)," \
242*4882a593Smuzhiyun 			"48m(nand_kernel),448m(nand_free)"
243*4882a593Smuzhiyun #endif
244*4882a593Smuzhiyun 
245*4882a593Smuzhiyun #include <asm/fsl_secure_boot.h>
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun #endif /* __LS1046ARDB_H__ */
248