Blame view

include/configs/ls2080a_common.h 6.78 KB
83d290c56   Tom Rini   SPDX: Convert all...
1
  /* SPDX-License-Identifier: GPL-2.0+ */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
2
  /*
89a168f77   Priyanka Jain   armv8: ls2080ardb...
3
   * Copyright 2017 NXP
f749db3a7   York Sun   ARMv8/ls2085a_emu...
4
   * Copyright (C) 2014 Freescale Semiconductor
f749db3a7   York Sun   ARMv8/ls2085a_emu...
5
6
7
8
   */
  
  #ifndef __LS2_COMMON_H
  #define __LS2_COMMON_H
f749db3a7   York Sun   ARMv8/ls2085a_emu...
9
  #define CONFIG_REMAKE_ELF
f749db3a7   York Sun   ARMv8/ls2085a_emu...
10
  #define CONFIG_GICV3
08c5130d2   Bharat Bhushan   armv8: fsl-lsch3:...
11
  #include <asm/arch/stream_id_lsch3.h>
9f3183d2d   Mingkai Hu   armv8/fsl_lsch3: ...
12
  #include <asm/arch/config.h>
31d34c6c4   Minghuan Lian   armv8: Add SerDes...
13

9f3183d2d   Mingkai Hu   armv8/fsl_lsch3: ...
14
  /* Link Definitions */
9570df03e   Rajesh Bhagat   armv8: ls2088ardb...
15
16
17
  #ifdef CONFIG_TFABOOT
  #define CONFIG_SYS_INIT_SP_ADDR		CONFIG_SYS_TEXT_BASE
  #else
9f3183d2d   Mingkai Hu   armv8/fsl_lsch3: ...
18
  #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_FSL_OCRAM_BASE + 0xfff0)
9570df03e   Rajesh Bhagat   armv8: ls2088ardb...
19
  #endif
9f3183d2d   Mingkai Hu   armv8/fsl_lsch3: ...
20

422cb08ac   Bhupesh Sharma   armv8/fsl-lsch3: ...
21
  /* We need architecture specific misc initializations */
422cb08ac   Bhupesh Sharma   armv8/fsl-lsch3: ...
22

f749db3a7   York Sun   ARMv8/ls2085a_emu...
23
  /* Link Definitions */
9570df03e   Rajesh Bhagat   armv8: ls2088ardb...
24
  #ifndef CONFIG_TFABOOT
a646f6698   Yuan Yao   armv8: ls2080aqds...
25
  #ifndef CONFIG_QSPI_BOOT
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
26
  #else
89a168f77   Priyanka Jain   armv8: ls2080ardb...
27
28
  #define CONFIG_ENV_SIZE			0x2000          /* 8KB */
  #define CONFIG_ENV_OFFSET		0x300000        /* 3MB */
1c83df6f3   Santan Kumar   armv8: ls2080a: I...
29
  #define CONFIG_ENV_SECT_SIZE		0x40000
a646f6698   Yuan Yao   armv8: ls2080aqds...
30
  #endif
9570df03e   Rajesh Bhagat   armv8: ls2088ardb...
31
  #endif
f749db3a7   York Sun   ARMv8/ls2085a_emu...
32

f749db3a7   York Sun   ARMv8/ls2085a_emu...
33
  #define CONFIG_SKIP_LOWLEVEL_INIT
f749db3a7   York Sun   ARMv8/ls2085a_emu...
34

f749db3a7   York Sun   ARMv8/ls2085a_emu...
35
  #ifndef CONFIG_SYS_FSL_DDR4
f749db3a7   York Sun   ARMv8/ls2085a_emu...
36
37
  #define CONFIG_SYS_DDR_RAW_TIMING
  #endif
f749db3a7   York Sun   ARMv8/ls2085a_emu...
38
39
  
  #define CONFIG_SYS_FSL_DDR_INTLV_256B	/* force 256 byte interleaving */
9f3183d2d   Mingkai Hu   armv8/fsl_lsch3: ...
40
  #define CONFIG_VERY_BIG_RAM
f749db3a7   York Sun   ARMv8/ls2085a_emu...
41
42
43
44
  #define CONFIG_SYS_DDR_SDRAM_BASE	0x80000000UL
  #define CONFIG_SYS_FSL_DDR_SDRAM_BASE_PHY	0
  #define CONFIG_SYS_SDRAM_BASE		CONFIG_SYS_DDR_SDRAM_BASE
  #define CONFIG_SYS_DDR_BLOCK2_BASE	0x8080000000ULL
d9c68b144   York Sun   ARMv8/ls2085a_emu...
45
  #define CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS	2
