xref: /OK3568_Linux_fs/u-boot/arch/arm/include/asm/arch-fsl-layerscape/cpu.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright 2017 NXP
3*4882a593Smuzhiyun  * Copyright 2014-2015, Freescale Semiconductor
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * SPDX-License-Identifier:	GPL-2.0+
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef _FSL_LAYERSCAPE_CPU_H
9*4882a593Smuzhiyun #define _FSL_LAYERSCAPE_CPU_H
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun static struct cpu_type cpu_type_list[] = {
12*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2080A, LS2080A, 8),
13*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2085A, LS2085A, 8),
14*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2045A, LS2045A, 4),
15*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2088A, LS2088A, 8),
16*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2084A, LS2084A, 8),
17*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2048A, LS2048A, 4),
18*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2044A, LS2044A, 4),
19*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2081A, LS2081A, 8),
20*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2041A, LS2041A, 4),
21*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS1043A, LS1043A, 4),
22*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS1023A, LS1023A, 2),
23*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS1046A, LS1046A, 4),
24*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS1026A, LS1026A, 2),
25*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS2040A, LS2040A, 4),
26*4882a593Smuzhiyun 	CPU_TYPE_ENTRY(LS1012A, LS1012A, 1),
27*4882a593Smuzhiyun };
28*4882a593Smuzhiyun 
29*4882a593Smuzhiyun #ifndef CONFIG_SYS_DCACHE_OFF
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #ifdef CONFIG_FSL_LSCH3
32*4882a593Smuzhiyun #define CONFIG_SYS_FSL_CCSR_BASE	0x00000000
33*4882a593Smuzhiyun #define CONFIG_SYS_FSL_CCSR_SIZE	0x10000000
34*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QSPI_BASE1	0x20000000
35*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QSPI_SIZE1	0x10000000
36*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_BASE1	0x30000000
37*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_SIZE1	0x10000000
38*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_SIZE1_1	0x400000
39*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_BASE1	0x80000000
40*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_SIZE1	0x80000000
41*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QSPI_BASE2	0x400000000
42*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QSPI_SIZE2	0x100000000
43*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_BASE2	0x500000000
44*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_SIZE2	0x100000000
45*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DCSR_BASE	0x700000000
46*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DCSR_SIZE	0x40000000
47*4882a593Smuzhiyun #define CONFIG_SYS_FSL_MC_BASE		0x80c000000
48*4882a593Smuzhiyun #define CONFIG_SYS_FSL_MC_SIZE		0x4000000
49*4882a593Smuzhiyun #define CONFIG_SYS_FSL_NI_BASE		0x810000000
50*4882a593Smuzhiyun #define CONFIG_SYS_FSL_NI_SIZE		0x8000000
51*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QBMAN_BASE	0x818000000
52*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QBMAN_SIZE	0x8000000
53*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QBMAN_SIZE_1	0x4000000
54*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_PHYS_SIZE	0x200000000
55*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_PHYS_SIZE	0x200000000
56*4882a593Smuzhiyun #define CONFIG_SYS_PCIE3_PHYS_SIZE	0x200000000
57*4882a593Smuzhiyun #define CONFIG_SYS_PCIE4_PHYS_SIZE	0x200000000
58*4882a593Smuzhiyun #define CONFIG_SYS_FSL_WRIOP1_BASE	0x4300000000
59*4882a593Smuzhiyun #define CONFIG_SYS_FSL_WRIOP1_SIZE	0x100000000
60*4882a593Smuzhiyun #define CONFIG_SYS_FSL_AIOP1_BASE	0x4b00000000
61*4882a593Smuzhiyun #define CONFIG_SYS_FSL_AIOP1_SIZE	0x100000000
62*4882a593Smuzhiyun #define CONFIG_SYS_FSL_PEBUF_BASE	0x4c00000000
63*4882a593Smuzhiyun #define CONFIG_SYS_FSL_PEBUF_SIZE	0x400000000
64*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_BASE2	0x8080000000
65*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_SIZE2	0x7F80000000
66*4882a593Smuzhiyun #elif defined(CONFIG_FSL_LSCH2)
67*4882a593Smuzhiyun #define CONFIG_SYS_FSL_BOOTROM_BASE	0x0
68*4882a593Smuzhiyun #define CONFIG_SYS_FSL_BOOTROM_SIZE	0x1000000
69*4882a593Smuzhiyun #define CONFIG_SYS_FSL_CCSR_BASE	0x1000000
70*4882a593Smuzhiyun #define CONFIG_SYS_FSL_CCSR_SIZE	0xf000000
71*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DCSR_BASE	0x20000000
72*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DCSR_SIZE	0x4000000
73*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QSPI_BASE	0x40000000
74*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QSPI_SIZE	0x20000000
75*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_BASE		0x60000000
76*4882a593Smuzhiyun #define CONFIG_SYS_FSL_IFC_SIZE		0x20000000
77*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_BASE1	0x80000000
78*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_SIZE1	0x80000000
79*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QBMAN_BASE	0x500000000
80*4882a593Smuzhiyun #define CONFIG_SYS_FSL_QBMAN_SIZE	0x10000000
81*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_BASE2	0x880000000
82*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_SIZE2	0x780000000	/* 30GB */
83*4882a593Smuzhiyun #define CONFIG_SYS_PCIE1_PHYS_SIZE	0x800000000
84*4882a593Smuzhiyun #define CONFIG_SYS_PCIE2_PHYS_SIZE	0x800000000
85*4882a593Smuzhiyun #define CONFIG_SYS_PCIE3_PHYS_SIZE	0x800000000
86*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_BASE3	0x8800000000
87*4882a593Smuzhiyun #define CONFIG_SYS_FSL_DRAM_SIZE3	0x7800000000	/* 480GB */
88*4882a593Smuzhiyun #endif
89*4882a593Smuzhiyun 
90*4882a593Smuzhiyun #define EARLY_PGTABLE_SIZE 0x5000
91*4882a593Smuzhiyun static struct mm_region early_map[] = {
92*4882a593Smuzhiyun #ifdef CONFIG_FSL_LSCH3
93*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_CCSR_BASE, CONFIG_SYS_FSL_CCSR_BASE,
94*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_CCSR_SIZE,
95*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
96*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
97*4882a593Smuzhiyun 	},
98*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_OCRAM_BASE, CONFIG_SYS_FSL_OCRAM_BASE,
99*4882a593Smuzhiyun 	  SYS_FSL_OCRAM_SPACE_SIZE,
100*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE
101*4882a593Smuzhiyun 	},
102*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QSPI_BASE1, CONFIG_SYS_FSL_QSPI_BASE1,
103*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QSPI_SIZE1,
104*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE},
105*4882a593Smuzhiyun 	/* For IFC Region #1, only the first 4MB is cache-enabled */
106*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_IFC_BASE1, CONFIG_SYS_FSL_IFC_BASE1,
107*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_SIZE1_1,
108*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE
109*4882a593Smuzhiyun 	},
110*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_IFC_BASE1 + CONFIG_SYS_FSL_IFC_SIZE1_1,
111*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_BASE1 + CONFIG_SYS_FSL_IFC_SIZE1_1,
112*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_SIZE1 - CONFIG_SYS_FSL_IFC_SIZE1_1,
113*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
114*4882a593Smuzhiyun 	},
115*4882a593Smuzhiyun 	{ CONFIG_SYS_FLASH_BASE, CONFIG_SYS_FSL_IFC_BASE1,
116*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_SIZE1,
117*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
118*4882a593Smuzhiyun 	},
119*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE1, CONFIG_SYS_FSL_DRAM_BASE1,
120*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE1,
121*4882a593Smuzhiyun #if defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD)
122*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
123*4882a593Smuzhiyun #else	/* Start with nGnRnE and PXN and UXN to prevent speculative access */
124*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
125*4882a593Smuzhiyun #endif
126*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
127*4882a593Smuzhiyun 	},
128*4882a593Smuzhiyun 	/* Map IFC region #2 up to CONFIG_SYS_FLASH_BASE for NAND boot */
129*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_IFC_BASE2, CONFIG_SYS_FSL_IFC_BASE2,
130*4882a593Smuzhiyun 	  CONFIG_SYS_FLASH_BASE - CONFIG_SYS_FSL_IFC_BASE2,
131*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
132*4882a593Smuzhiyun 	},
133*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DCSR_BASE, CONFIG_SYS_FSL_DCSR_BASE,
134*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DCSR_SIZE,
135*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
136*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
137*4882a593Smuzhiyun 	},
138*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE2, CONFIG_SYS_FSL_DRAM_BASE2,
139*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE2,
140*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
141*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
142*4882a593Smuzhiyun 	},
143*4882a593Smuzhiyun #elif defined(CONFIG_FSL_LSCH2)
144*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_CCSR_BASE, CONFIG_SYS_FSL_CCSR_BASE,
145*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_CCSR_SIZE,
146*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
147*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
148*4882a593Smuzhiyun 	},
149*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_OCRAM_BASE, CONFIG_SYS_FSL_OCRAM_BASE,
150*4882a593Smuzhiyun 	  SYS_FSL_OCRAM_SPACE_SIZE,
151*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE
152*4882a593Smuzhiyun 	},
153*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DCSR_BASE, CONFIG_SYS_FSL_DCSR_BASE,
154*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DCSR_SIZE,
155*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
156*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
157*4882a593Smuzhiyun 	},
158*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QSPI_BASE, CONFIG_SYS_FSL_QSPI_BASE,
159*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QSPI_SIZE,
160*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
161*4882a593Smuzhiyun 	},
162*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_IFC_BASE, CONFIG_SYS_FSL_IFC_BASE,
163*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_SIZE,
164*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
165*4882a593Smuzhiyun 	},
166*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE1, CONFIG_SYS_FSL_DRAM_BASE1,
167*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE1,
168*4882a593Smuzhiyun #if defined(CONFIG_SPL) && !defined(CONFIG_SPL_BUILD)
169*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
170*4882a593Smuzhiyun #else	/* Start with nGnRnE and PXN and UXN to prevent speculative access */
171*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
172*4882a593Smuzhiyun #endif
173*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
174*4882a593Smuzhiyun 	},
175*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE2, CONFIG_SYS_FSL_DRAM_BASE2,
176*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE2,
177*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_PXN | PTE_BLOCK_UXN |
178*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
179*4882a593Smuzhiyun 	},
180*4882a593Smuzhiyun #endif
181*4882a593Smuzhiyun 	{},	/* list terminator */
182*4882a593Smuzhiyun };
183*4882a593Smuzhiyun 
184*4882a593Smuzhiyun static struct mm_region final_map[] = {
185*4882a593Smuzhiyun #ifdef CONFIG_FSL_LSCH3
186*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_CCSR_BASE, CONFIG_SYS_FSL_CCSR_BASE,
187*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_CCSR_SIZE,
188*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
189*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
190*4882a593Smuzhiyun 	},
191*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_OCRAM_BASE, CONFIG_SYS_FSL_OCRAM_BASE,
192*4882a593Smuzhiyun 	  SYS_FSL_OCRAM_SPACE_SIZE,
193*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE
194*4882a593Smuzhiyun 	},
195*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE1, CONFIG_SYS_FSL_DRAM_BASE1,
196*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE1,
197*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
198*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
199*4882a593Smuzhiyun 	},
200*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QSPI_BASE1, CONFIG_SYS_FSL_QSPI_BASE1,
201*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QSPI_SIZE1,
202*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE
203*4882a593Smuzhiyun 	},
204*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QSPI_BASE2, CONFIG_SYS_FSL_QSPI_BASE2,
205*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QSPI_SIZE2,
206*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
207*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
208*4882a593Smuzhiyun 	},
209*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_IFC_BASE2, CONFIG_SYS_FSL_IFC_BASE2,
210*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_SIZE2,
211*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
212*4882a593Smuzhiyun 	},
213*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DCSR_BASE, CONFIG_SYS_FSL_DCSR_BASE,
214*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DCSR_SIZE,
215*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
216*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
217*4882a593Smuzhiyun 	},
218*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_MC_BASE, CONFIG_SYS_FSL_MC_BASE,
219*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_MC_SIZE,
220*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
221*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
222*4882a593Smuzhiyun 	},
223*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_NI_BASE, CONFIG_SYS_FSL_NI_BASE,
224*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_NI_SIZE,
225*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
226*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
227*4882a593Smuzhiyun 	},
228*4882a593Smuzhiyun 	/* For QBMAN portal, only the first 64MB is cache-enabled */
229*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QBMAN_BASE, CONFIG_SYS_FSL_QBMAN_BASE,
230*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QBMAN_SIZE_1,
231*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
232*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN | PTE_BLOCK_NS
233*4882a593Smuzhiyun 	},
234*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QBMAN_BASE + CONFIG_SYS_FSL_QBMAN_SIZE_1,
235*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QBMAN_BASE + CONFIG_SYS_FSL_QBMAN_SIZE_1,
236*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QBMAN_SIZE - CONFIG_SYS_FSL_QBMAN_SIZE_1,
237*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
238*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
239*4882a593Smuzhiyun 	},
240*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE1_PHYS_ADDR, CONFIG_SYS_PCIE1_PHYS_ADDR,
241*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE1_PHYS_SIZE,
242*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
243*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
244*4882a593Smuzhiyun 	},
245*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE2_PHYS_ADDR, CONFIG_SYS_PCIE2_PHYS_ADDR,
246*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE2_PHYS_SIZE,
247*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
248*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
249*4882a593Smuzhiyun 	},
250*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE3_PHYS_ADDR, CONFIG_SYS_PCIE3_PHYS_ADDR,
251*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE3_PHYS_SIZE,
252*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
253*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
254*4882a593Smuzhiyun 	},
255*4882a593Smuzhiyun #ifdef CONFIG_ARCH_LS2080A
256*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE4_PHYS_ADDR, CONFIG_SYS_PCIE4_PHYS_ADDR,
257*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE4_PHYS_SIZE,
258*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
259*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
260*4882a593Smuzhiyun 	},
261*4882a593Smuzhiyun #endif
262*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_WRIOP1_BASE, CONFIG_SYS_FSL_WRIOP1_BASE,
263*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_WRIOP1_SIZE,
264*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
265*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
266*4882a593Smuzhiyun 	},
267*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_AIOP1_BASE, CONFIG_SYS_FSL_AIOP1_BASE,
268*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_AIOP1_SIZE,
269*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
270*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
271*4882a593Smuzhiyun 	},
272*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_PEBUF_BASE, CONFIG_SYS_FSL_PEBUF_BASE,
273*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_PEBUF_SIZE,
274*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
275*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
276*4882a593Smuzhiyun 	},
277*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE2, CONFIG_SYS_FSL_DRAM_BASE2,
278*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE2,
279*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
280*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
281*4882a593Smuzhiyun 	},
282*4882a593Smuzhiyun #elif defined(CONFIG_FSL_LSCH2)
283*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_BOOTROM_BASE, CONFIG_SYS_FSL_BOOTROM_BASE,
284*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_BOOTROM_SIZE,
285*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
286*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
287*4882a593Smuzhiyun 	},
288*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_CCSR_BASE, CONFIG_SYS_FSL_CCSR_BASE,
289*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_CCSR_SIZE,
290*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
291*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
292*4882a593Smuzhiyun 	},
293*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_OCRAM_BASE, CONFIG_SYS_FSL_OCRAM_BASE,
294*4882a593Smuzhiyun 	  SYS_FSL_OCRAM_SPACE_SIZE,
295*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_NON_SHARE
296*4882a593Smuzhiyun 	},
297*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DCSR_BASE, CONFIG_SYS_FSL_DCSR_BASE,
298*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DCSR_SIZE,
299*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
300*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
301*4882a593Smuzhiyun 	},
302*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QSPI_BASE, CONFIG_SYS_FSL_QSPI_BASE,
303*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QSPI_SIZE,
304*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
305*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
306*4882a593Smuzhiyun 	},
307*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_IFC_BASE, CONFIG_SYS_FSL_IFC_BASE,
308*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_IFC_SIZE,
309*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | PTE_BLOCK_NON_SHARE
310*4882a593Smuzhiyun 	},
311*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE1, CONFIG_SYS_FSL_DRAM_BASE1,
312*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE1,
313*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
314*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
315*4882a593Smuzhiyun 	},
316*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_QBMAN_BASE, CONFIG_SYS_FSL_QBMAN_BASE,
317*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_QBMAN_SIZE,
318*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
319*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
320*4882a593Smuzhiyun 	},
321*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE2, CONFIG_SYS_FSL_DRAM_BASE2,
322*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE2,
323*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
324*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
325*4882a593Smuzhiyun 	},
326*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE1_PHYS_ADDR, CONFIG_SYS_PCIE1_PHYS_ADDR,
327*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE1_PHYS_SIZE,
328*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
329*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
330*4882a593Smuzhiyun 	},
331*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE2_PHYS_ADDR, CONFIG_SYS_PCIE2_PHYS_ADDR,
332*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE2_PHYS_SIZE,
333*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
334*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
335*4882a593Smuzhiyun 	},
336*4882a593Smuzhiyun 	{ CONFIG_SYS_PCIE3_PHYS_ADDR, CONFIG_SYS_PCIE3_PHYS_ADDR,
337*4882a593Smuzhiyun 	  CONFIG_SYS_PCIE3_PHYS_SIZE,
338*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
339*4882a593Smuzhiyun 	  PTE_BLOCK_NON_SHARE | PTE_BLOCK_PXN | PTE_BLOCK_UXN
340*4882a593Smuzhiyun 	},
341*4882a593Smuzhiyun 	{ CONFIG_SYS_FSL_DRAM_BASE3, CONFIG_SYS_FSL_DRAM_BASE3,
342*4882a593Smuzhiyun 	  CONFIG_SYS_FSL_DRAM_SIZE3,
343*4882a593Smuzhiyun 	  PTE_BLOCK_MEMTYPE(MT_NORMAL) |
344*4882a593Smuzhiyun 	  PTE_BLOCK_OUTER_SHARE | PTE_BLOCK_NS
345*4882a593Smuzhiyun 	},
346*4882a593Smuzhiyun #endif
347*4882a593Smuzhiyun #ifdef CONFIG_SYS_MEM_RESERVE_SECURE
348*4882a593Smuzhiyun 	{},	/* space holder for secure mem */
349*4882a593Smuzhiyun #endif
350*4882a593Smuzhiyun 	{},
351*4882a593Smuzhiyun };
352*4882a593Smuzhiyun #endif	/* !CONFIG_SYS_DCACHE_OFF */
353*4882a593Smuzhiyun 
354*4882a593Smuzhiyun int fsl_qoriq_core_to_cluster(unsigned int core);
355*4882a593Smuzhiyun u32 cpu_mask(void);
356*4882a593Smuzhiyun 
357*4882a593Smuzhiyun #endif /* _FSL_LAYERSCAPE_CPU_H */
358