blob: aaf28a346d05de82bc741b0adc9bd4974f89cdd1 [file] [log] [blame]
Tom Rini83d290c2018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Wang Huan550e3dc2014-09-05 13:52:44 +08002/*
3 * Copyright 2014 Freescale Semiconductor, Inc.
Biwen Li9ebde882019-12-31 15:33:44 +08004 * Copyright 2019 NXP
Wang Huan550e3dc2014-09-05 13:52:44 +08005 */
6
7#ifndef __CONFIG_H
8#define __CONFIG_H
9
Wang Huan550e3dc2014-09-05 13:52:44 +080010#define CONFIG_SYS_INIT_RAM_ADDR OCRAM_BASE_ADDR
11#define CONFIG_SYS_INIT_RAM_SIZE OCRAM_SIZE
12
Alison Wang86949c22014-12-03 15:00:47 +080013#ifdef CONFIG_SD_BOOT
Alison Wang7ee52af2015-10-30 22:45:38 +080014#define CONFIG_SYS_MONITOR_LEN 0xc0000
Alison Wang86949c22014-12-03 15:00:47 +080015#endif
16
Alison Wang8ab967b2014-12-09 17:38:14 +080017#ifdef CONFIG_NAND_BOOT
Alison Wang8ab967b2014-12-09 17:38:14 +080018#define CONFIG_SYS_NAND_U_BOOT_SIZE (400 << 10)
Alison Wang8ab967b2014-12-09 17:38:14 +080019#define CONFIG_SYS_NAND_U_BOOT_DST CONFIG_SYS_TEXT_BASE
20#define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
21
Alison Wang8ab967b2014-12-09 17:38:14 +080022#define CONFIG_SYS_MONITOR_LEN 0x80000
23#endif
24
Wang Huan550e3dc2014-09-05 13:52:44 +080025#define SPD_EEPROM_ADDRESS 0x51
Wang Huan550e3dc2014-09-05 13:52:44 +080026
Wang Huan550e3dc2014-09-05 13:52:44 +080027#define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000UL
28#define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE
29
Wang Huan550e3dc2014-09-05 13:52:44 +080030#ifdef CONFIG_DDR_ECC
Wang Huan550e3dc2014-09-05 13:52:44 +080031#define CONFIG_MEM_INIT_VALUE 0xdeadbeef
32#endif
33
Wang Huan550e3dc2014-09-05 13:52:44 +080034/*
35 * IFC Definitions
36 */
Alison Wang70097022016-02-02 15:16:23 +080037#if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI)
Wang Huan550e3dc2014-09-05 13:52:44 +080038#define CONFIG_SYS_FLASH_BASE 0x60000000
39#define CONFIG_SYS_FLASH_BASE_PHYS CONFIG_SYS_FLASH_BASE
40
41#define CONFIG_SYS_NOR0_CSPR_EXT (0x0)
42#define CONFIG_SYS_NOR0_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | \
43 CSPR_PORT_SIZE_16 | \
44 CSPR_MSEL_NOR | \
45 CSPR_V)
46#define CONFIG_SYS_NOR1_CSPR_EXT (0x0)
47#define CONFIG_SYS_NOR1_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS \
48 + 0x8000000) | \
49 CSPR_PORT_SIZE_16 | \
50 CSPR_MSEL_NOR | \
51 CSPR_V)
52#define CONFIG_SYS_NOR_AMASK IFC_AMASK(128 * 1024 * 1024)
53
54#define CONFIG_SYS_NOR_CSOR (CSOR_NOR_ADM_SHIFT(4) | \
55 CSOR_NOR_TRHZ_80)
56#define CONFIG_SYS_NOR_FTIM0 (FTIM0_NOR_TACSE(0x4) | \
57 FTIM0_NOR_TEADC(0x5) | \
58 FTIM0_NOR_TEAHC(0x5))
59#define CONFIG_SYS_NOR_FTIM1 (FTIM1_NOR_TACO(0x35) | \
60 FTIM1_NOR_TRAD_NOR(0x1a) | \
61 FTIM1_NOR_TSEQRAD_NOR(0x13))
62#define CONFIG_SYS_NOR_FTIM2 (FTIM2_NOR_TCS(0x4) | \
63 FTIM2_NOR_TCH(0x4) | \
64 FTIM2_NOR_TWPH(0xe) | \
65 FTIM2_NOR_TWP(0x1c))
66#define CONFIG_SYS_NOR_FTIM3 0
67
Wang Huan550e3dc2014-09-05 13:52:44 +080068#define CONFIG_FLASH_SHOW_PROGRESS 45
Yuan Yao272c5262014-10-17 15:26:34 +080069#define CONFIG_SYS_WRITE_SWAPPED_DATA
Wang Huan550e3dc2014-09-05 13:52:44 +080070
Wang Huan550e3dc2014-09-05 13:52:44 +080071#define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE_PHYS, \
72 CONFIG_SYS_FLASH_BASE_PHYS + 0x8000000}
73
74/*
75 * NAND Flash Definitions
76 */
Wang Huan550e3dc2014-09-05 13:52:44 +080077
78#define CONFIG_SYS_NAND_BASE 0x7e800000
79#define CONFIG_SYS_NAND_BASE_PHYS CONFIG_SYS_NAND_BASE
80
81#define CONFIG_SYS_NAND_CSPR_EXT (0x0)
82
83#define CONFIG_SYS_NAND_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \
84 | CSPR_PORT_SIZE_8 \
85 | CSPR_MSEL_NAND \
86 | CSPR_V)
87#define CONFIG_SYS_NAND_AMASK IFC_AMASK(64*1024)
88#define CONFIG_SYS_NAND_CSOR (CSOR_NAND_ECC_ENC_EN /* ECC on encode */ \
89 | CSOR_NAND_ECC_DEC_EN /* ECC on decode */ \
90 | CSOR_NAND_ECC_MODE_4 /* 4-bit ECC */ \
91 | CSOR_NAND_RAL_3 /* RAL = 3 Bytes */ \
92 | CSOR_NAND_PGS_2K /* Page Size = 2K */ \
93 | CSOR_NAND_SPRZ_64 /* Spare size = 64 */ \
94 | CSOR_NAND_PB(64)) /* 64 Pages Per Block */
95
Wang Huan550e3dc2014-09-05 13:52:44 +080096#define CONFIG_SYS_NAND_FTIM0 (FTIM0_NAND_TCCST(0x7) | \
97 FTIM0_NAND_TWP(0x18) | \
98 FTIM0_NAND_TWCHT(0x7) | \
99 FTIM0_NAND_TWH(0xa))
100#define CONFIG_SYS_NAND_FTIM1 (FTIM1_NAND_TADLE(0x32) | \
101 FTIM1_NAND_TWBE(0x39) | \
102 FTIM1_NAND_TRR(0xe) | \
103 FTIM1_NAND_TRP(0x18))
104#define CONFIG_SYS_NAND_FTIM2 (FTIM2_NAND_TRAD(0xf) | \
105 FTIM2_NAND_TREH(0xa) | \
106 FTIM2_NAND_TWHRE(0x1e))
107#define CONFIG_SYS_NAND_FTIM3 0x0
108
109#define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE }
110#define CONFIG_SYS_MAX_NAND_DEVICE 1
Alison Wangd612f0a2014-12-09 17:38:02 +0800111#endif
Wang Huan550e3dc2014-09-05 13:52:44 +0800112
113/*
114 * QIXIS Definitions
115 */
Wang Huan550e3dc2014-09-05 13:52:44 +0800116
117#ifdef CONFIG_FSL_QIXIS
118#define QIXIS_BASE 0x7fb00000
119#define QIXIS_BASE_PHYS QIXIS_BASE
120#define CONFIG_SYS_I2C_FPGA_ADDR 0x66
121#define QIXIS_LBMAP_SWITCH 6
122#define QIXIS_LBMAP_MASK 0x0f
123#define QIXIS_LBMAP_SHIFT 0
124#define QIXIS_LBMAP_DFLTBANK 0x00
125#define QIXIS_LBMAP_ALTBANK 0x04
Hongbo Zhangaeb901f2016-07-21 18:09:38 +0800126#define QIXIS_PWR_CTL 0x21
127#define QIXIS_PWR_CTL_POWEROFF 0x80
Wang Huan550e3dc2014-09-05 13:52:44 +0800128#define QIXIS_RST_CTL_RESET 0x44
129#define QIXIS_RCFG_CTL_RECONFIG_IDLE 0x20
130#define QIXIS_RCFG_CTL_RECONFIG_START 0x21
131#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE 0x08
Hongbo Zhang349cfc92016-08-19 17:20:31 +0800132#define QIXIS_CTL_SYS 0x5
133#define QIXIS_CTL_SYS_EVTSW_MASK 0x0c
134#define QIXIS_CTL_SYS_EVTSW_IRQ 0x04
135#define QIXIS_RST_FORCE_3 0x45
136#define QIXIS_RST_FORCE_3_PCIESLOT1 0x80
137#define QIXIS_PWR_CTL2 0x21
138#define QIXIS_PWR_CTL2_PCTL 0x2
Wang Huan550e3dc2014-09-05 13:52:44 +0800139
140#define CONFIG_SYS_FPGA_CSPR_EXT (0x0)
141#define CONFIG_SYS_FPGA_CSPR (CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) | \
142 CSPR_PORT_SIZE_8 | \
143 CSPR_MSEL_GPCM | \
144 CSPR_V)
145#define CONFIG_SYS_FPGA_AMASK IFC_AMASK(64 * 1024)
146#define CONFIG_SYS_FPGA_CSOR (CSOR_NOR_ADM_SHIFT(4) | \
147 CSOR_NOR_NOR_MODE_AVD_NOR | \
148 CSOR_NOR_TRHZ_80)
149
150/*
151 * QIXIS Timing parameters for IFC GPCM
152 */
153#define CONFIG_SYS_FPGA_FTIM0 (FTIM0_GPCM_TACSE(0xe) | \
154 FTIM0_GPCM_TEADC(0xe) | \
155 FTIM0_GPCM_TEAHC(0xe))
156#define CONFIG_SYS_FPGA_FTIM1 (FTIM1_GPCM_TACO(0xe) | \
157 FTIM1_GPCM_TRAD(0x1f))
158#define CONFIG_SYS_FPGA_FTIM2 (FTIM2_GPCM_TCS(0xe) | \
159 FTIM2_GPCM_TCH(0xe) | \
160 FTIM2_GPCM_TWP(0xf0))
161#define CONFIG_SYS_FPGA_FTIM3 0x0
162#endif
163
Alison Wang8ab967b2014-12-09 17:38:14 +0800164#if defined(CONFIG_NAND_BOOT)
165#define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NAND_CSPR_EXT
166#define CONFIG_SYS_CSPR0 CONFIG_SYS_NAND_CSPR
167#define CONFIG_SYS_AMASK0 CONFIG_SYS_NAND_AMASK
168#define CONFIG_SYS_CSOR0 CONFIG_SYS_NAND_CSOR
169#define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NAND_FTIM0
170#define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NAND_FTIM1
171#define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NAND_FTIM2
172#define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NAND_FTIM3
173#define CONFIG_SYS_CSPR1_EXT CONFIG_SYS_NOR0_CSPR_EXT
174#define CONFIG_SYS_CSPR1 CONFIG_SYS_NOR0_CSPR
175#define CONFIG_SYS_AMASK1 CONFIG_SYS_NOR_AMASK
176#define CONFIG_SYS_CSOR1 CONFIG_SYS_NOR_CSOR
177#define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NOR_FTIM0
178#define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NOR_FTIM1
179#define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NOR_FTIM2
180#define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NOR_FTIM3
181#define CONFIG_SYS_CSPR2_EXT CONFIG_SYS_NOR1_CSPR_EXT
182#define CONFIG_SYS_CSPR2 CONFIG_SYS_NOR1_CSPR
183#define CONFIG_SYS_AMASK2 CONFIG_SYS_NOR_AMASK
184#define CONFIG_SYS_CSOR2 CONFIG_SYS_NOR_CSOR
185#define CONFIG_SYS_CS2_FTIM0 CONFIG_SYS_NOR_FTIM0
186#define CONFIG_SYS_CS2_FTIM1 CONFIG_SYS_NOR_FTIM1
187#define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NOR_FTIM2
188#define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NOR_FTIM3
189#define CONFIG_SYS_CSPR3_EXT CONFIG_SYS_FPGA_CSPR_EXT
190#define CONFIG_SYS_CSPR3 CONFIG_SYS_FPGA_CSPR
191#define CONFIG_SYS_AMASK3 CONFIG_SYS_FPGA_AMASK
192#define CONFIG_SYS_CSOR3 CONFIG_SYS_FPGA_CSOR
193#define CONFIG_SYS_CS3_FTIM0 CONFIG_SYS_FPGA_FTIM0
194#define CONFIG_SYS_CS3_FTIM1 CONFIG_SYS_FPGA_FTIM1
195#define CONFIG_SYS_CS3_FTIM2 CONFIG_SYS_FPGA_FTIM2
196#define CONFIG_SYS_CS3_FTIM3 CONFIG_SYS_FPGA_FTIM3
197#else
Wang Huan550e3dc2014-09-05 13:52:44 +0800198#define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NOR0_CSPR_EXT
199#define CONFIG_SYS_CSPR0 CONFIG_SYS_NOR0_CSPR
200#define CONFIG_SYS_AMASK0 CONFIG_SYS_NOR_AMASK
201#define CONFIG_SYS_CSOR0 CONFIG_SYS_NOR_CSOR
202#define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NOR_FTIM0
203#define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NOR_FTIM1
204#define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NOR_FTIM2
205#define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NOR_FTIM3
206#define CONFIG_SYS_CSPR1_EXT CONFIG_SYS_NOR1_CSPR_EXT
207#define CONFIG_SYS_CSPR1 CONFIG_SYS_NOR1_CSPR
208#define CONFIG_SYS_AMASK1 CONFIG_SYS_NOR_AMASK
209#define CONFIG_SYS_CSOR1 CONFIG_SYS_NOR_CSOR
210#define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NOR_FTIM0
211#define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NOR_FTIM1
212#define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NOR_FTIM2
213#define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NOR_FTIM3
214#define CONFIG_SYS_CSPR2_EXT CONFIG_SYS_NAND_CSPR_EXT
215#define CONFIG_SYS_CSPR2 CONFIG_SYS_NAND_CSPR
216#define CONFIG_SYS_AMASK2 CONFIG_SYS_NAND_AMASK
217#define CONFIG_SYS_CSOR2 CONFIG_SYS_NAND_CSOR
218#define CONFIG_SYS_CS2_FTIM0 CONFIG_SYS_NAND_FTIM0
219#define CONFIG_SYS_CS2_FTIM1 CONFIG_SYS_NAND_FTIM1
220#define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NAND_FTIM2
221#define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NAND_FTIM3
222#define CONFIG_SYS_CSPR3_EXT CONFIG_SYS_FPGA_CSPR_EXT
223#define CONFIG_SYS_CSPR3 CONFIG_SYS_FPGA_CSPR
224#define CONFIG_SYS_AMASK3 CONFIG_SYS_FPGA_AMASK
225#define CONFIG_SYS_CSOR3 CONFIG_SYS_FPGA_CSOR
226#define CONFIG_SYS_CS3_FTIM0 CONFIG_SYS_FPGA_FTIM0
227#define CONFIG_SYS_CS3_FTIM1 CONFIG_SYS_FPGA_FTIM1
228#define CONFIG_SYS_CS3_FTIM2 CONFIG_SYS_FPGA_FTIM2
229#define CONFIG_SYS_CS3_FTIM3 CONFIG_SYS_FPGA_FTIM3
Alison Wang8ab967b2014-12-09 17:38:14 +0800230#endif
Wang Huan550e3dc2014-09-05 13:52:44 +0800231
232/*
233 * Serial Port
234 */
Tom Rinidb48e522022-03-23 17:20:00 -0400235#ifndef CONFIG_LPUART
Wang Huan550e3dc2014-09-05 13:52:44 +0800236#define CONFIG_SYS_NS16550_SERIAL
York Sund83b47b2016-02-08 13:04:17 -0800237#ifndef CONFIG_DM_SERIAL
Wang Huan550e3dc2014-09-05 13:52:44 +0800238#define CONFIG_SYS_NS16550_REG_SIZE 1
York Sund83b47b2016-02-08 13:04:17 -0800239#endif
Wang Huan550e3dc2014-09-05 13:52:44 +0800240#define CONFIG_SYS_NS16550_CLK get_serial_clock()
Alison Wang8fc21212015-01-04 15:30:58 +0800241#endif
Wang Huan550e3dc2014-09-05 13:52:44 +0800242
Wang Huan550e3dc2014-09-05 13:52:44 +0800243/*
244 * I2C
245 */
Wang Huan550e3dc2014-09-05 13:52:44 +0800246
Biwen Lid58ea632021-02-05 19:02:03 +0800247/* GPIO */
Biwen Lid58ea632021-02-05 19:02:03 +0800248
Jagdish Gediya73dc91f2018-05-10 04:04:29 +0530249/* EEPROM */
Jagdish Gediya73dc91f2018-05-10 04:04:29 +0530250#define CONFIG_SYS_I2C_EEPROM_NXID
251#define CONFIG_SYS_EEPROM_BUS_NUM 0
Jagdish Gediya73dc91f2018-05-10 04:04:29 +0530252
Wang Huan550e3dc2014-09-05 13:52:44 +0800253/*
254 * I2C bus multiplexer
255 */
256#define I2C_MUX_PCA_ADDR_PRI 0x77
257#define I2C_MUX_CH_DEFAULT 0x8
Xiubo Lidd048322014-12-16 14:50:33 +0800258#define I2C_MUX_CH_CH7301 0xC
Wang Huan550e3dc2014-09-05 13:52:44 +0800259
260/*
261 * MMC
262 */
Wang Huan550e3dc2014-09-05 13:52:44 +0800263
264/*
265 * eTSEC
266 */
Wang Huan550e3dc2014-09-05 13:52:44 +0800267
268#ifdef CONFIG_TSEC_ENET
Wang Huan550e3dc2014-09-05 13:52:44 +0800269#define CONFIG_MII_DEFAULT_TSEC 3
270#define CONFIG_TSEC1 1
271#define CONFIG_TSEC1_NAME "eTSEC1"
272#define CONFIG_TSEC2 1
273#define CONFIG_TSEC2_NAME "eTSEC2"
274#define CONFIG_TSEC3 1
275#define CONFIG_TSEC3_NAME "eTSEC3"
276
277#define TSEC1_PHY_ADDR 1
278#define TSEC2_PHY_ADDR 2
279#define TSEC3_PHY_ADDR 3
280
281#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
282#define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
283#define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
284
285#define TSEC1_PHYIDX 0
286#define TSEC2_PHYIDX 0
287#define TSEC3_PHYIDX 0
Wang Huan550e3dc2014-09-05 13:52:44 +0800288#endif
Minghuan Lianda419022014-10-31 13:43:44 +0800289
Xiubo Li1a2826f2014-11-21 17:40:57 +0800290#define CONFIG_PEN_ADDR_BIG_ENDIAN
291#define CONFIG_SMP_PEN_ADDR 0x01ee0200
Xiubo Li1a2826f2014-11-21 17:40:57 +0800292
Wang Huan550e3dc2014-09-05 13:52:44 +0800293#define CONFIG_HWCONFIG
Zhuoyu Zhang03c22442015-08-17 18:55:12 +0800294#define HWCONFIG_BUFFER_SIZE 256
295
296#define CONFIG_FSL_DEVICE_DISABLE
Wang Huan550e3dc2014-09-05 13:52:44 +0800297
Alison Wang8fc21212015-01-04 15:30:58 +0800298#ifdef CONFIG_LPUART
299#define CONFIG_EXTRA_ENV_SETTINGS \
300 "bootargs=root=/dev/ram0 rw console=ttyLP0,115200\0" \
Alison Wang99fe4542015-11-05 11:16:26 +0800301 "initrd_high=0xffffffff\0" \
Alison Wang8fc21212015-01-04 15:30:58 +0800302 "hwconfig=fsl_ddr:ctlr_intlv=null,bank_intlv=null\0"
303#else
Wang Huan550e3dc2014-09-05 13:52:44 +0800304#define CONFIG_EXTRA_ENV_SETTINGS \
305 "bootargs=root=/dev/ram0 rw console=ttyS0,115200\0" \
Alison Wang99fe4542015-11-05 11:16:26 +0800306 "initrd_high=0xffffffff\0" \
Wang Huan550e3dc2014-09-05 13:52:44 +0800307 "hwconfig=fsl_ddr:ctlr_intlv=null,bank_intlv=null\0"
Alison Wang8fc21212015-01-04 15:30:58 +0800308#endif
Wang Huan550e3dc2014-09-05 13:52:44 +0800309
310/*
311 * Miscellaneous configurable options
312 */
Alison Wangc463eeb2020-02-03 15:25:19 +0800313#define CONFIG_SYS_BOOTMAPSZ (256 << 20)
Wang Huan550e3dc2014-09-05 13:52:44 +0800314
Xiubo Li660673a2014-11-21 17:40:59 +0800315#define CONFIG_LS102XA_STREAM_ID
316
Wang Huan550e3dc2014-09-05 13:52:44 +0800317/*
318 * Environment
319 */
Wang Huan550e3dc2014-09-05 13:52:44 +0800320
Aneesh Bansalef6c55a2016-01-22 16:37:22 +0530321#include <asm/fsl_secure_boot.h>
Ruchika Gupta4ba4a092014-10-15 11:39:06 +0530322
Wang Huan550e3dc2014-09-05 13:52:44 +0800323#endif