xref: /OK3568_Linux_fs/u-boot/include/configs/km8360.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * (C) Copyright 2012
3*4882a593Smuzhiyun  * Holger Brunck, Keymile GmbH Hannover, <holger.brunck@keymile.com>
4*4882a593Smuzhiyun  * Christian Herzig, Keymile AG Switzerland, <christian.herzig@keymile.com>
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #ifndef __CONFIG_H
10*4882a593Smuzhiyun #define __CONFIG_H
11*4882a593Smuzhiyun 
12*4882a593Smuzhiyun /* KMBEC FPGA (PRIO) */
13*4882a593Smuzhiyun #define CONFIG_SYS_KMBEC_FPGA_BASE	0xE8000000
14*4882a593Smuzhiyun #define CONFIG_SYS_KMBEC_FPGA_SIZE	64
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #if defined CONFIG_KMETER1
17*4882a593Smuzhiyun #define CONFIG_HOSTNAME		kmeter1
18*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME   "kmeter1"
19*4882a593Smuzhiyun #define CONFIG_KM_DEF_NETDEV	"netdev=eth2\0"
20*4882a593Smuzhiyun #elif defined CONFIG_KMCOGE5NE
21*4882a593Smuzhiyun #define CONFIG_HOSTNAME		kmcoge5ne
22*4882a593Smuzhiyun #define CONFIG_KM_BOARD_NAME	"kmcoge5ne"
23*4882a593Smuzhiyun #define CONFIG_KM_DEF_NETDEV	"netdev=eth1\0"
24*4882a593Smuzhiyun #define CONFIG_NAND_ECC_BCH
25*4882a593Smuzhiyun #define CONFIG_NAND_KMETER1
26*4882a593Smuzhiyun #define CONFIG_SYS_MAX_NAND_DEVICE		1
27*4882a593Smuzhiyun #define NAND_MAX_CHIPS				1
28*4882a593Smuzhiyun #define CONFIG_SYS_NAND_BASE CONFIG_SYS_KMBEC_FPGA_BASE /* PRIO_BASE_ADDRESS */
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun #define CONFIG_KM_UBI_PARTITION_NAME_BOOT	"ubi0"
31*4882a593Smuzhiyun #define CONFIG_KM_UBI_PARTITION_NAME_APP	"ubi1"
32*4882a593Smuzhiyun #define MTDIDS_DEFAULT			"nor0=boot,nand0=app"
33*4882a593Smuzhiyun 
34*4882a593Smuzhiyun #define MTDPARTS_DEFAULT		"mtdparts="			\
35*4882a593Smuzhiyun 	"boot:"								\
36*4882a593Smuzhiyun 		"768k(u-boot),"						\
37*4882a593Smuzhiyun 		"128k(env),"						\
38*4882a593Smuzhiyun 		"128k(envred),"						\
39*4882a593Smuzhiyun 		"-(" CONFIG_KM_UBI_PARTITION_NAME_BOOT ");"		\
40*4882a593Smuzhiyun 	"app:"								\
41*4882a593Smuzhiyun 		"-(" CONFIG_KM_UBI_PARTITION_NAME_APP ");"
42*4882a593Smuzhiyun #else
43*4882a593Smuzhiyun #error ("Board not supported")
44*4882a593Smuzhiyun #endif
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun /*
47*4882a593Smuzhiyun  * High Level Configuration Options
48*4882a593Smuzhiyun  */
49*4882a593Smuzhiyun #define CONFIG_QE			/* Has QE */
50*4882a593Smuzhiyun #define CONFIG_MPC8360			/* MPC8360 CPU specific */
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun #define	CONFIG_SYS_TEXT_BASE	0xF0000000
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun /* include common defines/options for all 83xx Keymile boards */
55*4882a593Smuzhiyun #include "km/km83xx-common.h"
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun /*
58*4882a593Smuzhiyun  * System IO Setup
59*4882a593Smuzhiyun  */
60*4882a593Smuzhiyun #define CONFIG_SYS_SICRH		(SICRH_UC1EOBI | SICRH_UC2E1OBI)
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun /*
63*4882a593Smuzhiyun  * Hardware Reset Configuration Word
64*4882a593Smuzhiyun  */
65*4882a593Smuzhiyun #define CONFIG_SYS_HRCW_LOW (\
66*4882a593Smuzhiyun 	HRCWL_CSB_TO_CLKIN_4X1 | \
67*4882a593Smuzhiyun 	HRCWL_CORE_TO_CSB_2X1 | \
68*4882a593Smuzhiyun 	HRCWL_CE_PLL_VCO_DIV_2 | \
69*4882a593Smuzhiyun 	HRCWL_CE_TO_PLL_1X6)
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun #define CONFIG_SYS_HRCW_HIGH (\
72*4882a593Smuzhiyun 	HRCWH_CORE_ENABLE | \
73*4882a593Smuzhiyun 	HRCWH_FROM_0X00000100 | \
74*4882a593Smuzhiyun 	HRCWH_BOOTSEQ_DISABLE | \
75*4882a593Smuzhiyun 	HRCWH_SW_WATCHDOG_DISABLE | \
76*4882a593Smuzhiyun 	HRCWH_ROM_LOC_LOCAL_16BIT | \
77*4882a593Smuzhiyun 	HRCWH_BIG_ENDIAN | \
78*4882a593Smuzhiyun 	HRCWH_LALE_EARLY | \
79*4882a593Smuzhiyun 	HRCWH_LDP_CLEAR)
80*4882a593Smuzhiyun 
81*4882a593Smuzhiyun /**
82*4882a593Smuzhiyun  * DDR RAM settings
83*4882a593Smuzhiyun  */
84*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SDRAM_CFG (\
85*4882a593Smuzhiyun 	SDRAM_CFG_SDRAM_TYPE_DDR2 | \
86*4882a593Smuzhiyun 	SDRAM_CFG_SREN | \
87*4882a593Smuzhiyun 	SDRAM_CFG_HSE)
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun #define CONFIG_SYS_DDR_SDRAM_CFG2	0x00401000
90*4882a593Smuzhiyun 
91*4882a593Smuzhiyun #ifdef CONFIG_KMCOGE5NE
92*4882a593Smuzhiyun /**
93*4882a593Smuzhiyun  * KMCOGE5NE has 512 MB RAM
94*4882a593Smuzhiyun  */
95*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG (\
96*4882a593Smuzhiyun 	CSCONFIG_EN | \
97*4882a593Smuzhiyun 	CSCONFIG_AP | \
98*4882a593Smuzhiyun 	CSCONFIG_ODT_WR_ONLY_CURRENT | \
99*4882a593Smuzhiyun 	CSCONFIG_BANK_BIT_3 | \
100*4882a593Smuzhiyun 	CSCONFIG_ROW_BIT_13 | \
101*4882a593Smuzhiyun 	CSCONFIG_COL_BIT_10)
102*4882a593Smuzhiyun #else
103*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_CONFIG	(CSCONFIG_EN | CSCONFIG_AP | \
104*4882a593Smuzhiyun 					 CSCONFIG_ROW_BIT_13 | \
105*4882a593Smuzhiyun 					 CSCONFIG_COL_BIT_10 | \
106*4882a593Smuzhiyun 					 CSCONFIG_ODT_WR_ONLY_CURRENT)
107*4882a593Smuzhiyun #endif
108*4882a593Smuzhiyun 
109*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CLK_CNTL (\
110*4882a593Smuzhiyun 	DDR_SDRAM_CLK_CNTL_CLK_ADJUST_05)
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun #define CONFIG_SYS_DDR_INTERVAL (\
113*4882a593Smuzhiyun 	(0x080 << SDRAM_INTERVAL_BSTOPRE_SHIFT) | \
114*4882a593Smuzhiyun 	(0x203 << SDRAM_INTERVAL_REFINT_SHIFT))
115*4882a593Smuzhiyun 
116*4882a593Smuzhiyun #define CONFIG_SYS_DDR_CS0_BNDS			0x0000007f
117*4882a593Smuzhiyun 
118*4882a593Smuzhiyun #define CONFIG_SYS_DDRCDR (\
119*4882a593Smuzhiyun 	DDRCDR_EN | \
120*4882a593Smuzhiyun 	DDRCDR_Q_DRN)
121*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE		0x47860452
122*4882a593Smuzhiyun #define CONFIG_SYS_DDR_MODE2		0x8080c000
123*4882a593Smuzhiyun 
124*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_0 (\
125*4882a593Smuzhiyun 	(2 << TIMING_CFG0_MRS_CYC_SHIFT) | \
126*4882a593Smuzhiyun 	(8 << TIMING_CFG0_ODT_PD_EXIT_SHIFT) | \
127*4882a593Smuzhiyun 	(6 << TIMING_CFG0_PRE_PD_EXIT_SHIFT) | \
128*4882a593Smuzhiyun 	(2 << TIMING_CFG0_ACT_PD_EXIT_SHIFT) | \
129*4882a593Smuzhiyun 	(0 << TIMING_CFG0_WWT_SHIFT) | \
130*4882a593Smuzhiyun 	(0 << TIMING_CFG0_RRT_SHIFT) | \
131*4882a593Smuzhiyun 	(0 << TIMING_CFG0_WRT_SHIFT) | \
132*4882a593Smuzhiyun 	(0 << TIMING_CFG0_RWT_SHIFT))
133*4882a593Smuzhiyun 
134*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_1	((TIMING_CFG1_CASLAT_50) | \
135*4882a593Smuzhiyun 				 (2 << TIMING_CFG1_WRTORD_SHIFT) | \
136*4882a593Smuzhiyun 				 (2 << TIMING_CFG1_ACTTOACT_SHIFT) | \
137*4882a593Smuzhiyun 				 (3 << TIMING_CFG1_WRREC_SHIFT) | \
138*4882a593Smuzhiyun 				 (7 << TIMING_CFG1_REFREC_SHIFT) | \
139*4882a593Smuzhiyun 				 (3 << TIMING_CFG1_ACTTORW_SHIFT) | \
140*4882a593Smuzhiyun 				 (8 << TIMING_CFG1_ACTTOPRE_SHIFT) | \
141*4882a593Smuzhiyun 				 (3 << TIMING_CFG1_PRETOACT_SHIFT))
142*4882a593Smuzhiyun 
143*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_2 (\
144*4882a593Smuzhiyun 	(0xa << TIMING_CFG2_FOUR_ACT_SHIFT) | \
145*4882a593Smuzhiyun 	(3 << TIMING_CFG2_CKE_PLS_SHIFT) | \
146*4882a593Smuzhiyun 	(2 << TIMING_CFG2_WR_DATA_DELAY_SHIFT) | \
147*4882a593Smuzhiyun 	(2 << TIMING_CFG2_RD_TO_PRE_SHIFT) | \
148*4882a593Smuzhiyun 	(4 << TIMING_CFG2_WR_LAT_DELAY_SHIFT) | \
149*4882a593Smuzhiyun 	(5 << TIMING_CFG2_CPO_SHIFT) | \
150*4882a593Smuzhiyun 	(0 << TIMING_CFG2_ADD_LAT_SHIFT))
151*4882a593Smuzhiyun 
152*4882a593Smuzhiyun #define CONFIG_SYS_DDR_TIMING_3			0x00000000
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun /* EEprom support */
155*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN		2
156*4882a593Smuzhiyun 
157*4882a593Smuzhiyun /*
158*4882a593Smuzhiyun  * Local Bus Configuration & Clock Setup
159*4882a593Smuzhiyun  */
160*4882a593Smuzhiyun #define CONFIG_SYS_LCRR_DBYP		LCRR_DBYP
161*4882a593Smuzhiyun #define CONFIG_SYS_LCRR_EADC		LCRR_EADC_2
162*4882a593Smuzhiyun #define CONFIG_SYS_LCRR_CLKDIV		LCRR_CLKDIV_4
163*4882a593Smuzhiyun 
164*4882a593Smuzhiyun /*
165*4882a593Smuzhiyun  * PAXE on the local bus CS3
166*4882a593Smuzhiyun  */
167*4882a593Smuzhiyun #define CONFIG_SYS_PAXE_BASE		0xA0000000
168*4882a593Smuzhiyun #define CONFIG_SYS_PAXE_SIZE		256
169*4882a593Smuzhiyun 
170*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWBAR3_PRELIM	CONFIG_SYS_PAXE_BASE
171*4882a593Smuzhiyun 
172*4882a593Smuzhiyun #define CONFIG_SYS_LBLAWAR3_PRELIM	0x8000001C /* 512MB window size */
173*4882a593Smuzhiyun 
174*4882a593Smuzhiyun #define CONFIG_SYS_BR3_PRELIM (\
175*4882a593Smuzhiyun 	CONFIG_SYS_PAXE_BASE | \
176*4882a593Smuzhiyun 	(1 << BR_PS_SHIFT) | \
177*4882a593Smuzhiyun 	BR_V)
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun #define CONFIG_SYS_OR3_PRELIM (\
180*4882a593Smuzhiyun 	MEG_TO_AM(CONFIG_SYS_PAXE_SIZE) | \
181*4882a593Smuzhiyun 	OR_GPCM_CSNT | \
182*4882a593Smuzhiyun 	OR_GPCM_ACS_DIV2 | \
183*4882a593Smuzhiyun 	OR_GPCM_SCY_2 | \
184*4882a593Smuzhiyun 	OR_GPCM_TRLX | \
185*4882a593Smuzhiyun 	OR_GPCM_EAD)
186*4882a593Smuzhiyun 
187*4882a593Smuzhiyun #ifdef CONFIG_KMCOGE5NE
188*4882a593Smuzhiyun /*
189*4882a593Smuzhiyun  * BFTIC3 on the local bus CS4
190*4882a593Smuzhiyun  */
191*4882a593Smuzhiyun #define CONFIG_SYS_BFTIC3_BASE			0xB0000000
192*4882a593Smuzhiyun #define CONFIG_SYS_BFTIC3_SIZE			256
193*4882a593Smuzhiyun 
194*4882a593Smuzhiyun #define CONFIG_SYS_BR4_PRELIM (\
195*4882a593Smuzhiyun 	CONFIG_SYS_BFTIC3_BASE |\
196*4882a593Smuzhiyun 	(1 << BR_PS_SHIFT) | \
197*4882a593Smuzhiyun 	BR_V)
198*4882a593Smuzhiyun 
199*4882a593Smuzhiyun #define CONFIG_SYS_OR4_PRELIM (\
200*4882a593Smuzhiyun 	MEG_TO_AM(CONFIG_SYS_BFTIC3_SIZE) |\
201*4882a593Smuzhiyun 	OR_GPCM_CSNT | \
202*4882a593Smuzhiyun 	OR_GPCM_ACS_DIV2 |\
203*4882a593Smuzhiyun 	OR_GPCM_SCY_2 |\
204*4882a593Smuzhiyun 	OR_GPCM_TRLX |\
205*4882a593Smuzhiyun 	OR_GPCM_EAD)
206*4882a593Smuzhiyun #endif
207*4882a593Smuzhiyun 
208*4882a593Smuzhiyun /*
209*4882a593Smuzhiyun  * MMU Setup
210*4882a593Smuzhiyun  */
211*4882a593Smuzhiyun 
212*4882a593Smuzhiyun /* PAXE:  icache cacheable, but dcache-inhibit and guarded */
213*4882a593Smuzhiyun #define CONFIG_SYS_IBAT5L (\
214*4882a593Smuzhiyun 	CONFIG_SYS_PAXE_BASE | \
215*4882a593Smuzhiyun 	BATL_PP_10 | \
216*4882a593Smuzhiyun 	BATL_MEMCOHERENCE)
217*4882a593Smuzhiyun 
218*4882a593Smuzhiyun #define CONFIG_SYS_IBAT5U (\
219*4882a593Smuzhiyun 	CONFIG_SYS_PAXE_BASE | \
220*4882a593Smuzhiyun 	BATU_BL_256M | \
221*4882a593Smuzhiyun 	BATU_VS | \
222*4882a593Smuzhiyun 	BATU_VP)
223*4882a593Smuzhiyun 
224*4882a593Smuzhiyun #define CONFIG_SYS_DBAT5L (\
225*4882a593Smuzhiyun 	CONFIG_SYS_PAXE_BASE | \
226*4882a593Smuzhiyun 	BATL_PP_10 | \
227*4882a593Smuzhiyun 	BATL_CACHEINHIBIT | \
228*4882a593Smuzhiyun 	BATL_GUARDEDSTORAGE)
229*4882a593Smuzhiyun 
230*4882a593Smuzhiyun #define CONFIG_SYS_DBAT5U	CONFIG_SYS_IBAT5U
231*4882a593Smuzhiyun 
232*4882a593Smuzhiyun #ifdef CONFIG_KMCOGE5NE
233*4882a593Smuzhiyun /* BFTIC3:  icache cacheable, but dcache-inhibit and guarded */
234*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6L (\
235*4882a593Smuzhiyun 	CONFIG_SYS_BFTIC3_BASE | \
236*4882a593Smuzhiyun 	BATL_PP_10 | \
237*4882a593Smuzhiyun 	BATL_MEMCOHERENCE)
238*4882a593Smuzhiyun 
239*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6U (\
240*4882a593Smuzhiyun 	CONFIG_SYS_BFTIC3_BASE | \
241*4882a593Smuzhiyun 	BATU_BL_256M | \
242*4882a593Smuzhiyun 	BATU_VS | \
243*4882a593Smuzhiyun 	BATU_VP)
244*4882a593Smuzhiyun 
245*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6L (\
246*4882a593Smuzhiyun 	CONFIG_SYS_BFTIC3_BASE | \
247*4882a593Smuzhiyun 	BATL_PP_10 | \
248*4882a593Smuzhiyun 	BATL_CACHEINHIBIT | \
249*4882a593Smuzhiyun 	BATL_GUARDEDSTORAGE)
250*4882a593Smuzhiyun 
251*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6U	CONFIG_SYS_IBAT6U
252*4882a593Smuzhiyun 
253*4882a593Smuzhiyun /* DDR/LBC SDRAM next 256M: cacheable */
254*4882a593Smuzhiyun #define CONFIG_SYS_IBAT7L (\
255*4882a593Smuzhiyun 	CONFIG_SYS_SDRAM_BASE2 |\
256*4882a593Smuzhiyun 	BATL_PP_10 |\
257*4882a593Smuzhiyun 	BATL_CACHEINHIBIT |\
258*4882a593Smuzhiyun 	BATL_GUARDEDSTORAGE)
259*4882a593Smuzhiyun 
260*4882a593Smuzhiyun #define CONFIG_SYS_IBAT7U (\
261*4882a593Smuzhiyun 	CONFIG_SYS_SDRAM_BASE2 |\
262*4882a593Smuzhiyun 	BATU_BL_256M |\
263*4882a593Smuzhiyun 	BATU_VS |\
264*4882a593Smuzhiyun 	BATU_VP)
265*4882a593Smuzhiyun /* enable POST tests */
266*4882a593Smuzhiyun #define CONFIG_POST (CONFIG_SYS_POST_MEMORY|CONFIG_SYS_POST_MEM_REGIONS)
267*4882a593Smuzhiyun #define CONFIG_POST_EXTERNAL_WORD_FUNCS /* use own functions, not generic */
268*4882a593Smuzhiyun #define CPM_POST_WORD_ADDR  CONFIG_SYS_MEMTEST_END
269*4882a593Smuzhiyun #define CONFIG_TESTPIN_REG  gprt3	/* for kmcoge5ne */
270*4882a593Smuzhiyun #define CONFIG_TESTPIN_MASK 0x20	/* for kmcoge5ne */
271*4882a593Smuzhiyun 
272*4882a593Smuzhiyun #else
273*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6L	(0)
274*4882a593Smuzhiyun #define CONFIG_SYS_IBAT6U	(0)
275*4882a593Smuzhiyun #define CONFIG_SYS_IBAT7L	(0)
276*4882a593Smuzhiyun #define CONFIG_SYS_IBAT7U	(0)
277*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6L	CONFIG_SYS_IBAT6L
278*4882a593Smuzhiyun #define CONFIG_SYS_DBAT6U	CONFIG_SYS_IBAT6U
279*4882a593Smuzhiyun #endif
280*4882a593Smuzhiyun 
281*4882a593Smuzhiyun #define CONFIG_SYS_DBAT7L	CONFIG_SYS_IBAT7L
282*4882a593Smuzhiyun #define CONFIG_SYS_DBAT7U	CONFIG_SYS_IBAT7U
283*4882a593Smuzhiyun 
284*4882a593Smuzhiyun #endif /* CONFIG */
285