Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:57

0001 /* SPDX-License-Identifier: BSD-2-Clause */
0002 
0003 /**
0004  * @file
0005  *
0006  * @ingroup RTEMSBSPsPowerPCQorIQ
0007  *
0008  * @brief QorIQ Configuration, Control and Status Registers.
0009  */
0010 
0011 /*
0012  * Copyright (C) 2010, 2015 embedded brains GmbH & Co. KG
0013  *
0014  * Redistribution and use in source and binary forms, with or without
0015  * modification, are permitted provided that the following conditions
0016  * are met:
0017  * 1. Redistributions of source code must retain the above copyright
0018  *    notice, this list of conditions and the following disclaimer.
0019  * 2. Redistributions in binary form must reproduce the above copyright
0020  *    notice, this list of conditions and the following disclaimer in the
0021  *    documentation and/or other materials provided with the distribution.
0022  *
0023  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0024  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0025  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0026  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
0027  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0028  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0029  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0030  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0031  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0032  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0033  * POSSIBILITY OF SUCH DAMAGE.
0034  */
0035 
0036 #ifndef LIBBSP_POWERPC_QORIQ_QORIQ_H
0037 #define LIBBSP_POWERPC_QORIQ_QORIQ_H
0038 
0039 #include <bsp.h>
0040 #include <bsp/tsec.h>
0041 #include <bsp/utility.h>
0042 
0043 #ifdef __cplusplus
0044 extern "C" {
0045 #endif /* __cplusplus */
0046 
0047 #define QORIQ_FILL(a, b, s) uint8_t reserved_ ## b [b - a - sizeof(s)]
0048 #define QORIQ_RESERVE(a, b) uint8_t reserved_ ## b [b - a]
0049 
0050 typedef struct {
0051   uint32_t reg;
0052   QORIQ_FILL(0x00000, 0x00010, uint32_t);
0053 } qoriq_pic_reg;
0054 
0055 typedef struct {
0056   uint32_t ccr;
0057   QORIQ_FILL(0x00000, 0x00010, uint32_t);
0058   uint32_t bcr;
0059   QORIQ_FILL(0x00010, 0x00020, uint32_t);
0060   uint32_t vpr;
0061   QORIQ_FILL(0x00020, 0x00030, uint32_t);
0062   uint32_t dr;
0063   QORIQ_FILL(0x00030, 0x00040, uint32_t);
0064 } qoriq_pic_global_timer;
0065 
0066 #define GTCCR_TOG BSP_BBIT32(0)
0067 #define GTCCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
0068 
0069 #define GTBCR_CI BSP_BBIT32(0)
0070 #define GTBCR_COUNT(val) BSP_BFLD32(val, 1, 31)
0071 #define GTBCR_COUNT_GET(reg) BSP_BFLD32GET(reg, 1, 31)
0072 #define GTBCR_COUNT_SET(reg, val) BSP_BFLD32SET(reg, val, 1, 31)
0073 
0074 typedef struct {
0075   uint32_t misc;
0076   QORIQ_FILL(0x00000, 0x00010, uint32_t);
0077   uint32_t internal [2];
0078   QORIQ_FILL(0x00010, 0x00020, uint32_t [2]);
0079 } qoriq_pic_bit_field;
0080 
0081 typedef struct {
0082   uint32_t vpr;
0083   QORIQ_FILL(0x00000, 0x00010, uint32_t);
0084   uint32_t dr;
0085   QORIQ_FILL(0x00010, 0x00020, uint32_t);
0086 } qoriq_pic_src_cfg;
0087 
0088 typedef struct {
0089   QORIQ_RESERVE(0x00000, 0x00040);
0090   qoriq_pic_reg ipidr [4];
0091   uint32_t ctpr;
0092   QORIQ_FILL(0x00080, 0x00090, uint32_t);
0093   uint32_t whoami;
0094   QORIQ_FILL(0x00090, 0x000a0, uint32_t);
0095   uint32_t iack;
0096   QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
0097   uint32_t eoi;
0098   QORIQ_FILL(0x000b0, 0x01000, uint32_t);
0099 } qoriq_pic_per_cpu;
0100 
0101 typedef struct {
0102   uint32_t brr1;
0103   QORIQ_FILL(0x00000, 0x00010, uint32_t);
0104   uint32_t brr2;
0105   QORIQ_FILL(0x00010, 0x00040, uint32_t);
0106   qoriq_pic_reg ipidr [4];
0107   uint32_t ctpr;
0108   QORIQ_FILL(0x00080, 0x00090, uint32_t);
0109   uint32_t whoami;
0110   QORIQ_FILL(0x00090, 0x000a0, uint32_t);
0111   uint32_t iack;
0112   QORIQ_FILL(0x000a0, 0x000b0, uint32_t);
0113   uint32_t eoi;
0114   QORIQ_FILL(0x000b0, 0x01000, uint32_t);
0115   uint32_t frr;
0116   QORIQ_FILL(0x01000, 0x01020, uint32_t);
0117   uint32_t gcr;
0118   QORIQ_FILL(0x01020, 0x01080, uint32_t);
0119   uint32_t vir;
0120   QORIQ_FILL(0x01080, 0x01090, uint32_t);
0121   uint32_t pir;
0122   QORIQ_FILL(0x01090, 0x010a0, uint32_t);
0123   qoriq_pic_reg ipivpr [4];
0124   uint32_t svr;
0125   QORIQ_FILL(0x010e0, 0x010f0, uint32_t);
0126   uint32_t tfrra;
0127   QORIQ_FILL(0x010f0, 0x01100, uint32_t);
0128   qoriq_pic_global_timer gta [4];
0129   QORIQ_RESERVE(0x01200, 0x01300);
0130   uint32_t tcra;
0131   QORIQ_FILL(0x01300, 0x01308, uint32_t);
0132   uint32_t erqsr;
0133   QORIQ_FILL(0x01308, 0x01310, uint32_t);
0134   qoriq_pic_bit_field irqsr;
0135   qoriq_pic_bit_field cisr;
0136   qoriq_pic_bit_field pm [4];
0137   QORIQ_RESERVE(0x013d0, 0x01400);
0138   qoriq_pic_reg msgr03 [4];
0139   QORIQ_RESERVE(0x01440, 0x01500);
0140   uint32_t mer03;
0141   QORIQ_FILL(0x01500, 0x01510, uint32_t);
0142   uint32_t msr03;
0143   QORIQ_FILL(0x01510, 0x01600, uint32_t);
0144   qoriq_pic_reg msir [8];
0145   QORIQ_RESERVE(0x01680, 0x01720);
0146   uint32_t msisr;
0147   QORIQ_FILL(0x01720, 0x01740, uint32_t);
0148   uint32_t msiir;
0149   QORIQ_FILL(0x01740, 0x020f0, uint32_t);
0150   uint32_t tfrrb;
0151   QORIQ_FILL(0x020f0, 0x02100, uint32_t);
0152   qoriq_pic_global_timer gtb [4];
0153   QORIQ_RESERVE(0x02200, 0x02300);
0154   uint32_t tcrb;
0155   QORIQ_FILL(0x02300, 0x02400, uint32_t);
0156   qoriq_pic_reg msgr47 [4];
0157   QORIQ_RESERVE(0x02440, 0x02500);
0158   uint32_t mer47;
0159   QORIQ_FILL(0x02500, 0x02510, uint32_t);
0160   uint32_t msr47;
0161   QORIQ_FILL(0x02510, 0x10000, uint32_t);
0162   qoriq_pic_src_cfg ei [12];
0163   QORIQ_RESERVE(0x10180, 0x10200);
0164   qoriq_pic_src_cfg ii_0 [160];
0165   qoriq_pic_src_cfg mi [8];
0166   QORIQ_RESERVE(0x11700, 0x11c00);
0167   qoriq_pic_src_cfg msi [8];
0168   QORIQ_RESERVE(0x11d00, 0x13000);
0169   qoriq_pic_src_cfg ii_1 [96];
0170   QORIQ_RESERVE(0x13c00, 0x20000);
0171   qoriq_pic_per_cpu per_cpu [2];
0172 } qoriq_pic;
0173 
0174 #define GTTCR_ROVR(val) BSP_BFLD32(val, 5, 7)
0175 #define GTTCR_ROVR_GET(reg) BSP_BFLD32GET(reg, 5, 7)
0176 #define GTTCR_ROVR_SET(reg, val) BSP_BFLD32SET(reg, val, 5, 7)
0177 #define GTTCR_RTM BSP_BBIT32(15)
0178 #define GTTCR_CLKR(val) BSP_BFLD32(val, 22, 23)
0179 #define GTTCR_CLKR_GET(reg) BSP_BFLD32GET(reg, 22, 23)
0180 #define GTTCR_CLKR_SET(reg, val) BSP_BFLD32SET(reg, val, 22, 23)
0181 #define GTTCR_CASC(val) BSP_BFLD32(val, 29, 31)
0182 #define GTTCR_CASC_GET(reg) BSP_BFLD32GET(reg, 29, 31)
0183 #define GTTCR_CASC_SET(reg, val) BSP_BFLD32SET(reg, val, 29, 31)
0184 
0185 typedef struct {
0186 } qoriq_uart;
0187 
0188 typedef struct {
0189   uint32_t gpdir;
0190   uint32_t gpodr;
0191   uint32_t gpdat;
0192   uint32_t gpier;
0193   uint32_t gpimr;
0194   uint32_t gpicr;
0195   uint32_t gpibe;
0196   QORIQ_RESERVE(0x001c, 0x1000);
0197 } qoriq_gpio;
0198 
0199 typedef struct {
0200   QORIQ_RESERVE(0x000, 0x100);
0201   uint16_t caplength;
0202   uint16_t hciversion;
0203   uint32_t hcsparams;
0204   uint32_t hccparams;
0205   QORIQ_RESERVE(0x10c, 0x120);
0206   uint32_t dciversion;
0207   uint32_t dccparams;
0208   QORIQ_RESERVE(0x128, 0x140);
0209   uint32_t usbcmd;
0210   uint32_t usbsts;
0211   uint32_t usbintr;
0212   uint32_t frindex;
0213   QORIQ_RESERVE(0x150, 0x154);
0214   union {
0215     uint32_t periodiclistbase;
0216     uint32_t deviceaddr;
0217   } perbase_devaddr;
0218   union {
0219     uint32_t asynclistaddr;
0220     uint32_t addr;
0221   } async_addr;
0222   QORIQ_RESERVE(0x15c, 0x160);
0223   uint32_t burstsize;
0224   uint32_t txfilltuning;
0225   QORIQ_RESERVE(0x168, 0x170);
0226   uint32_t viewport;
0227   QORIQ_RESERVE(0x174, 0x180);
0228   uint32_t configflag;
0229   uint32_t portsc1;
0230   QORIQ_RESERVE(0x188, 0x1a8);
0231   uint32_t usbmode;
0232   uint32_t endptsetupstat;
0233   uint32_t endpointprime;
0234   uint32_t endptflush;
0235   uint32_t endptstatus;
0236   uint32_t endptcomplete;
0237   uint32_t endptctrl[6];
0238   QORIQ_RESERVE(0x1d8, 0x400);
0239   uint32_t snoop1;
0240   uint32_t snoop2;
0241   uint32_t age_cnt_thresh;
0242   uint32_t pri_ctrl;
0243   uint32_t si_ctrl;
0244   QORIQ_RESERVE(0x414, 0x500);
0245   uint32_t control;
0246 } qoriq_usb;
0247 
0248 typedef struct {
0249   uint32_t dsaddr;
0250   uint32_t blkattr;
0251   uint32_t cmdarg;
0252   uint32_t xfertyp;
0253   uint32_t cmdrsp0;
0254   uint32_t cmdrsp1;
0255   uint32_t cmdrsp2;
0256   uint32_t cmdrsp3;
0257   uint32_t datport;
0258   uint32_t prsstat;
0259   uint32_t proctl;
0260   uint32_t sysctl;
0261   uint32_t irqstat;
0262   uint32_t irqstaten;
0263   uint32_t irqsigen;
0264   uint32_t autoc12err;
0265   uint32_t hostcapblt;
0266   uint32_t wml;
0267   QORIQ_FILL(0x00044, 0x00050, uint32_t);
0268   uint32_t fevt;
0269   QORIQ_FILL(0x00050, 0x000fc, uint32_t);
0270   uint32_t hostver;
0271   QORIQ_FILL(0x000fc, 0x0040c, uint32_t);
0272   uint32_t dcr;
0273 } qoriq_esdhc;
0274 
0275 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
0276 
0277 typedef struct {
0278     uint32_t ccsrbarh;
0279     uint32_t ccsrbarl;
0280     uint32_t ccsrar;
0281     uint32_t altcbarh;
0282     uint32_t altcbarl;
0283     uint32_t altcar;
0284     uint32_t bstrh;
0285     uint32_t bstrl;
0286     uint32_t bstar;
0287 } qoriq_lcc;
0288 
0289 #define LCC_BSTAR_EN BSP_BBIT32(0)
0290 
0291 typedef struct {
0292     uint32_t lawbarh;
0293     uint32_t lawbarl;
0294     uint32_t lawar;
0295     uint32_t reserved_0xc;
0296 } qoriq_law;
0297 
0298 typedef struct {
0299   uint32_t reserved_0x0[640];
0300   uint32_t qmbm_warmrst;
0301 } qoriq_dcfg;
0302 
0303 typedef struct {
0304   QORIQ_RESERVE(0x0000, 0x1000);
0305 } qoriq_bman;
0306 
0307 typedef struct {
0308   QORIQ_RESERVE(0x0000, 0x1000);
0309 } qoriq_qman;
0310 
0311 typedef struct {
0312   QORIQ_RESERVE(0x000000, 0x100000);
0313 } qoriq_fman;
0314 
0315 typedef struct qoriq_ccsr {
0316   qoriq_lcc lcc;
0317   QORIQ_FILL(0x000000, 0x000c00, qoriq_lcc);
0318   qoriq_law law [32];
0319   QORIQ_FILL(0x000c00, 0x001000, qoriq_law [32]);
0320   QORIQ_RESERVE(0x001000, 0x040000);
0321   qoriq_pic pic;
0322   QORIQ_FILL(0x040000, 0x070000, qoriq_pic);
0323   QORIQ_RESERVE(0x070000, 0x0e0000);
0324   qoriq_dcfg dcfg;
0325   QORIQ_FILL(0x0e0000, 0x0e1000, qoriq_dcfg);
0326   QORIQ_RESERVE(0x0e1000, 0x114000);
0327   qoriq_esdhc esdhc;
0328   QORIQ_FILL(0x114000, 0x115000, qoriq_esdhc);
0329   QORIQ_RESERVE(0x115000, 0x11c500);
0330   qoriq_uart uart_0;
0331   QORIQ_FILL(0x11c500, 0x11c600, qoriq_uart);
0332   qoriq_uart uart_1;
0333   QORIQ_FILL(0x11c600, 0x11d500, qoriq_uart);
0334   qoriq_uart uart_2;
0335   QORIQ_FILL(0x11d500, 0x11d600, qoriq_uart);
0336   qoriq_uart uart_3;
0337   QORIQ_FILL(0x11d600, 0x11e000, qoriq_uart);
0338   QORIQ_RESERVE(0x11e000, 0x130000);
0339   qoriq_gpio gpio[4];
0340   QORIQ_RESERVE(0x134000, 0x210000);
0341   qoriq_usb usb_1;
0342   QORIQ_FILL(0x210000, 0x211000, qoriq_usb);
0343   QORIQ_RESERVE(0x211000, 0x318000);
0344   qoriq_qman qman;
0345   QORIQ_RESERVE(0x319000, 0x31a000);
0346   qoriq_bman bman;
0347   QORIQ_RESERVE(0x31b000, 0x400000);
0348   qoriq_fman fman[2];
0349   QORIQ_RESERVE(0x600000, 0x2000000);
0350 } qoriq_ccsr;
0351 
0352 #else /* QORIQ_CHIP_VARIANT */
0353 
0354 typedef struct {
0355     uint32_t ccsrbar;
0356     uint32_t reserved_0;
0357     uint32_t altcbar;
0358     uint32_t reserved_1;
0359     uint32_t altcar;
0360     uint32_t reserved_2 [3];
0361     uint32_t bptr;
0362 } qoriq_lcc;
0363 
0364 #define CCSRBAR_BASE_ADDR(val) BSP_BFLD32(val, 8, 23)
0365 #define CCSRBAR_BASE_ADDR_GET(reg) BSP_BFLD32GET(reg, 8, 23)
0366 #define CCSRBAR_BASE_ADDR_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 23)
0367 
0368 #define ALTCBAR_BASE_ADDR(val) BSP_BFLD32(val, 8, 23)
0369 #define ALTCBAR_BASE_ADDR_GET(reg) BSP_BFLD32GET(reg, 8, 23)
0370 #define ALTCBAR_BASE_ADDR_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 23)
0371 
0372 #define ALTCAR_EN BSP_BBIT32(0)
0373 #define ALTCAR_TRGT_ID(val) BSP_BFLD32(val, 8, 11)
0374 #define ALTCAR_TRGT_ID_GET(reg) BSP_BFLD32GET(reg, 8, 11)
0375 #define ALTCAR_TRGT_ID_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 11)
0376 
0377 #define BPTR_EN BSP_BBIT32(0)
0378 #define BPTR_BOOT_PAGE(val) BSP_BFLD32(val, 8, 31)
0379 #define BPTR_BOOT_PAGE_GET(reg) BSP_BFLD32GET(reg, 8, 31)
0380 #define BPTR_BOOT_PAGE_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 31)
0381 
0382 typedef struct {
0383     uint32_t bar;
0384     uint32_t reserved_0;
0385     uint32_t ar;
0386     uint32_t reserved_1 [5];
0387 } qoriq_law;
0388 
0389 #define LAWBAR_BASE_ADDR(val) BSP_BFLD32(val, 8, 31)
0390 #define LAWBAR_BASE_ADDR_GET(reg) BSP_BFLD32GET(reg, 8, 31)
0391 #define LAWBAR_BASE_ADDR_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 31)
0392 
0393 #define LAWAR_EN BSP_BBIT32(0)
0394 #define LAWAR_TRGT(val) BSP_BFLD32(val, 8, 11)
0395 #define LAWAR_TRGT_GET(reg) BSP_BFLD32GET(reg, 8, 11)
0396 #define LAWAR_TRGT_SET(reg, val) BSP_BFLD32SET(reg, val, 8, 11)
0397 #define LAWAR_SIZE(val) BSP_BFLD32(val, 26, 31)
0398 #define LAWAR_SIZE_GET(reg) BSP_BFLD32GET(reg, 26, 31)
0399 #define LAWAR_SIZE_SET(reg, val) BSP_BFLD32SET(reg, val, 26, 31)
0400 
0401 typedef struct {
0402 } qoriq_ecm;
0403 
0404 typedef struct {
0405 } qoriq_ddr_controller;
0406 
0407 typedef struct {
0408 } qoriq_i2c;
0409 
0410 typedef struct {
0411 } qoriq_local_bus;
0412 
0413 typedef struct {
0414 } qoriq_spi;
0415 
0416 typedef struct {
0417 } qoriq_pci_express;
0418 
0419 typedef struct {
0420 } qoriq_tdm;
0421 
0422 typedef struct {
0423 } qoriq_l2_cache;
0424 
0425 typedef struct {
0426 } qoriq_dma;
0427 
0428 typedef struct {
0429 } qoriq_tdm_dma;
0430 
0431 typedef struct {
0432 } qoriq_sec;
0433 
0434 typedef struct {
0435 } qoriq_serial_rapid_io;
0436 
0437 typedef struct {
0438 } qoriq_global_utilities;
0439 
0440 typedef struct {
0441 } qoriq_performance_monitor;
0442 
0443 typedef struct {
0444 } qoriq_debug_watchpoint;
0445 
0446 typedef struct {
0447 } qoriq_serdes;
0448 
0449 typedef struct {
0450 } qoriq_boot_rom;
0451 
0452 typedef struct qoriq_ccsr {
0453   qoriq_lcc lcc;
0454   QORIQ_FILL(0x00000, 0x00c08, qoriq_lcc);
0455   qoriq_law law [12];
0456   QORIQ_FILL(0x00c08, 0x01000, qoriq_law [12]);
0457   qoriq_ecm ecm;
0458   QORIQ_FILL(0x01000, 0x02000, qoriq_ecm);
0459   qoriq_ddr_controller ddr_controller;
0460   QORIQ_FILL(0x02000, 0x03000, qoriq_ddr_controller);
0461   qoriq_i2c i2c;
0462   QORIQ_FILL(0x03000, 0x04000, qoriq_i2c);
0463   QORIQ_RESERVE(0x04000, 0x04500);
0464   qoriq_uart uart_0;
0465   QORIQ_FILL(0x04500, 0x04600, qoriq_uart);
0466   qoriq_uart uart_1;
0467   QORIQ_FILL(0x04600, 0x04700, qoriq_uart);
0468   QORIQ_RESERVE(0x04700, 0x05000);
0469   qoriq_local_bus local_bus;
0470   QORIQ_FILL(0x05000, 0x06000, qoriq_local_bus);
0471   qoriq_spi spi;
0472   QORIQ_FILL(0x06000, 0x07000, qoriq_spi);
0473   QORIQ_RESERVE(0x07000, 0x08000);
0474   qoriq_pci_express pci_express_3;
0475   QORIQ_FILL(0x08000, 0x09000, qoriq_pci_express);
0476   qoriq_pci_express pci_express_2;
0477   QORIQ_FILL(0x09000, 0x0a000, qoriq_pci_express);
0478   qoriq_pci_express pci_express_1;
0479   QORIQ_FILL(0x0a000, 0x0b000, qoriq_pci_express);
0480   QORIQ_RESERVE(0x0b000, 0x0c000);
0481   qoriq_dma dma_2;
0482   QORIQ_FILL(0x0c000, 0x0d000, qoriq_dma);
0483   QORIQ_RESERVE(0x0d000, 0x0f000);
0484   qoriq_gpio gpio;
0485   QORIQ_RESERVE(0x10000, 0x16000);
0486   qoriq_tdm tdm;
0487   QORIQ_FILL(0x16000, 0x17000, qoriq_tdm);
0488   QORIQ_RESERVE(0x17000, 0x20000);
0489   qoriq_l2_cache l2_cache;
0490   QORIQ_FILL(0x20000, 0x21000, qoriq_l2_cache);
0491   qoriq_dma dma_1;
0492   QORIQ_FILL(0x21000, 0x22000, qoriq_dma);
0493   qoriq_usb usb_1;
0494   QORIQ_FILL(0x22000, 0x23000, qoriq_usb);
0495   qoriq_usb usb_2;
0496   QORIQ_FILL(0x23000, 0x24000, qoriq_usb);
0497   tsec_registers tsec_1;
0498   QORIQ_FILL(0x24000, 0x25000, tsec_registers);
0499   tsec_registers tsec_2;
0500   QORIQ_FILL(0x25000, 0x26000, tsec_registers);
0501   tsec_registers tsec_3;
0502   QORIQ_FILL(0x26000, 0x27000, tsec_registers);
0503   QORIQ_RESERVE(0x27000, 0x2c000);
0504   qoriq_tdm_dma tdm_dma;
0505   QORIQ_FILL(0x2c000, 0x2d000, qoriq_tdm_dma);
0506   QORIQ_RESERVE(0x2d000, 0x2e000);
0507   qoriq_esdhc esdhc;
0508   QORIQ_FILL(0x2e000, 0x2f000, qoriq_esdhc);
0509   QORIQ_RESERVE(0x2f000, 0x30000);
0510   qoriq_sec sec;
0511   QORIQ_FILL(0x30000, 0x31000, qoriq_sec);
0512   QORIQ_RESERVE(0x31000, 0x40000);
0513   qoriq_pic pic;
0514   QORIQ_FILL(0x40000, 0x80000, qoriq_pic);
0515   QORIQ_RESERVE(0x80000, 0xb0000);
0516   tsec_registers tsec_1_group_0;
0517   QORIQ_FILL(0xb0000, 0xb1000, tsec_registers);
0518   tsec_registers tsec_2_group_0;
0519   QORIQ_FILL(0xb1000, 0xb2000, tsec_registers);
0520   tsec_registers tsec_3_group_0;
0521   QORIQ_FILL(0xb2000, 0xb3000, tsec_registers);
0522   QORIQ_RESERVE(0xb3000, 0xb4000);
0523   tsec_registers tsec_1_group_1;
0524   QORIQ_FILL(0xb4000, 0xb5000, tsec_registers);
0525   tsec_registers tsec_2_group_1;
0526   QORIQ_FILL(0xb5000, 0xb6000, tsec_registers);
0527   tsec_registers tsec_3_group_1;
0528   QORIQ_FILL(0xb6000, 0xb7000, tsec_registers);
0529   QORIQ_RESERVE(0xb7000, 0xc0000);
0530   qoriq_serial_rapid_io serial_rapid_io;
0531   QORIQ_FILL(0xc0000, 0xe0000, qoriq_serial_rapid_io);
0532   qoriq_global_utilities global_utilities;
0533   QORIQ_FILL(0xe0000, 0xe1000, qoriq_global_utilities);
0534   qoriq_performance_monitor performance_monitor;
0535   QORIQ_FILL(0xe1000, 0xe2000, qoriq_performance_monitor);
0536   qoriq_debug_watchpoint debug_watchpoint;
0537   QORIQ_FILL(0xe2000, 0xe3000, qoriq_debug_watchpoint);
0538   qoriq_serdes serdes;
0539   QORIQ_FILL(0xe3000, 0xe4000, qoriq_serdes);
0540   QORIQ_RESERVE(0xe4000, 0xf0000);
0541   qoriq_boot_rom boot_rom;
0542   QORIQ_FILL(0xf0000, 0x100000, qoriq_boot_rom);
0543 } qoriq_ccsr;
0544 
0545 #endif /* QORIQ_CHIP_VARIANT */
0546 
0547 extern volatile qoriq_ccsr qoriq;
0548 
0549 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
0550 extern uint8_t qoriq_bman_portal[2][16777216];
0551 extern uint8_t qoriq_qman_portal[2][16777216];
0552 
0553 void qoriq_clear_ce_portal(void *base, size_t size);
0554 void qoriq_clear_ci_portal(void *base, size_t size);
0555 #endif
0556 
0557 static inline void qoriq_reset_qman_and_bman(void)
0558 {
0559 #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT)
0560   qoriq.dcfg.qmbm_warmrst = 0x3;
0561 
0562   while ((qoriq.dcfg.qmbm_warmrst & 0x3) != 0) {
0563     /* Wait for reset done */
0564   }
0565 #endif
0566 }
0567 
0568 #ifdef __cplusplus
0569 }
0570 #endif /* __cplusplus */
0571 
0572 #endif /* LIBBSP_POWERPC_QORIQ_QORIQ_H */