8bfa301b0   York Sun   ARMv8/ls2085a: En...
46
47
48
49
  /*
   * SMP Definitinos
   */
  #define CPU_RELEASE_ADDR		secondary_boot_func
d9c68b144   York Sun   ARMv8/ls2085a_emu...
50
  #define CONFIG_SYS_FSL_OTHER_DDR_NUM_CTRLS
449372148   Prabhakar Kushwaha   armv8: LS2080A: R...
51
  #ifdef CONFIG_SYS_FSL_HAS_DP_DDR
d9c68b144   York Sun   ARMv8/ls2085a_emu...
52
53
54
55
56
57
58
59
  #define CONFIG_SYS_DP_DDR_BASE		0x6000000000ULL
  /*
   * DDR controller use 0 as the base address for binding.
   * It is mapped to CONFIG_SYS_DP_DDR_BASE for core to access.
   */
  #define CONFIG_SYS_DP_DDR_BASE_PHY	0
  #define CONFIG_DP_DDR_CTRL		2
  #define CONFIG_DP_DDR_NUM_CTRLS		1
449372148   Prabhakar Kushwaha   armv8: LS2080A: R...
60
  #endif
f749db3a7   York Sun   ARMv8/ls2085a_emu...
61
62
  
  /* Generic Timer Definitions */
207774b21   York Sun   armv8/ls2085a: Fi...
63
64
65
66
67
  /*
   * This is not an accurate number. It is used in start.S. The frequency
   * will be udpated later when get_bus_freq(0) is available.
   */
  #define COUNTER_FREQUENCY		25000000	/* 25MHz */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
68
69
  
  /* Size of malloc() pool */
aa66acbf5   Prabhakar Kushwaha   board/ls2085_comm...
70
  #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2048 * 1024)
f749db3a7   York Sun   ARMv8/ls2085a_emu...
71
72
  
  /* I2C */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
73
  #define CONFIG_SYS_I2C
f749db3a7   York Sun   ARMv8/ls2085a_emu...
74
75
  
  /* Serial Port */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
76
77
  #define CONFIG_SYS_NS16550_SERIAL
  #define CONFIG_SYS_NS16550_REG_SIZE     1
3564208e0   Hou Zhiqiang   armv8/fsl-lsch3: ...
78
  #define CONFIG_SYS_NS16550_CLK          (get_serial_clock())
f749db3a7   York Sun   ARMv8/ls2085a_emu...
79

f749db3a7   York Sun   ARMv8/ls2085a_emu...
80
81
82
83
  #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
  
  /* IFC */
  #define CONFIG_FSL_IFC
f3f8c564a   Prabhakar Kushwaha   armv8/ls2085a: Up...
84

f749db3a7   York Sun   ARMv8/ls2085a_emu...
85
  /*
7288c2c2b   York Sun   armv8/ls2085aqds:...
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
   * During booting, IFC is mapped at the region of 0x30000000.
   * But this region is limited to 256MB. To accommodate NOR, promjet
   * and FPGA. This region is divided as below:
   * 0x30000000 - 0x37ffffff : 128MB : NOR flash
   * 0x38000000 - 0x3BFFFFFF : 64MB  : Promjet
   * 0x3C000000 - 0x40000000 : 64MB  : FPGA etc
   *
   * To accommodate bigger NOR flash and other devices, we will map IFC
   * chip selects to as below:
   * 0x5_1000_0000..0x5_1fff_ffff	Memory Hole
   * 0x5_2000_0000..0x5_3fff_ffff	IFC CSx (FPGA, NAND and others 512MB)
   * 0x5_4000_0000..0x5_7fff_ffff	ASIC or others 1GB
   * 0x5_8000_0000..0x5_bfff_ffff	IFC CS0 1GB (NOR/Promjet)
   * 0x5_C000_0000..0x5_ffff_ffff	IFC CS1 1GB (NOR/Promjet)
   *
   * For e.g. NOR flash at CS0 will be mapped to 0x580000000 after relocation.
f749db3a7   York Sun   ARMv8/ls2085a_emu...
102
103
104
105
106
   * CONFIG_SYS_FLASH_BASE has the final address (core view)
   * CONFIG_SYS_FLASH_BASE_PHYS has the final address (IFC view)
   * CONFIG_SYS_FLASH_BASE_PHYS_EARLY has the temporary IFC address
   * CONFIG_SYS_TEXT_BASE is linked to 0x30000000 for booting
   */
7288c2c2b   York Sun   armv8/ls2085aqds:...
107

