Blame view

include/configs/ls1088a_common.h 8.03 KB
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
1
2
3
4
5
6
7
8
  /*
   * Copyright 2017 NXP
   *
   * SPDX-License-Identifier:	GPL-2.0+
   */
  
  #ifndef __LS1088_COMMON_H
  #define __LS1088_COMMON_H
10e7eaf04   Sumit Garg   armv8: ls1088a: S...
9
10
11
12
13
14
15
16
17
18
19
20
21
  /* SPL build */
  #ifdef CONFIG_SPL_BUILD
  #define SPL_NO_BOARDINFO
  #define SPL_NO_QIXIS
  #define SPL_NO_PCI
  #define SPL_NO_ENV
  #define SPL_NO_RTC
  #define SPL_NO_USB
  #define SPL_NO_SATA
  #define SPL_NO_QSPI
  #define SPL_NO_IFC
  #undef CONFIG_DISPLAY_CPUINFO
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
22
23
24
25
26
27
28
29
30
31
32
33
34
  
  #define CONFIG_REMAKE_ELF
  #define CONFIG_FSL_LAYERSCAPE
  #define CONFIG_MP
  
  #include <asm/arch/stream_id_lsch3.h>
  #include <asm/arch/config.h>
  #include <asm/arch/soc.h>
  
  /* Link Definitions */
  #define CONFIG_SYS_INIT_SP_ADDR		(CONFIG_SYS_FSL_OCRAM_BASE + 0xfff0)
  
  /* Link Definitions */
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
35

2eb2dbd45   Ashish Kumar   armv8: ls1088ardb...
36
37
38
39
40
41
  #ifdef CONFIG_QSPI_BOOT
  #define CONFIG_SYS_FSL_QSPI_BASE	0x20000000
  #define CONFIG_ENV_OFFSET		0x300000        /* 3MB */
  #define CONFIG_ENV_ADDR			(CONFIG_SYS_FSL_QSPI_BASE + \
  						CONFIG_ENV_OFFSET)
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
42
43
  
  #define CONFIG_SKIP_LOWLEVEL_INIT
099f4093a   Ashish Kumar   armv8: ls1088ardb...
44
  #if !defined(CONFIG_SD_BOOT)
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
45
  #define CONFIG_FSL_DDR_INTERACTIVE	/* Interactive debugging */
099f4093a   Ashish Kumar   armv8: ls1088ardb...
46
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
47
48
49
50
51
52
53
54
55
56
57
  
  #define CONFIG_VERY_BIG_RAM
  #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
  #define CONFIG_SYS_FSL_DDR_MAIN_NUM_CTRLS	1
  /*
   * SMP Definitinos
   */
  #define CPU_RELEASE_ADDR		secondary_boot_func
4950eb4a4   Hou Zhiqiang   armv8: ls1088a: E...
58
59
60
  #ifdef CONFIG_PCI
  #define CONFIG_CMD_PCI
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  /* Size of malloc() pool */
  #define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2048 * 1024)
  
  /* I2C */
  #define CONFIG_SYS_I2C
  #define CONFIG_SYS_I2C_MXC
  #define CONFIG_SYS_I2C_MXC_I2C1		/* enable I2C bus 1 */
  #define CONFIG_SYS_I2C_MXC_I2C2		/* enable I2C bus 2 */
  #define CONFIG_SYS_I2C_MXC_I2C3		/* enable I2C bus 3 */
  #define CONFIG_SYS_I2C_MXC_I2C4		/* enable I2C bus 4 */
  
  /* Serial Port */
  #define CONFIG_CONS_INDEX       1
  #define CONFIG_SYS_NS16550_SERIAL
  #define CONFIG_SYS_NS16550_REG_SIZE     1
  #define CONFIG_SYS_NS16550_CLK          (get_bus_freq(0) / 2)
  
  #define CONFIG_BAUDRATE			115200
  #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
