36#ifndef LIBBSP_POWERPC_QORIQ_QORIQ_H
37#define LIBBSP_POWERPC_QORIQ_QORIQ_H
47#define QORIQ_FILL(a, b, s) uint8_t reserved_ ## b [b - a - sizeof(s)]
48#define QORIQ_RESERVE(a, b) uint8_t reserved_ ## b [b - a]
52 QORIQ_FILL(0x00000, 0x00010, uint32_t);
57 QORIQ_FILL(0x00000, 0x00010, uint32_t);
59 QORIQ_FILL(0x00010, 0x00020, uint32_t);
61 QORIQ_FILL(0x00020, 0x00030, uint32_t);
63 QORIQ_FILL(0x00030, 0x00040, uint32_t);
66#define GTCCR_TOG BSP_BBIT32(0)
67#define GTCCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
69#define GTBCR_CI BSP_BBIT32(0)
70#define GTBCR_COUNT(val) BSP_BFLD32(val, 1, 31)
71#define GTBCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
72#define GTBCR_COUNT_SET(reg, val) BSP_BFLD32SET(reg, val, 1, 31)
76 QORIQ_FILL(0x00000, 0x00010, uint32_t);
77 uint32_t internal [2];
78 QORIQ_FILL(0x00010, 0x00020, uint32_t [2]);
83 QORIQ_FILL(0x00000, 0x00010, uint32_t);
85 QORIQ_FILL(0x00010, 0x00020, uint32_t);
89 QORIQ_RESERVE(0x00000, 0x00040);
92 QORIQ_FILL(0x00080, 0x00090, uint32_t);
94 QORIQ_FILL(0x00090, 0x000a0, uint32_t);
96 QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
98 QORIQ_FILL(0x000b0, 0x01000, uint32_t);
103 QORIQ_FILL(0x00000, 0x00010, uint32_t);
105 QORIQ_FILL(0x00010, 0x00040, uint32_t);
108 QORIQ_FILL(0x00080, 0x00090, uint32_t);
110 QORIQ_FILL(0x00090, 0x000a0, uint32_t);
112 QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
114 QORIQ_FILL(0x000b0, 0x01000, uint32_t);
116 QORIQ_FILL(0x01000, 0x01020, uint32_t);
118 QORIQ_FILL(0x01020, 0x01080, uint32_t);
120 QORIQ_FILL(0x01080, 0x01090, uint32_t);
122 QORIQ_FILL(0x01090, 0x010a0, uint32_t);
125 QORIQ_FILL(0x010e0, 0x010f0, uint32_t);
127 QORIQ_FILL(0x010f0, 0x01100, uint32_t);
129 QORIQ_RESERVE(0x01200, 0x01300);
131 QORIQ_FILL(0x01300, 0x01308, uint32_t);
133 QORIQ_FILL(0x01308, 0x01310, uint32_t);
137 QORIQ_RESERVE(0x013d0, 0x01400);
139 QORIQ_RESERVE(0x01440, 0x01500);
141 QORIQ_FILL(0x01500, 0x01510, uint32_t);
143 QORIQ_FILL(0x01510, 0x01600, uint32_t);
145 QORIQ_RESERVE(0x01680, 0x01720);
147 QORIQ_FILL(0x01720, 0x01740, uint32_t);
149 QORIQ_FILL(0x01740, 0x020f0, uint32_t);
151 QORIQ_FILL(0x020f0, 0x02100, uint32_t);
153 QORIQ_RESERVE(0x02200, 0x02300);
155 QORIQ_FILL(0x02300, 0x02400, uint32_t);
157 QORIQ_RESERVE(0x02440, 0x02500);
159 QORIQ_FILL(0x02500, 0x02510, uint32_t);
161 QORIQ_FILL(0x02510, 0x10000, uint32_t);
163 QORIQ_RESERVE(0x10180, 0x10200);
166 QORIQ_RESERVE(0x11700, 0x11c00);
168 QORIQ_RESERVE(0x11d00, 0x13000);
170 QORIQ_RESERVE(0x13c00, 0x20000);
174#define GTTCR_ROVR(val) BSP_BFLD32(val, 5, 7)
175#define GTTCR_ROVR_GET(reg) BSP_BFLD32GET(reg, 5, 7)
176#define GTTCR_ROVR_SET(reg, val) BSP_BFLD32SET(reg, val, 5, 7)
177#define GTTCR_RTM BSP_BBIT32(15)
178#define GTTCR_CLKR(val) BSP_BFLD32(val, 22, 23)
179#define GTTCR_CLKR_GET(reg) BSP_BFLD32GET(reg, 22, 23)
180#define GTTCR_CLKR_SET(reg, val) BSP_BFLD32SET(reg, val, 22, 23)
181#define GTTCR_CASC(val) BSP_BFLD32(val, 29, 31)
182#define GTTCR_CASC_GET(reg) BSP_BFLD32GET(reg, 29, 31)
183#define GTTCR_CASC_SET(reg, val) BSP_BFLD32SET(reg, val, 29, 31)
196 QORIQ_RESERVE(0x001c, 0x1000);
200 QORIQ_RESERVE(0x000, 0x100);
205 QORIQ_RESERVE(0x10c, 0x120);
208 QORIQ_RESERVE(0x128, 0x140);
213 QORIQ_RESERVE(0x150, 0x154);
215 uint32_t periodiclistbase;
219 uint32_t asynclistaddr;
222 QORIQ_RESERVE(0x15c, 0x160);
224 uint32_t txfilltuning;
225 QORIQ_RESERVE(0x168, 0x170);
227 QORIQ_RESERVE(0x174, 0x180);
230 QORIQ_RESERVE(0x188, 0x1a8);
232 uint32_t endptsetupstat;
233 uint32_t endpointprime;
235 uint32_t endptstatus;
236 uint32_t endptcomplete;
237 uint32_t endptctrl[6];
238 QORIQ_RESERVE(0x1d8, 0x400);
241 uint32_t age_cnt_thresh;
244 QORIQ_RESERVE(0x414, 0x500);
267 QORIQ_FILL(0x00044, 0x00050, uint32_t);
269 QORIQ_FILL(0x00050, 0x000fc, uint32_t);
271 QORIQ_FILL(0x000fc, 0x0040c, uint32_t);
275#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
289#define LCC_BSTAR_EN BSP_BBIT32(0)
295 uint32_t reserved_0xc;
299 uint32_t reserved_0x0[640];
300 uint32_t qmbm_warmrst;
304 QORIQ_RESERVE(0x0000, 0x1000);
308 QORIQ_RESERVE(0x0000, 0x1000);
312 QORIQ_RESERVE(0x000000, 0x100000);
317 QORIQ_FILL(0x000000, 0x000c00,
qoriq_lcc);
319 QORIQ_FILL(0x000c00, 0x001000,
qoriq_law [32]);
320 QORIQ_RESERVE(0x001000, 0x040000);
322 QORIQ_FILL(0x040000, 0x070000,
qoriq_pic);
323 QORIQ_RESERVE(0x070000, 0x0e0000);
325 QORIQ_FILL(0x0e0000, 0x0e1000, qoriq_dcfg);
326 QORIQ_RESERVE(0x0e1000, 0x114000);
329 QORIQ_RESERVE(0x115000, 0x11c500);
338 QORIQ_RESERVE(0x11e000, 0x130000);
340 QORIQ_RESERVE(0x134000, 0x210000);
342 QORIQ_FILL(0x210000, 0x211000,
qoriq_usb);
343 QORIQ_RESERVE(0x211000, 0x318000);
345 QORIQ_RESERVE(0x319000, 0x31a000);
347 QORIQ_RESERVE(0x31b000, 0x400000);
349 QORIQ_RESERVE(0x600000, 0x2000000);
360 uint32_t reserved_2 [3];
364#define CCSRBAR_BASE_ADDR(val) BSP_BFLD32(val, 8, 23)
365#define CCSRBAR_BASE_ADDR_GET(reg) BSP_BFLD32GET(reg, 8, 23)
366#define CCSRBAR_BASE_ADDR_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 23)
368#define ALTCBAR_BASE_ADDR(val) BSP_BFLD32(val, 8, 23)
369#define ALTCBAR_BASE_ADDR_GET(reg) BSP_BFLD32GET(reg, 8, 23)
370#define ALTCBAR_BASE_ADDR_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 23)
372#define ALTCAR_EN BSP_BBIT32(0)
373#define ALTCAR_TRGT_ID(val) BSP_BFLD32(val, 8, 11)
374#define ALTCAR_TRGT_ID_GET(reg) BSP_BFLD32GET(reg, 8, 11)
375#define ALTCAR_TRGT_ID_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 11)
377#define BPTR_EN BSP_BBIT32(0)
378#define BPTR_BOOT_PAGE(val) BSP_BFLD32(val, 8, 31)
379#define BPTR_BOOT_PAGE_GET(reg) BSP_BFLD32GET(reg, 8, 31)
380#define BPTR_BOOT_PAGE_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 31)
386 uint32_t reserved_1 [5];
389#define LAWBAR_BASE_ADDR(val) BSP_BFLD32(val, 8, 31)
390#define LAWBAR_BASE_ADDR_GET(reg) BSP_BFLD32GET(reg, 8, 31)
391#define LAWBAR_BASE_ADDR_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 31)
393#define LAWAR_EN BSP_BBIT32(0)
394#define LAWAR_TRGT(val) BSP_BFLD32(val, 8, 11)
395#define LAWAR_TRGT_GET(reg) BSP_BFLD32GET(reg, 8, 11)
396#define LAWAR_TRGT_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 11)
397#define LAWAR_SIZE(val) BSP_BFLD32(val, 26, 31)
398#define LAWAR_SIZE_GET(reg) BSP_BFLD32GET(reg, 26, 31)
399#define LAWAR_SIZE_SET(reg, val) BSP_BFLD32SET(reg, val, 26, 31)
456 QORIQ_FILL(0x00c08, 0x01000,
qoriq_law [12]);
463 QORIQ_RESERVE(0x04000, 0x04500);
468 QORIQ_RESERVE(0x04700, 0x05000);
473 QORIQ_RESERVE(0x07000, 0x08000);
480 QORIQ_RESERVE(0x0b000, 0x0c000);
483 QORIQ_RESERVE(0x0d000, 0x0f000);
485 QORIQ_RESERVE(0x10000, 0x16000);
488 QORIQ_RESERVE(0x17000, 0x20000);
503 QORIQ_RESERVE(0x27000, 0x2c000);
506 QORIQ_RESERVE(0x2d000, 0x2e000);
509 QORIQ_RESERVE(0x2f000, 0x30000);
512 QORIQ_RESERVE(0x31000, 0x40000);
515 QORIQ_RESERVE(0x80000, 0xb0000);
522 QORIQ_RESERVE(0xb3000, 0xb4000);
529 QORIQ_RESERVE(0xb7000, 0xc0000);
540 QORIQ_RESERVE(0xe4000, 0xf0000);
549#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
550extern uint8_t qoriq_bman_portal[2][16777216];
551extern uint8_t qoriq_qman_portal[2][16777216];
553void qoriq_clear_ce_portal(
void *base,
size_t size);
554void qoriq_clear_ci_portal(
void *base,
size_t size);
557static inline void qoriq_reset_qman_and_bman(
void)
559#if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
560 qoriq.dcfg.qmbm_warmrst = 0x3;
562 while ((qoriq.dcfg.qmbm_warmrst & 0x3) != 0) {
This header file provides utility macros for BSPs.
Definition: intercom.c:87
Definition: 8xx_immap.h:210
unsigned size
Definition: tte.h:1