f749db3a7   York Sun   ARMv8/ls2085a_emu...
108
109
110
  #define CONFIG_SYS_FLASH_BASE			0x580000000ULL
  #define CONFIG_SYS_FLASH_BASE_PHYS		0x80000000
  #define CONFIG_SYS_FLASH_BASE_PHYS_EARLY	0x00000000
7288c2c2b   York Sun   armv8/ls2085aqds:...
111
112
  #define CONFIG_SYS_FLASH1_BASE_PHYS		0xC0000000
  #define CONFIG_SYS_FLASH1_BASE_PHYS_EARLY	0x8000000
7288c2c2b   York Sun   armv8/ls2085aqds:...
113
114
115
116
117
118
  #ifndef __ASSEMBLY__
  unsigned long long get_qixis_addr(void);
  #endif
  #define QIXIS_BASE				get_qixis_addr()
  #define QIXIS_BASE_PHYS				0x20000000
  #define QIXIS_BASE_PHYS_EARLY			0xC000000
8b06460e5   Yangbo Lu   ls2085a: esdhc: A...
119
120
121
  #define QIXIS_STAT_PRES1			0xb
  #define QIXIS_SDID_MASK				0x07
  #define QIXIS_ESDHC_NO_ADAPTER			0x7
7288c2c2b   York Sun   armv8/ls2085aqds:...
122
123
124
  
  #define CONFIG_SYS_NAND_BASE			0x530000000ULL
  #define CONFIG_SYS_NAND_BASE_PHYS		0x30000000
e211c12e7   Prabhakar Kushwaha   board/ls2085a: Ad...
125

f749db3a7   York Sun   ARMv8/ls2085a_emu...
126
  /* MC firmware */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
127
  /* TODO Actual DPL max length needs to be confirmed with the MC FW team */
125e2bc1f   J. German Rivera   drivers/fsl-mc: C...
128
129
130
131
  #define CONFIG_SYS_LS_MC_DPC_MAX_LENGTH	    0x20000
  #define CONFIG_SYS_LS_MC_DRAM_DPC_OFFSET    0x00F00000
  #define CONFIG_SYS_LS_MC_DPL_MAX_LENGTH	    0x20000
  #define CONFIG_SYS_LS_MC_DRAM_DPL_OFFSET    0x00F20000
3c1d218a1   York Sun   armv8: LS2080A: C...
132
  /* For LS2085A */
c1000c12d   J. German Rivera   drivers/fsl-mc: A...
133
134
  #define CONFIG_SYS_LS_MC_AIOP_IMG_MAX_LENGTH	0x200000
  #define CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET	0x07000000
f749db3a7   York Sun   ARMv8/ls2085a_emu...
135

33a8991a8   Bogdan Purcareata   drivers: net: fsl...
136
137
138
139
  /* Define phy_reset function to boot the MC based on mcinitcmd.
   * This happens late enough to properly fixup u-boot env MAC addresses.
   */
  #define CONFIG_RESET_PHY_R
5c0550897   Prabhakar Kushwaha   armv8/fsl-lsch3: ...
140
141
142
143
144
145
  /*
   * Carve out a DDR region which will not be used by u-boot/Linux
   *
   * It will be used by MC and Debug Server. The MC region must be
   * 512MB aligned, so the min size to hide is 512MB.
   */
b63a95062   York Sun   armv8: ls2080a: R...
146
  #ifdef CONFIG_FSL_MC_ENET
43ad41e6a   Meenakshi Aggarwal   mc : Reduce MC me...
147
  #define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE		(128UL * 1024 * 1024)
f749db3a7   York Sun   ARMv8/ls2085a_emu...
148
149
150
  #endif
  
  /* Command line configuration */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
151
152
153
154
155
156
157
  
  /* Miscellaneous configurable options */
  #define CONFIG_SYS_LOAD_ADDR	(CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000)
  
  /* Physical Memory Map */
  /* fixme: these need to be checked against the board */
  #define CONFIG_CHIP_SELECTS_PER_CTRL	4
f749db3a7   York Sun   ARMv8/ls2085a_emu...
158

f749db3a7   York Sun   ARMv8/ls2085a_emu...
159
160
  #define CONFIG_HWCONFIG
  #define HWCONFIG_BUFFER_SIZE		128
1d3a76fac   Alison Wang   armv8: ls2080a: D...
161
162
  /* Allow to overwrite serial and ethaddr */
  #define CONFIG_ENV_OVERWRITE
f749db3a7   York Sun   ARMv8/ls2085a_emu...
163
164
165
166
167
168
169
  /* Initial environment variables */
  #define CONFIG_EXTRA_ENV_SETTINGS		\
  	"hwconfig=fsl_ddr:bank_intlv=auto\0"	\
  	"loadaddr=0x80100000\0"			\
  	"kernel_addr=0x100000\0"		\
  	"ramdisk_addr=0x800000\0"		\
  	"ramdisk_size=0x2000000\0"		\