10e7eaf04   Sumit Garg   armv8: ls1088a: S...
80
  #if !defined(SPL_NO_IFC) || defined(CONFIG_TARGET_LS1088AQDS)
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
81
82
  /* IFC */
  #define CONFIG_FSL_IFC
10e7eaf04   Sumit Garg   armv8: ls1088a: S...
83
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
  
  /*
   * 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.
   * 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
   */
  
  #define CONFIG_SYS_FLASH_BASE			0x580000000ULL
  #define CONFIG_SYS_FLASH_BASE_PHYS		0x80000000
  #define CONFIG_SYS_FLASH_BASE_PHYS_EARLY	0x00000000
  
  #define CONFIG_SYS_FLASH1_BASE_PHYS		0xC0000000
  #define CONFIG_SYS_FLASH1_BASE_PHYS_EARLY	0x8000000
  
  #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
  
  
  #define CONFIG_SYS_NAND_BASE			0x530000000ULL
  #define CONFIG_SYS_NAND_BASE_PHYS		0x30000000
  
  
  /* MC firmware */
  /* TODO Actual DPL max length needs to be confirmed with the MC FW team */
  #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
  #define CONFIG_SYS_LS_MC_AIOP_IMG_MAX_LENGTH	0x200000
  #define CONFIG_SYS_LS_MC_DRAM_AIOP_IMG_OFFSET	0x07000000
c48deb907   Bogdan Purcareata   armv8: ls1088a: U...
136
137
138
139
140
  
  /* 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
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
141
142
143
144
145
146
147
148
149
150
  /*
   * 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.
   */
  
  #if defined(CONFIG_FSL_MC_ENET)
  #define CONFIG_SYS_LS_MC_DRAM_BLOCK_MIN_SIZE		(512UL * 1024 * 1024)
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
151
152
153
154
155
156
  /* Command line configuration */
  #define CONFIG_CMD_GREPENV
  #define CONFIG_CMD_CACHE
  
  /* Miscellaneous configurable options */
  #define CONFIG_SYS_LOAD_ADDR	(CONFIG_SYS_DDR_SDRAM_BASE + 0x10000000)
f65425fb4   Ashish Kumar   armv8: ls1088: En...
157
158
  /* SATA */
  #ifdef CONFIG_SCSI
f65425fb4   Ashish Kumar   armv8: ls1088: En...
159
160
161
162
163
164
165
166
  #define CONFIG_SCSI_AHCI_PLAT
  #define CONFIG_SYS_SATA1		AHCI_BASE_ADDR1
  
  #define CONFIG_SYS_SCSI_MAX_SCSI_ID	1
  #define CONFIG_SYS_SCSI_MAX_LUN		1
  #define CONFIG_SYS_SCSI_MAX_DEVICE	(CONFIG_SYS_SCSI_MAX_SCSI_ID * \
  					CONFIG_SYS_SCSI_MAX_LUN)
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
167
168
169
170
171
172
173
174
175
  /* Physical Memory Map */
  #define CONFIG_CHIP_SELECTS_PER_CTRL	4
  
  #define CONFIG_NR_DRAM_BANKS		2
  
  #define CONFIG_HWCONFIG
  #define HWCONFIG_BUFFER_SIZE		128
  
  /* #define CONFIG_DISPLAY_CPUINFO */
