blob: 926c85805b79a9356c0078860054441de8f6b433 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001/* SPDX-License-Identifier: GPL-2.0+ */
Wang Huanf0ce7d62014-09-05 13:52:44 +08002/*
3 * Copyright 2014 Freescale Semiconductor, Inc.
Biwen Lid15aa9f2019-12-31 15:33:44 +08004 * Copyright 2019 NXP
Wang Huanf0ce7d62014-09-05 13:52:44 +08005 */
6
7#ifndef __CONFIG_H
8#define __CONFIG_H
9
Wang Huanf0ce7d62014-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 Wangab98bb52014-12-09 17:38:14 +080013#ifdef CONFIG_NAND_BOOT
Alison Wangab98bb52014-12-09 17:38:14 +080014#define CONFIG_SYS_NAND_U_BOOT_SIZE (400 << 10)
Simon Glass72cc5382022-10-20 18:22:39 -060015#define CONFIG_SYS_NAND_U_BOOT_DST CONFIG_TEXT_BASE
16#define CONFIG_SYS_NAND_U_BOOT_START CONFIG_TEXT_BASE
Alison Wangab98bb52014-12-09 17:38:14 +080017
Alison Wangab98bb52014-12-09 17:38:14 +080018#endif
19
Wang Huanf0ce7d62014-09-05 13:52:44 +080020#define SPD_EEPROM_ADDRESS 0x51
Wang Huanf0ce7d62014-09-05 13:52:44 +080021
Wang Huanf0ce7d62014-09-05 13:52:44 +080022#define CONFIG_SYS_DDR_SDRAM_BASE 0x80000000UL
23#define CONFIG_SYS_SDRAM_BASE CONFIG_SYS_DDR_SDRAM_BASE
24
Wang Huanf0ce7d62014-09-05 13:52:44 +080025#ifdef CONFIG_DDR_ECC
Wang Huanf0ce7d62014-09-05 13:52:44 +080026#define CONFIG_MEM_INIT_VALUE 0xdeadbeef
27#endif
28
Wang Huanf0ce7d62014-09-05 13:52:44 +080029/*
30 * IFC Definitions
31 */
Alison Wang34de5e42016-02-02 15:16:23 +080032#if !defined(CONFIG_QSPI_BOOT) && !defined(CONFIG_SD_BOOT_QSPI)
Wang Huanf0ce7d62014-09-05 13:52:44 +080033#define CONFIG_SYS_FLASH_BASE 0x60000000
34#define CONFIG_SYS_FLASH_BASE_PHYS CONFIG_SYS_FLASH_BASE
35
36#define CONFIG_SYS_NOR0_CSPR_EXT (0x0)
37#define CONFIG_SYS_NOR0_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS) | \
38 CSPR_PORT_SIZE_16 | \
39 CSPR_MSEL_NOR | \
40 CSPR_V)
41#define CONFIG_SYS_NOR1_CSPR_EXT (0x0)
42#define CONFIG_SYS_NOR1_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_FLASH_BASE_PHYS \
43 + 0x8000000) | \
44 CSPR_PORT_SIZE_16 | \
45 CSPR_MSEL_NOR | \
46 CSPR_V)
47#define CONFIG_SYS_NOR_AMASK IFC_AMASK(128 * 1024 * 1024)
48
49#define CONFIG_SYS_NOR_CSOR (CSOR_NOR_ADM_SHIFT(4) | \
50 CSOR_NOR_TRHZ_80)
51#define CONFIG_SYS_NOR_FTIM0 (FTIM0_NOR_TACSE(0x4) | \
52 FTIM0_NOR_TEADC(0x5) | \
53 FTIM0_NOR_TEAHC(0x5))
54#define CONFIG_SYS_NOR_FTIM1 (FTIM1_NOR_TACO(0x35) | \
55 FTIM1_NOR_TRAD_NOR(0x1a) | \
56 FTIM1_NOR_TSEQRAD_NOR(0x13))
57#define CONFIG_SYS_NOR_FTIM2 (FTIM2_NOR_TCS(0x4) | \
58 FTIM2_NOR_TCH(0x4) | \
59 FTIM2_NOR_TWPH(0xe) | \
60 FTIM2_NOR_TWP(0x1c))
61#define CONFIG_SYS_NOR_FTIM3 0
62
Wang Huanf0ce7d62014-09-05 13:52:44 +080063#define CONFIG_FLASH_SHOW_PROGRESS 45
Yuan Yaoda17d1a2014-10-17 15:26:34 +080064#define CONFIG_SYS_WRITE_SWAPPED_DATA
Wang Huanf0ce7d62014-09-05 13:52:44 +080065
Wang Huanf0ce7d62014-09-05 13:52:44 +080066#define CONFIG_SYS_FLASH_BANKS_LIST {CONFIG_SYS_FLASH_BASE_PHYS, \
67 CONFIG_SYS_FLASH_BASE_PHYS + 0x8000000}
68
69/*
70 * NAND Flash Definitions
71 */
Wang Huanf0ce7d62014-09-05 13:52:44 +080072
73#define CONFIG_SYS_NAND_BASE 0x7e800000
74#define CONFIG_SYS_NAND_BASE_PHYS CONFIG_SYS_NAND_BASE
75
76#define CONFIG_SYS_NAND_CSPR_EXT (0x0)
77
78#define CONFIG_SYS_NAND_CSPR (CSPR_PHYS_ADDR(CONFIG_SYS_NAND_BASE_PHYS) \
79 | CSPR_PORT_SIZE_8 \
80 | CSPR_MSEL_NAND \
81 | CSPR_V)
82#define CONFIG_SYS_NAND_AMASK IFC_AMASK(64*1024)
83#define CONFIG_SYS_NAND_CSOR (CSOR_NAND_ECC_ENC_EN /* ECC on encode */ \
84 | CSOR_NAND_ECC_DEC_EN /* ECC on decode */ \
85 | CSOR_NAND_ECC_MODE_4 /* 4-bit ECC */ \
86 | CSOR_NAND_RAL_3 /* RAL = 3 Bytes */ \
87 | CSOR_NAND_PGS_2K /* Page Size = 2K */ \
88 | CSOR_NAND_SPRZ_64 /* Spare size = 64 */ \
89 | CSOR_NAND_PB(64)) /* 64 Pages Per Block */
90
Wang Huanf0ce7d62014-09-05 13:52:44 +080091#define CONFIG_SYS_NAND_FTIM0 (FTIM0_NAND_TCCST(0x7) | \
92 FTIM0_NAND_TWP(0x18) | \
93 FTIM0_NAND_TWCHT(0x7) | \
94 FTIM0_NAND_TWH(0xa))
95#define CONFIG_SYS_NAND_FTIM1 (FTIM1_NAND_TADLE(0x32) | \
96 FTIM1_NAND_TWBE(0x39) | \
97 FTIM1_NAND_TRR(0xe) | \
98 FTIM1_NAND_TRP(0x18))
99#define CONFIG_SYS_NAND_FTIM2 (FTIM2_NAND_TRAD(0xf) | \
100 FTIM2_NAND_TREH(0xa) | \
101 FTIM2_NAND_TWHRE(0x1e))
102#define CONFIG_SYS_NAND_FTIM3 0x0
103
104#define CONFIG_SYS_NAND_BASE_LIST { CONFIG_SYS_NAND_BASE }
Alison Wang2145a372014-12-09 17:38:02 +0800105#endif
Wang Huanf0ce7d62014-09-05 13:52:44 +0800106
107/*
108 * QIXIS Definitions
109 */
Wang Huanf0ce7d62014-09-05 13:52:44 +0800110
111#ifdef CONFIG_FSL_QIXIS
112#define QIXIS_BASE 0x7fb00000
113#define QIXIS_BASE_PHYS QIXIS_BASE
114#define CONFIG_SYS_I2C_FPGA_ADDR 0x66
115#define QIXIS_LBMAP_SWITCH 6
116#define QIXIS_LBMAP_MASK 0x0f
117#define QIXIS_LBMAP_SHIFT 0
118#define QIXIS_LBMAP_DFLTBANK 0x00
119#define QIXIS_LBMAP_ALTBANK 0x04
Hongbo Zhang4f6e6102016-07-21 18:09:38 +0800120#define QIXIS_PWR_CTL 0x21
121#define QIXIS_PWR_CTL_POWEROFF 0x80
Wang Huanf0ce7d62014-09-05 13:52:44 +0800122#define QIXIS_RST_CTL_RESET 0x44
123#define QIXIS_RCFG_CTL_RECONFIG_IDLE 0x20
124#define QIXIS_RCFG_CTL_RECONFIG_START 0x21
125#define QIXIS_RCFG_CTL_WATCHDOG_ENBLE 0x08
Hongbo Zhangf253bbd2016-08-19 17:20:31 +0800126#define QIXIS_CTL_SYS 0x5
127#define QIXIS_CTL_SYS_EVTSW_MASK 0x0c
128#define QIXIS_CTL_SYS_EVTSW_IRQ 0x04
129#define QIXIS_RST_FORCE_3 0x45
130#define QIXIS_RST_FORCE_3_PCIESLOT1 0x80
131#define QIXIS_PWR_CTL2 0x21
132#define QIXIS_PWR_CTL2_PCTL 0x2
Wang Huanf0ce7d62014-09-05 13:52:44 +0800133
134#define CONFIG_SYS_FPGA_CSPR_EXT (0x0)
135#define CONFIG_SYS_FPGA_CSPR (CSPR_PHYS_ADDR(QIXIS_BASE_PHYS) | \
136 CSPR_PORT_SIZE_8 | \
137 CSPR_MSEL_GPCM | \
138 CSPR_V)
139#define CONFIG_SYS_FPGA_AMASK IFC_AMASK(64 * 1024)
140#define CONFIG_SYS_FPGA_CSOR (CSOR_NOR_ADM_SHIFT(4) | \
141 CSOR_NOR_NOR_MODE_AVD_NOR | \
142 CSOR_NOR_TRHZ_80)
143
144/*
145 * QIXIS Timing parameters for IFC GPCM
146 */
147#define CONFIG_SYS_FPGA_FTIM0 (FTIM0_GPCM_TACSE(0xe) | \
148 FTIM0_GPCM_TEADC(0xe) | \
149 FTIM0_GPCM_TEAHC(0xe))
150#define CONFIG_SYS_FPGA_FTIM1 (FTIM1_GPCM_TACO(0xe) | \
151 FTIM1_GPCM_TRAD(0x1f))
152#define CONFIG_SYS_FPGA_FTIM2 (FTIM2_GPCM_TCS(0xe) | \
153 FTIM2_GPCM_TCH(0xe) | \
154 FTIM2_GPCM_TWP(0xf0))
155#define CONFIG_SYS_FPGA_FTIM3 0x0
156#endif
157
Alison Wangab98bb52014-12-09 17:38:14 +0800158#if defined(CONFIG_NAND_BOOT)
159#define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NAND_CSPR_EXT
160#define CONFIG_SYS_CSPR0 CONFIG_SYS_NAND_CSPR
161#define CONFIG_SYS_AMASK0 CONFIG_SYS_NAND_AMASK
162#define CONFIG_SYS_CSOR0 CONFIG_SYS_NAND_CSOR
163#define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NAND_FTIM0
164#define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NAND_FTIM1
165#define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NAND_FTIM2
166#define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NAND_FTIM3
167#define CONFIG_SYS_CSPR1_EXT CONFIG_SYS_NOR0_CSPR_EXT
168#define CONFIG_SYS_CSPR1 CONFIG_SYS_NOR0_CSPR
169#define CONFIG_SYS_AMASK1 CONFIG_SYS_NOR_AMASK
170#define CONFIG_SYS_CSOR1 CONFIG_SYS_NOR_CSOR
171#define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NOR_FTIM0
172#define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NOR_FTIM1
173#define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NOR_FTIM2
174#define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NOR_FTIM3
175#define CONFIG_SYS_CSPR2_EXT CONFIG_SYS_NOR1_CSPR_EXT
176#define CONFIG_SYS_CSPR2 CONFIG_SYS_NOR1_CSPR
177#define CONFIG_SYS_AMASK2 CONFIG_SYS_NOR_AMASK
178#define CONFIG_SYS_CSOR2 CONFIG_SYS_NOR_CSOR
179#define CONFIG_SYS_CS2_FTIM0 CONFIG_SYS_NOR_FTIM0
180#define CONFIG_SYS_CS2_FTIM1 CONFIG_SYS_NOR_FTIM1
181#define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NOR_FTIM2
182#define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NOR_FTIM3
183#define CONFIG_SYS_CSPR3_EXT CONFIG_SYS_FPGA_CSPR_EXT
184#define CONFIG_SYS_CSPR3 CONFIG_SYS_FPGA_CSPR
185#define CONFIG_SYS_AMASK3 CONFIG_SYS_FPGA_AMASK
186#define CONFIG_SYS_CSOR3 CONFIG_SYS_FPGA_CSOR
187#define CONFIG_SYS_CS3_FTIM0 CONFIG_SYS_FPGA_FTIM0
188#define CONFIG_SYS_CS3_FTIM1 CONFIG_SYS_FPGA_FTIM1
189#define CONFIG_SYS_CS3_FTIM2 CONFIG_SYS_FPGA_FTIM2
190#define CONFIG_SYS_CS3_FTIM3 CONFIG_SYS_FPGA_FTIM3
191#else
Wang Huanf0ce7d62014-09-05 13:52:44 +0800192#define CONFIG_SYS_CSPR0_EXT CONFIG_SYS_NOR0_CSPR_EXT
193#define CONFIG_SYS_CSPR0 CONFIG_SYS_NOR0_CSPR
194#define CONFIG_SYS_AMASK0 CONFIG_SYS_NOR_AMASK
195#define CONFIG_SYS_CSOR0 CONFIG_SYS_NOR_CSOR
196#define CONFIG_SYS_CS0_FTIM0 CONFIG_SYS_NOR_FTIM0
197#define CONFIG_SYS_CS0_FTIM1 CONFIG_SYS_NOR_FTIM1
198#define CONFIG_SYS_CS0_FTIM2 CONFIG_SYS_NOR_FTIM2
199#define CONFIG_SYS_CS0_FTIM3 CONFIG_SYS_NOR_FTIM3
200#define CONFIG_SYS_CSPR1_EXT CONFIG_SYS_NOR1_CSPR_EXT
201#define CONFIG_SYS_CSPR1 CONFIG_SYS_NOR1_CSPR
202#define CONFIG_SYS_AMASK1 CONFIG_SYS_NOR_AMASK
203#define CONFIG_SYS_CSOR1 CONFIG_SYS_NOR_CSOR
204#define CONFIG_SYS_CS1_FTIM0 CONFIG_SYS_NOR_FTIM0
205#define CONFIG_SYS_CS1_FTIM1 CONFIG_SYS_NOR_FTIM1
206#define CONFIG_SYS_CS1_FTIM2 CONFIG_SYS_NOR_FTIM2
207#define CONFIG_SYS_CS1_FTIM3 CONFIG_SYS_NOR_FTIM3
208#define CONFIG_SYS_CSPR2_EXT CONFIG_SYS_NAND_CSPR_EXT
209#define CONFIG_SYS_CSPR2 CONFIG_SYS_NAND_CSPR
210#define CONFIG_SYS_AMASK2 CONFIG_SYS_NAND_AMASK
211#define CONFIG_SYS_CSOR2 CONFIG_SYS_NAND_CSOR
212#define CONFIG_SYS_CS2_FTIM0 CONFIG_SYS_NAND_FTIM0
213#define CONFIG_SYS_CS2_FTIM1 CONFIG_SYS_NAND_FTIM1
214#define CONFIG_SYS_CS2_FTIM2 CONFIG_SYS_NAND_FTIM2
215#define CONFIG_SYS_CS2_FTIM3 CONFIG_SYS_NAND_FTIM3
216#define CONFIG_SYS_CSPR3_EXT CONFIG_SYS_FPGA_CSPR_EXT
217#define CONFIG_SYS_CSPR3 CONFIG_SYS_FPGA_CSPR
218#define CONFIG_SYS_AMASK3 CONFIG_SYS_FPGA_AMASK
219#define CONFIG_SYS_CSOR3 CONFIG_SYS_FPGA_CSOR
220#define CONFIG_SYS_CS3_FTIM0 CONFIG_SYS_FPGA_FTIM0
221#define CONFIG_SYS_CS3_FTIM1 CONFIG_SYS_FPGA_FTIM1
222#define CONFIG_SYS_CS3_FTIM2 CONFIG_SYS_FPGA_FTIM2
223#define CONFIG_SYS_CS3_FTIM3 CONFIG_SYS_FPGA_FTIM3
Alison Wangab98bb52014-12-09 17:38:14 +0800224#endif
Wang Huanf0ce7d62014-09-05 13:52:44 +0800225
226/*
227 * Serial Port
228 */
Tom Rini037415a2022-03-23 17:20:00 -0400229#ifndef CONFIG_LPUART
Wang Huanf0ce7d62014-09-05 13:52:44 +0800230#define CONFIG_SYS_NS16550_SERIAL
York Sun89381742016-02-08 13:04:17 -0800231#ifndef CONFIG_DM_SERIAL
Wang Huanf0ce7d62014-09-05 13:52:44 +0800232#define CONFIG_SYS_NS16550_REG_SIZE 1
York Sun89381742016-02-08 13:04:17 -0800233#endif
Wang Huanf0ce7d62014-09-05 13:52:44 +0800234#define CONFIG_SYS_NS16550_CLK get_serial_clock()
Alison Wange2f33ae2015-01-04 15:30:58 +0800235#endif
Wang Huanf0ce7d62014-09-05 13:52:44 +0800236
Wang Huanf0ce7d62014-09-05 13:52:44 +0800237/*
238 * I2C
239 */
Wang Huanf0ce7d62014-09-05 13:52:44 +0800240
Biwen Li4b451fd2021-02-05 19:02:03 +0800241/* GPIO */
Biwen Li4b451fd2021-02-05 19:02:03 +0800242
Wang Huanf0ce7d62014-09-05 13:52:44 +0800243/*
244 * I2C bus multiplexer
245 */
246#define I2C_MUX_PCA_ADDR_PRI 0x77
247#define I2C_MUX_CH_DEFAULT 0x8
Xiubo Li27e2fe62014-12-16 14:50:33 +0800248#define I2C_MUX_CH_CH7301 0xC
Wang Huanf0ce7d62014-09-05 13:52:44 +0800249
250/*
251 * MMC
252 */
Wang Huanf0ce7d62014-09-05 13:52:44 +0800253
254/*
255 * eTSEC
256 */
Wang Huanf0ce7d62014-09-05 13:52:44 +0800257
258#ifdef CONFIG_TSEC_ENET
Wang Huanf0ce7d62014-09-05 13:52:44 +0800259#define CONFIG_MII_DEFAULT_TSEC 3
260#define CONFIG_TSEC1 1
261#define CONFIG_TSEC1_NAME "eTSEC1"
262#define CONFIG_TSEC2 1
263#define CONFIG_TSEC2_NAME "eTSEC2"
264#define CONFIG_TSEC3 1
265#define CONFIG_TSEC3_NAME "eTSEC3"
266
267#define TSEC1_PHY_ADDR 1
268#define TSEC2_PHY_ADDR 2
269#define TSEC3_PHY_ADDR 3
270
271#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
272#define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
273#define TSEC3_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
274
275#define TSEC1_PHYIDX 0
276#define TSEC2_PHYIDX 0
277#define TSEC3_PHYIDX 0
Wang Huanf0ce7d62014-09-05 13:52:44 +0800278#endif
Minghuan Liana4d6b612014-10-31 13:43:44 +0800279
Xiubo Li563e3ce2014-11-21 17:40:57 +0800280#define CONFIG_PEN_ADDR_BIG_ENDIAN
281#define CONFIG_SMP_PEN_ADDR 0x01ee0200
Xiubo Li563e3ce2014-11-21 17:40:57 +0800282
Wang Huanf0ce7d62014-09-05 13:52:44 +0800283#define CONFIG_HWCONFIG
Zhuoyu Zhangfe4f2882015-08-17 18:55:12 +0800284#define HWCONFIG_BUFFER_SIZE 256
285
286#define CONFIG_FSL_DEVICE_DISABLE
Wang Huanf0ce7d62014-09-05 13:52:44 +0800287
Alison Wange2f33ae2015-01-04 15:30:58 +0800288#ifdef CONFIG_LPUART
289#define CONFIG_EXTRA_ENV_SETTINGS \
290 "bootargs=root=/dev/ram0 rw console=ttyLP0,115200\0" \
Alison Wangf6370242015-11-05 11:16:26 +0800291 "initrd_high=0xffffffff\0" \
Alison Wange2f33ae2015-01-04 15:30:58 +0800292 "hwconfig=fsl_ddr:ctlr_intlv=null,bank_intlv=null\0"
293#else
Wang Huanf0ce7d62014-09-05 13:52:44 +0800294#define CONFIG_EXTRA_ENV_SETTINGS \
295 "bootargs=root=/dev/ram0 rw console=ttyS0,115200\0" \
Alison Wangf6370242015-11-05 11:16:26 +0800296 "initrd_high=0xffffffff\0" \
Wang Huanf0ce7d62014-09-05 13:52:44 +0800297 "hwconfig=fsl_ddr:ctlr_intlv=null,bank_intlv=null\0"
Alison Wange2f33ae2015-01-04 15:30:58 +0800298#endif
Wang Huanf0ce7d62014-09-05 13:52:44 +0800299
300/*
301 * Miscellaneous configurable options
302 */
Alison Wang71477062020-02-03 15:25:19 +0800303#define CONFIG_SYS_BOOTMAPSZ (256 << 20)
Wang Huanf0ce7d62014-09-05 13:52:44 +0800304
Xiubo Li03d40aa2014-11-21 17:40:59 +0800305#define CONFIG_LS102XA_STREAM_ID
306
Wang Huanf0ce7d62014-09-05 13:52:44 +0800307/*
308 * Environment
309 */
Wang Huanf0ce7d62014-09-05 13:52:44 +0800310
Aneesh Bansal962021a2016-01-22 16:37:22 +0530311#include <asm/fsl_secure_boot.h>
Ruchika Gupta901ae762014-10-15 11:39:06 +0530312
Wang Huanf0ce7d62014-09-05 13:52:44 +0800313#endif