f3f8c564a   Prabhakar Kushwaha   armv8/ls2085a: Up...
170
  	"fdt_high=0xa0000000\0"			\
f749db3a7   York Sun   ARMv8/ls2085a_emu...
171
  	"initrd_high=0xffffffffffffffff\0"	\
f5bf23d82   Santan Kumar   armv8: ls2080ardb...
172
  	"kernel_start=0x581000000\0"		\
052ddd5c8   Stuart Yoder   ARMv8/ls2085a: Mo...
173
  	"kernel_load=0xa0000000\0"		\
97421bd2c   Prabhakar Kushwaha   board/ls2085a: In...
174
  	"kernel_size=0x2800000\0"		\
16ed85601   Prabhakar Kushwaha   armv8: ls2080: Ad...
175
  	"console=ttyAMA0,38400n8\0"		\
f5bf23d82   Santan Kumar   armv8: ls2080ardb...
176
177
  	"mcinitcmd=fsl_mc start mc 0x580a00000"	\
  	" 0x580e00000 \0"
f749db3a7   York Sun   ARMv8/ls2085a_emu...
178

9570df03e   Rajesh Bhagat   armv8: ls2088ardb...
179
  #ifndef CONFIG_TFABOOT
1f55a9380   Santan Kumar   armv8: ls2080aqds...
180
181
182
183
184
185
  #ifdef CONFIG_SD_BOOT
  #define CONFIG_BOOTCOMMAND	"mmc read 0x80200000 0x6800 0x800;"\
  				" fsl_mc apply dpl 0x80200000 &&" \
  				" mmc read $kernel_load $kernel_start" \
  				" $kernel_size && bootm $kernel_load"
  #else
f5bf23d82   Santan Kumar   armv8: ls2080ardb...
186
  #define CONFIG_BOOTCOMMAND	"fsl_mc apply dpl 0x580d00000 &&" \
9f3e1b8a5   Prabhakar Kushwaha   armv8: ls2080: Up...
187
188
  				" cp.b $kernel_start $kernel_load" \
  				" $kernel_size && bootm $kernel_load"
1f55a9380   Santan Kumar   armv8: ls2080aqds...
189
  #endif
9570df03e   Rajesh Bhagat   armv8: ls2088ardb...
190
  #endif
f749db3a7   York Sun   ARMv8/ls2085a_emu...
191

f749db3a7   York Sun   ARMv8/ls2085a_emu...
192
193
  /* Monitor Command Prompt */
  #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
f749db3a7   York Sun   ARMv8/ls2085a_emu...
194
  #define CONFIG_SYS_MAXARGS		64	/* max command args */
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
195
196
  #define CONFIG_SPL_BSS_START_ADDR	0x80100000
  #define CONFIG_SPL_BSS_MAX_SIZE		0x00100000
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
197
  #define CONFIG_SPL_MAX_SIZE		0x16000
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
198
  #define CONFIG_SPL_STACK		(CONFIG_SYS_FSL_OCRAM_BASE + 0x9ff0)
4b5892c48   Jagdish Gediya   armv8: layerscape...
199
  #define CONFIG_SPL_TARGET		"u-boot-with-spl.bin"
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
200
  #define CONFIG_SPL_TEXT_BASE		0x1800a000
faed6bde1   Santan Kumar   armv8: ls2080a: R...
201
  #ifdef CONFIG_NAND_BOOT
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
202
203
  #define CONFIG_SYS_NAND_U_BOOT_DST	0x80400000
  #define CONFIG_SYS_NAND_U_BOOT_START	CONFIG_SYS_NAND_U_BOOT_DST
faed6bde1   Santan Kumar   armv8: ls2080a: R...
204
  #endif
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
205
206
  #define CONFIG_SYS_SPL_MALLOC_SIZE	0x00100000
  #define CONFIG_SYS_SPL_MALLOC_START	0x80200000
63143a5f9   York Sun   armv8: ls2080a: I...
207
  #define CONFIG_SYS_MONITOR_LEN		(1024 * 1024)
b2d5ac598   Scott Wood   armv8/ls2085aqds:...
208

34cc75469   Bhupesh Sharma   armv8/ls2085a: In...
209
  #define CONFIG_SYS_BOOTM_LEN   (64 << 20)      /* Increase max gunzip size */
457e51cff   Simon Glass   common: arm: free...
210
  #include <asm/arch/soc.h>
f749db3a7   York Sun   ARMv8/ls2085a_emu...
211
  #endif /* __LS2_COMMON_H */