10e7eaf04   Sumit Garg   armv8: ls1088a: S...
176
  #ifndef SPL_NO_ENV
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
  /* Allow to overwrite serial and ethaddr */
  #define CONFIG_ENV_OVERWRITE
  
  /* 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"		\
  	"fdt_high=0xa0000000\0"			\
  	"initrd_high=0xffffffffffffffff\0"	\
  	"kernel_start=0x581000000\0"		\
  	"kernel_load=0xa0000000\0"		\
  	"kernel_size=0x2800000\0"		\
  	"console=ttyAMA0,38400n8\0"		\
  	"mcinitcmd=fsl_mc start mc 0x580a00000"	\
  	" 0x580e00000 \0"
  
  #define CONFIG_BOOTARGS		"console=ttyS0,115200 root=/dev/ram0 " \
  				"earlycon=uart8250,mmio,0x21c0500 " \
  				"ramdisk_size=0x3000000 default_hugepagesz=2m" \
  				" hugepagesz=2m hugepages=256"
  #if defined(CONFIG_QSPI_BOOT)
  #define CONFIG_BOOTCOMMAND	"sf probe 0:0;" \
  				"sf read 0x80200000 0xd00000 0x100000;"\
  				" fsl_mc apply dpl 0x80200000 &&" \
  				" sf read $kernel_load $kernel_start" \
  				" $kernel_size && bootm $kernel_load"
099f4093a   Ashish Kumar   armv8: ls1088ardb...
206
207
208
209
210
  #elif defined(CONFIG_SD_BOOT)
  #define CONFIG_BOOTCOMMAND	"mmcinfo;mmc read 0x80200000 0x6800 0x800;"\
  				" fsl_mc apply dpl 0x80200000 &&" \
  				" mmc read $kernel_load $kernel_start" \
  				" $kernel_size && bootm $kernel_load"
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
211
212
213
214
215
  #else /* NOR BOOT*/
  #define CONFIG_BOOTCOMMAND	"fsl_mc apply dpl 0x580d00000 &&" \
  				" cp.b $kernel_start $kernel_load" \
  				" $kernel_size && bootm $kernel_load"
  #endif
10e7eaf04   Sumit Garg   armv8: ls1088a: S...
216
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
217
218
219
220
221
222
223
  
  /* Monitor Command Prompt */
  #define CONFIG_SYS_CBSIZE		512	/* Console I/O Buffer Size */
  #define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
  					sizeof(CONFIG_SYS_PROMPT) + 16)
  #define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
  #define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE /* Boot args buffer */
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
224
  #define CONFIG_SYS_MAXARGS		64	/* max command args */
099f4093a   Ashish Kumar   armv8: ls1088ardb...
225
226
227
  #ifdef CONFIG_SPL
  #define CONFIG_SPL_BSS_START_ADDR      0x80100000
  #define CONFIG_SPL_BSS_MAX_SIZE                0x00100000
099f4093a   Ashish Kumar   armv8: ls1088ardb...
228
229
230
231
232
233
234
235
  #define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds"
  #define CONFIG_SPL_MAX_SIZE            0x16000
  #define CONFIG_SPL_STACK               (CONFIG_SYS_FSL_OCRAM_BASE + 0x9ff0)
  #define CONFIG_SPL_TARGET              "u-boot-with-spl.bin"
  #define CONFIG_SPL_TEXT_BASE           0x1800a000
  
  #define CONFIG_SYS_SPL_MALLOC_SIZE     0x00100000
  #define CONFIG_SYS_SPL_MALLOC_START    0x80200000
1cabeb88e   Sumit Garg   ls1088ardb: Add S...
236
237
238
239
240
241
242
243
244
245
246
247
248
  
  #ifdef CONFIG_SECURE_BOOT
  #define CONFIG_U_BOOT_HDR_SIZE		(16 << 10)
  /*
   * HDR would be appended at end of image and copied to DDR along
   * with U-Boot image. Here u-boot max. size is 512K. So if binary
   * size increases then increase this size in case of secure boot as
   * it uses raw u-boot image instead of fit image.
   */
  #define CONFIG_SYS_MONITOR_LEN         (0x100000 + CONFIG_U_BOOT_HDR_SIZE)
  #else
  #define CONFIG_SYS_MONITOR_LEN         0x100000
  #endif /* ifdef CONFIG_SECURE_BOOT */
099f4093a   Ashish Kumar   armv8: ls1088ardb...
249
  #endif
e84a324ba   Ashish Kumar   armv8: ls1088ardb...
250
251
252
  #define CONFIG_SYS_BOOTM_LEN   (64 << 20)      /* Increase max gunzip size */
  
  #endif /* __LS1088_COMMON_H */