]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - arch/powerpc/include/asm/immap_85xx.h
powerpc/srio: Rewrite the struct ccsr_rio
[karo-tx-uboot.git] / arch / powerpc / include / asm / immap_85xx.h
index 5486427c01c3c61282767245be34e4a1ecd1557c..c4d241b7efb8f922abc2ba12f692bbbd7066afe6 100644 (file)
@@ -1353,171 +1353,235 @@ typedef struct ccsr_cpm {
 } ccsr_cpm_t;
 #endif
 
-/* RapidIO Registers */
-typedef struct ccsr_rio {
-       u32     didcar;         /* Device Identity Capability */
-       u32     dicar;          /* Device Information Capability */
-       u32     aidcar;         /* Assembly Identity Capability */
-       u32     aicar;          /* Assembly Information Capability */
-       u32     pefcar;         /* Processing Element Features Capability */
-       u32     spicar;         /* Switch Port Information Capability */
-       u32     socar;          /* Source Operations Capability */
-       u32     docar;          /* Destination Operations Capability */
+#ifdef CONFIG_SYS_SRIO
+/* Architectural regsiters */
+struct rio_arch {
+       u32     didcar; /* Device Identity CAR */
+       u32     dicar;  /* Device Information CAR */
+       u32     aidcar; /* Assembly Identity CAR */
+       u32     aicar;  /* Assembly Information CAR */
+       u32     pefcar; /* Processing Element Features CAR */
+       u8      res0[4];
+       u32     socar;  /* Source Operations CAR */
+       u32     docar;  /* Destination Operations CAR */
        u8      res1[32];
-       u32     msr;            /* Mailbox Cmd And Status */
-       u32     pwdcsr;         /* Port-Write & Doorbell Cmd And Status */
+       u32     mcsr;   /* Mailbox CSR */
+       u32     pwdcsr; /* Port-Write and Doorbell CSR */
        u8      res2[4];
        u32     pellccsr;       /* Processing Element Logic Layer CCSR */
        u8      res3[12];
-       u32     lcsbacsr;       /* Local Cfg Space Base Addr Cmd & Status */
-       u32     bdidcsr;        /* Base Device ID Cmd & Status */
+       u32     lcsbacsr;       /* Local Configuration Space BACSR */
+       u32     bdidcsr;        /* Base Device ID CSR */
        u8      res4[4];
-       u32     hbdidlcsr;      /* Host Base Device ID Lock Cmd & Status */
-       u32     ctcsr;          /* Component Tag Cmd & Status */
-       u8      res5[144];
-       u32     pmbh0csr;       /* Port Maint. Block Hdr 0 Cmd & Status */
-       u8      res6[28];
-       u32     pltoccsr;       /* Port Link Time-out Ctrl Cmd & Status */
-       u32     prtoccsr;       /* Port Response Time-out Ctrl Cmd & Status */
-       u8      res7[20];
-       u32     pgccsr;         /* Port General Cmd & Status */
-       u32     plmreqcsr;      /* Port Link Maint. Request Cmd & Status */
-       u32     plmrespcsr;     /* Port Link Maint. Response Cmd & Status */
-       u32     plascsr;        /* Port Local Ackid Status Cmd & Status */
-       u8      res8[12];
-       u32     pescsr;         /* Port Error & Status Cmd & Status */
-       u32     pccsr;          /* Port Control Cmd & Status */
-       u8      res9[65184];
-       u32     cr;             /* Port Control Cmd & Status */
-       u8      res10[12];
-       u32     pcr;            /* Port Configuration */
-       u32     peir;           /* Port Error Injection */
-       u8      res11[3048];
-       u32     rowtar0;        /* RIO Outbound Window Translation Addr 0 */
-       u8      res12[12];
-       u32     rowar0;         /* RIO Outbound Attrs 0 */
-       u8      res13[12];
-       u32     rowtar1;        /* RIO Outbound Window Translation Addr 1 */
-       u8      res14[4];
-       u32     rowbar1;        /* RIO Outbound Window Base Addr 1 */
-       u8      res15[4];
-       u32     rowar1;         /* RIO Outbound Attrs 1 */
-       u8      res16[12];
-       u32     rowtar2;        /* RIO Outbound Window Translation Addr 2 */
-       u8      res17[4];
-       u32     rowbar2;        /* RIO Outbound Window Base Addr 2 */
-       u8      res18[4];
-       u32     rowar2;         /* RIO Outbound Attrs 2 */
-       u8      res19[12];
-       u32     rowtar3;        /* RIO Outbound Window Translation Addr 3 */
-       u8      res20[4];
-       u32     rowbar3;        /* RIO Outbound Window Base Addr 3 */
-       u8      res21[4];
-       u32     rowar3;         /* RIO Outbound Attrs 3 */
-       u8      res22[12];
-       u32     rowtar4;        /* RIO Outbound Window Translation Addr 4 */
-       u8      res23[4];
-       u32     rowbar4;        /* RIO Outbound Window Base Addr 4 */
-       u8      res24[4];
-       u32     rowar4;         /* RIO Outbound Attrs 4 */
-       u8      res25[12];
-       u32     rowtar5;        /* RIO Outbound Window Translation Addr 5 */
-       u8      res26[4];
-       u32     rowbar5;        /* RIO Outbound Window Base Addr 5 */
-       u8      res27[4];
-       u32     rowar5;         /* RIO Outbound Attrs 5 */
-       u8      res28[12];
-       u32     rowtar6;        /* RIO Outbound Window Translation Addr 6 */
-       u8      res29[4];
-       u32     rowbar6;        /* RIO Outbound Window Base Addr 6 */
-       u8      res30[4];
-       u32     rowar6;         /* RIO Outbound Attrs 6 */
-       u8      res31[12];
-       u32     rowtar7;        /* RIO Outbound Window Translation Addr 7 */
-       u8      res32[4];
-       u32     rowbar7;        /* RIO Outbound Window Base Addr 7 */
-       u8      res33[4];
-       u32     rowar7;         /* RIO Outbound Attrs 7 */
-       u8      res34[12];
-       u32     rowtar8;        /* RIO Outbound Window Translation Addr 8 */
-       u8      res35[4];
-       u32     rowbar8;        /* RIO Outbound Window Base Addr 8 */
-       u8      res36[4];
-       u32     rowar8;         /* RIO Outbound Attrs 8 */
-       u8      res37[76];
-       u32     riwtar4;        /* RIO Inbound Window Translation Addr 4 */
-       u8      res38[4];
-       u32     riwbar4;        /* RIO Inbound Window Base Addr 4 */
-       u8      res39[4];
-       u32     riwar4;         /* RIO Inbound Attrs 4 */
-       u8      res40[12];
-       u32     riwtar3;        /* RIO Inbound Window Translation Addr 3 */
-       u8      res41[4];
-       u32     riwbar3;        /* RIO Inbound Window Base Addr 3 */
-       u8      res42[4];
-       u32     riwar3;         /* RIO Inbound Attrs 3 */
-       u8      res43[12];
-       u32     riwtar2;        /* RIO Inbound Window Translation Addr 2 */
-       u8      res44[4];
-       u32     riwbar2;        /* RIO Inbound Window Base Addr 2 */
-       u8      res45[4];
-       u32     riwar2;         /* RIO Inbound Attrs 2 */
-       u8      res46[12];
-       u32     riwtar1;        /* RIO Inbound Window Translation Addr 1 */
-       u8      res47[4];
-       u32     riwbar1;        /* RIO Inbound Window Base Addr 1 */
-       u8      res48[4];
-       u32     riwar1;         /* RIO Inbound Attrs 1 */
-       u8      res49[12];
-       u32     riwtar0;        /* RIO Inbound Window Translation Addr 0 */
-       u8      res50[12];
-       u32     riwar0;         /* RIO Inbound Attrs 0 */
-       u8      res51[12];
-       u32     pnfedr;         /* Port Notification/Fatal Error Detect */
-       u32     pnfedir;        /* Port Notification/Fatal Error Detect */
-       u32     pnfeier;        /* Port Notification/Fatal Error IRQ Enable */
-       u32     pecr;           /* Port Error Control */
-       u32     pepcsr0;        /* Port Error Packet/Control Symbol 0 */
-       u32     pepr1;          /* Port Error Packet 1 */
-       u32     pepr2;          /* Port Error Packet 2 */
-       u8      res52[4];
-       u32     predr;          /* Port Recoverable Error Detect */
-       u8      res53[4];
-       u32     pertr;          /* Port Error Recovery Threshold */
-       u32     prtr;           /* Port Retry Threshold */
-       u8      res54[464];
-       u32     omr;            /* Outbound Mode */
-       u32     osr;            /* Outbound Status */
-       u32     eodqtpar;       /* Extended Outbound Desc Queue Tail Ptr Addr */
-       u32     odqtpar;        /* Outbound Desc Queue Tail Ptr Addr */
-       u32     eosar;          /* Extended Outbound Unit Source Addr */
-       u32     osar;           /* Outbound Unit Source Addr */
-       u32     odpr;           /* Outbound Destination Port */
-       u32     odatr;          /* Outbound Destination Attrs */
-       u32     odcr;           /* Outbound Doubleword Count */
-       u32     eodqhpar;       /* Extended Outbound Desc Queue Head Ptr Addr */
-       u32     odqhpar;        /* Outbound Desc Queue Head Ptr Addr */
-       u8      res55[52];
-       u32     imr;            /* Outbound Mode */
-       u32     isr;            /* Inbound Status */
-       u32     eidqtpar;       /* Extended Inbound Desc Queue Tail Ptr Addr */
-       u32     idqtpar;        /* Inbound Desc Queue Tail Ptr Addr */
-       u32     eifqhpar;       /* Extended Inbound Frame Queue Head Ptr Addr */
-       u32     ifqhpar;        /* Inbound Frame Queue Head Ptr Addr */
-       u8      res56[1000];
-       u32     dmr;            /* Doorbell Mode */
-       u32     dsr;            /* Doorbell Status */
-       u32     edqtpar;        /* Extended Doorbell Queue Tail Ptr Addr */
-       u32     dqtpar;         /* Doorbell Queue Tail Ptr Addr */
-       u32     edqhpar;        /* Extended Doorbell Queue Head Ptr Addr */
-       u32     dqhpar;         /* Doorbell Queue Head Ptr Addr */
-       u8      res57[104];
-       u32     pwmr;           /* Port-Write Mode */
-       u32     pwsr;           /* Port-Write Status */
-       u32     epwqbar;        /* Extended Port-Write Queue Base Addr */
-       u32     pwqbar;         /* Port-Write Queue Base Addr */
-       u8      res58[60176];
-} ccsr_rio_t;
+       u32     hbdidlcsr;      /* Host Base Device ID Lock CSR */
+       u32     ctcsr;  /* Component Tag CSR */
+};
+
+/* Extended Features Space: 1x/4x LP-Serial Port registers */
+struct rio_lp_serial_port {
+       u32     plmreqcsr;      /* Port Link Maintenance Request CSR */
+       u32     plmrespcsr;     /* Port Link Maintenance Response CS */
+       u32     plascsr;        /* Port Local Ackid Status CSR */
+       u8      res0[12];
+       u32     pescsr; /* Port Error and Status CSR */
+       u32     pccsr;  /* Port Control CSR */
+};
+
+/* Extended Features Space: 1x/4x LP-Serial registers */
+struct rio_lp_serial {
+       u32     pmbh0csr;       /* Port Maintenance Block Header 0 CSR */
+       u8      res0[28];
+       u32     pltoccsr;       /* Port Link Time-out CCSR */
+       u32     prtoccsr;       /* Port Response Time-out CCSR */
+       u8      res1[20];
+       u32     pgccsr; /* Port General CSR */
+       struct rio_lp_serial_port       port[CONFIG_SYS_FSL_SRIO_MAX_PORTS];
+};
+
+/* Logical error reporting registers */
+struct rio_logical_err {
+       u32     erbh;   /* Error Reporting Block Header Register */
+       u8      res0[4];
+       u32     ltledcsr;       /* Logical/Transport layer error DCSR */
+       u32     ltleecsr;       /* Logical/Transport layer error ECSR */
+       u8      res1[4];
+       u32     ltlaccsr;       /* Logical/Transport layer ACCSR */
+       u32     ltldidccsr;     /* Logical/Transport layer DID CCSR */
+       u32     ltlcccsr;       /* Logical/Transport layer control CCSR */
+};
+
+/* Physical error reporting port registers */
+struct rio_phys_err_port {
+       u32     edcsr;  /* Port error detect CSR */
+       u32     erecsr; /* Port error rate enable CSR */
+       u32     ecacsr; /* Port error capture attributes CSR */
+       u32     pcseccsr0;      /* Port packet/control symbol ECCSR 0 */
+       u32     peccsr[3];      /* Port error capture CSR */
+       u8      res0[12];
+       u32     ercsr;  /* Port error rate CSR */
+       u32     ertcsr; /* Port error rate threshold CSR */
+       u8      res1[16];
+};
+
+/* Physical error reporting registers */
+struct rio_phys_err {
+       struct rio_phys_err_port        port[CONFIG_SYS_FSL_SRIO_MAX_PORTS];
+};
+
+/* Implementation Space: General Port-Common */
+struct rio_impl_common {
+       u8      res0[4];
+       u32     llcr;   /* Logical Layer Configuration Register */
+       u8      res1[8];
+       u32     epwisr; /* Error / Port-Write Interrupt SR */
+       u8      res2[12];
+       u32     lretcr; /* Logical Retry Error Threshold CR */
+       u8      res3[92];
+       u32     pretcr; /* Physical Retry Erorr Threshold CR */
+       u8      res4[124];
+};
+
+/* Implementation Space: Port Specific */
+struct rio_impl_port_spec {
+       u32     adidcsr;        /* Port Alt. Device ID CSR */
+       u8      res0[28];
+       u32     ptaacr; /* Port Pass-Through/Accept-All CR */
+       u32     lopttlcr;
+       u8      res1[8];
+       u32     iecsr;  /* Port Implementation Error CSR */
+       u8      res2[12];
+       u32     pcr;            /* Port Phsyical Configuration Register */
+       u8      res3[20];
+       u32     slcsr;  /* Port Serial Link CSR */
+       u8      res4[4];
+       u32     sleicr; /* Port Serial Link Error Injection */
+       u32     a0txcr; /* Port Arbitration 0 Tx CR */
+       u32     a1txcr; /* Port Arbitration 1 Tx CR */
+       u32     a2txcr; /* Port Arbitration 2 Tx CR */
+       u32     mreqtxbacr[3];  /* Port Request Tx Buffer ACR */
+       u32     mrspfctxbacr;   /* Port Response/Flow Control Tx Buffer ACR */
+};
+
+/* Implementation Space: register */
+struct rio_implement {
+       struct rio_impl_common  com;
+       struct rio_impl_port_spec       port[CONFIG_SYS_FSL_SRIO_MAX_PORTS];
+};
+
+/* Revision Control Register */
+struct rio_rev_ctrl {
+       u32     ipbrr[2];       /* IP Block Revision Register */
+};
+
+struct rio_atmu_row {
+       u32     rowtar; /* RapidIO Outbound Window TAR */
+       u32     rowtear; /* RapidIO Outbound Window TEAR */
+       u32     rowbar;
+       u8      res0[4];
+       u32     rowar; /* RapidIO Outbound Attributes Register */
+       u32     rowsr[3]; /* Port RapidIO outbound window segment register */
+};
+
+struct rio_atmu_riw {
+       u32     riwtar; /* RapidIO Inbound Window Translation AR */
+       u8      res0[4];
+       u32     riwbar; /* RapidIO Inbound Window Base AR */
+       u8      res1[4];
+       u32     riwar; /* RapidIO Inbound Attributes Register */
+       u8      res2[12];
+};
+
+/* ATMU window registers */
+struct rio_atmu_win {
+       struct rio_atmu_row     outbw[CONFIG_SYS_FSL_SRIO_OB_WIN_NUM];
+       u8      res0[64];
+       struct rio_atmu_riw     inbw[CONFIG_SYS_FSL_SRIO_IB_WIN_NUM];
+};
+
+struct rio_atmu {
+       struct rio_atmu_win     port[CONFIG_SYS_FSL_SRIO_MAX_PORTS];
+};
+
+#ifdef CONFIG_SYS_FSL_RMU
+struct rio_msg {
+       u32     omr; /* Outbound Mode Register */
+       u32     osr; /* Outbound Status Register */
+       u32     eodqdpar; /* Extended Outbound DQ DPAR */
+       u32     odqdpar; /* Outbound Descriptor Queue DPAR */
+       u32     eosar; /* Extended Outbound Unit Source AR */
+       u32     osar; /* Outbound Unit Source AR */
+       u32     odpr; /* Outbound Destination Port Register */
+       u32     odatr; /* Outbound Destination Attributes Register */
+       u32     odcr; /* Outbound Doubleword Count Register */
+       u32     eodqepar; /* Extended Outbound DQ EPAR */
+       u32     odqepar; /* Outbound Descriptor Queue EPAR */
+       u32     oretr; /* Outbound Retry Error Threshold Register */
+       u32     omgr; /* Outbound Multicast Group Register */
+       u32     omlr; /* Outbound Multicast List Register */
+       u8      res0[40];
+       u32     imr;     /* Outbound Mode Register */
+       u32     isr; /* Inbound Status Register */
+       u32     eidqdpar; /* Extended Inbound Descriptor Queue DPAR */
+       u32     idqdpar; /* Inbound Descriptor Queue DPAR */
+       u32     eifqepar; /* Extended Inbound Frame Queue EPAR */
+       u32     ifqepar; /* Inbound Frame Queue EPAR */
+       u32     imirir; /* Inbound Maximum Interrutp RIR */
+       u8      res1[4];
+       u32 eihqepar; /* Extended inbound message header queue EPAR */
+       u32 ihqepar; /* Inbound message header queue EPAR */
+       u8      res2[120];
+};
+
+struct rio_dbell {
+       u32     odmr; /* Outbound Doorbell Mode Register */
+       u32     odsr; /* Outbound Doorbell Status Register */
+       u8      res0[16];
+       u32     oddpr; /* Outbound Doorbell Destination Port */
+       u32     oddatr; /* Outbound Doorbell Destination AR */
+       u8      res1[12];
+       u32     oddretr; /* Outbound Doorbell Retry Threshold CR */
+       u8      res2[48];
+       u32     idmr; /* Inbound Doorbell Mode Register */
+       u32     idsr;    /* Inbound Doorbell Status Register */
+       u32     iedqdpar; /* Extended Inbound Doorbell Queue DPAR */
+       u32     iqdpar; /* Inbound Doorbell Queue DPAR */
+       u32     iedqepar; /* Extended Inbound Doorbell Queue EPAR */
+       u32     idqepar; /* Inbound Doorbell Queue EPAR */
+       u32     idmirir; /* Inbound Doorbell Max Interrupt RIR */
+};
+
+struct rio_pw {
+       u32     pwmr; /* Port-Write Mode Register */
+       u32     pwsr; /* Port-Write Status Register */
+       u32     epwqbar; /* Extended Port-Write Queue BAR */
+       u32     pwqbar; /* Port-Write Queue Base Address Register */
+};
+#endif
+
+/* RapidIO Registers */
+struct ccsr_rio {
+       struct rio_arch arch;
+       u8      res0[144];
+       struct rio_lp_serial    lp_serial;
+       u8      res1[1152];
+       struct rio_logical_err  logical_err;
+       u8      res2[32];
+       struct rio_phys_err     phys_err;
+       u8      res3[63808];
+       struct rio_implement    impl;
+       u8      res4[2552];
+       struct rio_rev_ctrl     rev;
+       struct rio_atmu atmu;
+#ifdef CONFIG_SYS_FSL_RMU
+       u8      res5[8192];
+       struct rio_msg  msg[CONFIG_SYS_FSL_SRIO_MSG_UNIT_NUM];
+       u8      res6[512];
+       struct rio_dbell        dbell;
+       u8      res7[100];
+       struct rio_pw   pw;
+#endif
+};
+#endif
 
 /* Quick Engine Block Pin Muxing Registers */
 typedef struct par_io {
@@ -1700,12 +1764,24 @@ typedef struct ccsr_gur {
 #define FSL_CORENET_RCWSR8_HOST_AGT_B1         0x00e00000
 #define FSL_CORENET_RCWSR8_HOST_AGT_B2         0x00100000
 #define FSL_CORENET_RCWSR11_EC1                        0x00c00000 /* bits 360..361 */
-#define FSL_CORENET_RCWSR11_EC1_FM1_DTSEC1     0x00000000
-#define FSL_CORENET_RCWSR11_EC1_FM1_USB1       0x00800000
+#if defined(CONFIG_PPC_P4080) || defined(CONFIG_PPC_P3060)
+#define FSL_CORENET_RCWSR11_EC1_FM1_DTSEC1             0x00000000
+#define FSL_CORENET_RCWSR11_EC1_FM1_USB1               0x00800000
 #define FSL_CORENET_RCWSR11_EC2                        0x001c0000 /* bits 363..365 */
-#define FSL_CORENET_RCWSR11_EC2_FM2_DTSEC1     0x00000000
-#define FSL_CORENET_RCWSR11_EC2_FM1_DTSEC2     0x00080000
-#define FSL_CORENET_RCWSR11_EC2_USB2           0x00100000
+#define FSL_CORENET_RCWSR11_EC2_FM2_DTSEC1             0x00000000
+#define FSL_CORENET_RCWSR11_EC2_FM1_DTSEC2             0x00080000
+#define FSL_CORENET_RCWSR11_EC2_USB2                   0x00100000
+#endif
+#if defined(CONFIG_PPC_P2040) || defined(CONFIG_PPC_P2041) \
+       || defined(CONFIG_PPC_P3041) || defined(CONFIG_PPC_P5020)
+#define FSL_CORENET_RCWSR11_EC1_FM1_DTSEC4_RGMII       0x00000000
+#define FSL_CORENET_RCWSR11_EC1_FM1_DTSEC4_MII         0x00800000
+#define FSL_CORENET_RCWSR11_EC1_FM1_DTSEC4_NONE                0x00c00000
+#define FSL_CORENET_RCWSR11_EC2                        0x00180000 /* bits 363..364 */
+#define FSL_CORENET_RCWSR11_EC2_FM1_DTSEC5_RGMII       0x00000000
+#define FSL_CORENET_RCWSR11_EC2_FM1_DTSEC5_MII         0x00100000
+#define FSL_CORENET_RCWSR11_EC2_FM1_DTSEC5_NONE                0x00180000
+#endif
        u8      res18[192];
        u32     scratchrw[4];   /* Scratch Read/Write */
        u8      res19[240];
@@ -1759,7 +1835,8 @@ typedef struct ccsr_gur {
        u32     cgencrl;        /* Core general control */
        u8      res31[184];
        u32     sriopstecr;     /* SRIO prescaler timer enable control */
-       u8      res32[1788];
+       u32     dcsrcr;         /* DCSR Control register */
+       u8      res32[1784];
        u32     pmuxcr;         /* Pin multiplexing control */
        u8      res33[60];
        u32     iovselsr;       /* I/O voltage selection status */
@@ -1772,6 +1849,10 @@ typedef struct ccsr_gur {
        u8      res37[380];
 } ccsr_gur_t;
 
+#define FSL_CORENET_DCSR_SZ_MASK       0x00000003
+#define FSL_CORENET_DCSR_SZ_4M         0x0
+#define FSL_CORENET_DCSR_SZ_1G         0x3
+
 /*
  * On p4080 we have an LIODN for msg unit (rmu) but not maintenance
  * everything after has RMan thus msg unit LIODN is used for maintenance
@@ -1868,6 +1949,7 @@ typedef struct ccsr_gur {
 #if defined(CONFIG_P1017) || defined(CONFIG_P1023)
 #define MPC85xx_PORDEVSR_SGMII1_DIS    0x10000000
 #define MPC85xx_PORDEVSR_SGMII2_DIS    0x08000000
+#define MPC85xx_PORDEVSR_TSEC1_PRTC    0x02000000
 #else
 #define MPC85xx_PORDEVSR_SGMII1_DIS    0x20000000
 #define MPC85xx_PORDEVSR_SGMII2_DIS    0x10000000
@@ -1906,7 +1988,12 @@ typedef struct ccsr_gur {
        u8      res1[8];
        u32     gpporcr;        /* General-purpose POR configuration */
        u8      res2[12];
+#if defined(CONFIG_MPC8536)
+       u32     gencfgr;        /* General Configuration Register */
+#define MPC85xx_GENCFGR_SDHC_WP_INV    0x20000000
+#else
        u32     gpiocr;         /* GPIO control */
+#endif
        u8      res3[12];
 #if defined(CONFIG_MPC8569)
        u32     plppar1;        /* Platform port pin assignment 1 */
@@ -1966,9 +2053,13 @@ typedef struct ccsr_gur {
 #define MPC85xx_PMUXCR_CAN2_TDM                        0x00000002
 #define MPC85xx_PMUXCR_CAN2_RES                        0x00000003
 #endif
+#if defined(CONFIG_P1017) || defined(CONFIG_P1023)
+#define MPC85xx_PMUXCR_TSEC1_1         0x10000000
+#else
 #define MPC85xx_PMUXCR_SD_DATA         0x80000000
 #define MPC85xx_PMUXCR_SDHC_CD         0x40000000
 #define MPC85xx_PMUXCR_SDHC_WP         0x20000000
+#define MPC85xx_PMUXCR_ELBC_OFF_USB2_ON        0x01000000
 #define MPC85xx_PMUXCR_TDM_ENA         0x00800000
 #define MPC85xx_PMUXCR_QE0             0x00008000
 #define MPC85xx_PMUXCR_QE1             0x00004000
@@ -1983,6 +2074,7 @@ typedef struct ccsr_gur {
 #define MPC85xx_PMUXCR_QE10            0x00000020
 #define MPC85xx_PMUXCR_QE11            0x00000010
 #define MPC85xx_PMUXCR_QE12            0x00000008
+#endif
 #if defined(CONFIG_P1013) || defined(CONFIG_P1022)
 #define MPC85xx_PMUXCR_TDM_MASK                0x0001cc00
 #define MPC85xx_PMUXCR_TDM             0x00014800
@@ -2016,7 +2108,7 @@ typedef struct ccsr_gur {
 #define MPC85xx_PMUXCR2_PLL_LKDT_EXPOSE                0x00001000
 #endif
 #if defined(CONFIG_P1013) || defined(CONFIG_P1022)
-#define MPC85xx_PMUXCR2_ETSECUSB_MASK  0x001f1000
+#define MPC85xx_PMUXCR2_ETSECUSB_MASK  0x001f8000
 #define MPC85xx_PMUXCR2_USB            0x00150000
 #endif
        u8      res6[8];
@@ -2100,6 +2192,7 @@ typedef struct serdes_corenet {
 #define SRDS_PLLCR0_RFCK_SEL_100       0x00000000
 #define SRDS_PLLCR0_RFCK_SEL_125       0x10000000
 #define SRDS_PLLCR0_RFCK_SEL_156_25    0x20000000
+#define SRDS_PLLCR0_RFCK_SEL_150       0x30000000
 #define SRDS_PLLCR0_FRATE_SEL_MASK     0x00030000
 #define SRDS_PLLCR0_FRATE_SEL_5                0x00000000
 #define SRDS_PLLCR0_FRATE_SEL_6_25     0x00010000
@@ -2136,6 +2229,9 @@ typedef struct serdes_corenet {
 #define SRDS_TECR0_TEQ_TYPE_2LVL       0x10000000
                u32     res3;
                u32     ttlcr0; /* Transition Tracking Loop Ctrl 0 */
+#define SRDS_TTLCR0_FLT_SEL_MASK       0x3f000000
+#define SRDS_TTLCR0_FLT_SEL_750PPM     0x03000000
+#define SRDS_TTLCR0_PM_DIS             0x00004000
                u32     res4[7];
        } lane[24];
        u32 res6[384];
@@ -2284,6 +2380,39 @@ typedef struct ccsr_pme {
        u8      res4[0x400];
 } ccsr_pme_t;
 
+typedef struct ccsr_usb_phy {
+       u8      res0[0x18];
+       u32     usb_enable_override;
+       u8      res[0xe4];
+} ccsr_usb_phy_t;
+#define CONFIG_SYS_FSL_USB_ENABLE_OVERRIDE 1
+
+#ifdef CONFIG_SYS_FSL_RAID_ENGINE
+struct ccsr_raide {
+       u8      res0[0x543];
+       u32     liodnbr;                        /* LIODN Base Register */
+       u8      res1[0xab8];
+       struct {
+               struct {
+                       u32     cfg0;           /* cfg register 0 */
+                       u32     cfg1;           /* cfg register 1 */
+                       u8      res1[0x3f8];
+               } ring[2];
+               u8      res[0x800];
+       } jq[2];
+};
+#endif
+
+#ifdef CONFIG_SYS_DPAA_RMAN
+struct ccsr_rman {
+       u8      res0[0xf64];
+       u32     mmliodnbr;      /* Message Manager LIODN Base Register */
+       u32     mmitar;         /* RMAN Inbound Translation Address Register */
+       u32     mmitdr;         /* RMAN Inbound Translation Data Register */
+       u8      res4[0x1f090];
+};
+#endif
+
 #ifdef CONFIG_FSL_CORENET
 #define CONFIG_SYS_FSL_CORENET_CCM_OFFSET      0x0000
 #define CONFIG_SYS_MPC85xx_DDR_OFFSET          0x8000
@@ -2299,6 +2428,7 @@ typedef struct ccsr_pme {
 #define CONFIG_SYS_MPC85xx_ESDHC_OFFSET                0x114000
 #define CONFIG_SYS_MPC85xx_LBC_OFFSET          0x124000
 #define CONFIG_SYS_MPC85xx_GPIO_OFFSET         0x130000
+#define CONFIG_SYS_FSL_CORENET_RMAN_OFFSET     0x1e0000
 #define CONFIG_SYS_MPC85xx_PCIE1_OFFSET                0x200000
 #define CONFIG_SYS_MPC85xx_PCIE2_OFFSET                0x201000
 #define CONFIG_SYS_MPC85xx_PCIE3_OFFSET                0x202000
@@ -2306,12 +2436,15 @@ typedef struct ccsr_pme {
 #define CONFIG_SYS_MPC85xx_USB1_OFFSET         0x210000
 #define CONFIG_SYS_MPC85xx_USB2_OFFSET         0x211000
 #define CONFIG_SYS_MPC85xx_USB_OFFSET          CONFIG_SYS_MPC85xx_USB1_OFFSET
+#define CONFIG_SYS_MPC85xx_USB1_PHY_OFFSET 0x214000
+#define CONFIG_SYS_MPC85xx_USB2_PHY_OFFSET 0x214100
 #define CONFIG_SYS_MPC85xx_SATA1_OFFSET                0x220000
 #define CONFIG_SYS_MPC85xx_SATA2_OFFSET                0x221000
 #define CONFIG_SYS_FSL_SEC_OFFSET              0x300000
 #define CONFIG_SYS_FSL_CORENET_PME_OFFSET      0x316000
 #define CONFIG_SYS_FSL_QMAN_OFFSET             0x318000
 #define CONFIG_SYS_FSL_BMAN_OFFSET             0x31a000
+#define CONFIG_SYS_FSL_RAID_ENGINE_OFFSET      0x320000
 #define CONFIG_SYS_FSL_FM1_OFFSET              0x400000
 #define CONFIG_SYS_FSL_FM1_RX0_1G_OFFSET       0x488000
 #define CONFIG_SYS_FSL_FM1_RX1_1G_OFFSET       0x489000
@@ -2351,6 +2484,7 @@ typedef struct ccsr_pme {
 #define CONFIG_SYS_MPC85xx_L2_OFFSET           0x20000
 #define CONFIG_SYS_MPC85xx_DMA_OFFSET          0x21000
 #define CONFIG_SYS_MPC85xx_USB_OFFSET          0x22000
+#define CONFIG_SYS_MPC85xx_USB2_OFFSET         0x23000
 #ifdef CONFIG_TSECV2
 #define CONFIG_SYS_TSEC1_OFFSET                        0xB0000
 #else
@@ -2360,6 +2494,8 @@ typedef struct ccsr_pme {
 #define CONFIG_SYS_MPC85xx_ESDHC_OFFSET                0x2e000
 #define CONFIG_SYS_MPC85xx_SERDES2_OFFSET      0xE3100
 #define CONFIG_SYS_MPC85xx_SERDES1_OFFSET      0xE3000
+#define CONFIG_SYS_SNVS_OFFSET                 0xE6000
+#define CONFIG_SYS_SFP_OFFSET                  0xE7000
 #define CONFIG_SYS_MPC85xx_CPM_OFFSET          0x80000
 #define CONFIG_SYS_FSL_QMAN_OFFSET             0x88000
 #define CONFIG_SYS_FSL_BMAN_OFFSET             0x8a000
@@ -2380,6 +2516,10 @@ typedef struct ccsr_pme {
        (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_BMAN_OFFSET)
 #define CONFIG_SYS_FSL_CORENET_PME_ADDR \
        (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_PME_OFFSET)
+#define CONFIG_SYS_FSL_RAID_ENGINE_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_RAID_ENGINE_OFFSET)
+#define CONFIG_SYS_FSL_CORENET_RMAN_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_RMAN_OFFSET)
 #define CONFIG_SYS_MPC85xx_GUTS_ADDR \
        (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_GUTS_OFFSET)
 #define CONFIG_SYS_FSL_CORENET_CCM_ADDR \
@@ -2428,6 +2568,10 @@ typedef struct ccsr_pme {
        (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_CORENET_SERDES_OFFSET)
 #define CONFIG_SYS_MPC85xx_USB_ADDR \
        (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_USB_OFFSET)
+#define CONFIG_SYS_MPC85xx_USB1_PHY_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_USB1_PHY_OFFSET)
+#define CONFIG_SYS_MPC85xx_USB2_PHY_ADDR \
+       (CONFIG_SYS_IMMR + CONFIG_SYS_MPC85xx_USB2_PHY_OFFSET)
 #define CONFIG_SYS_FSL_SEC_ADDR \
        (CONFIG_SYS_IMMR + CONFIG_SYS_FSL_SEC_OFFSET)
 #define CONFIG_SYS_FSL_FM1_ADDR \