Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Common DCR / SDR / CPR register definitions used on various IBM/AMCC
0004  * 4xx processors
0005  *
0006  *    Copyright 2007 Benjamin Herrenschmidt, IBM Corp
0007  *                   <benh@kernel.crashing.org>
0008  *
0009  * Mostly lifted from asm-ppc/ibm4xx.h by
0010  *
0011  *    Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
0012  *
0013  */
0014 
0015 #ifndef __DCR_REGS_H__
0016 #define __DCR_REGS_H__
0017 
0018 /*
0019  * Most DCRs used for controlling devices such as the MAL, DMA engine,
0020  * etc... are obtained for the device tree.
0021  *
0022  * The definitions in this files are fixed DCRs and indirect DCRs that
0023  * are commonly used outside of specific drivers or refer to core
0024  * common registers that may occasionally have to be tweaked outside
0025  * of the driver main register set
0026  */
0027 
0028 /* CPRs (440GX and 440SP/440SPe) */
0029 #define DCRN_CPR0_CONFIG_ADDR   0xc
0030 #define DCRN_CPR0_CONFIG_DATA   0xd
0031 
0032 /* SDRs (440GX and 440SP/440SPe) */
0033 #define DCRN_SDR0_CONFIG_ADDR   0xe
0034 #define DCRN_SDR0_CONFIG_DATA   0xf
0035 
0036 #define SDR0_PFC0       0x4100
0037 #define SDR0_PFC1       0x4101
0038 #define SDR0_PFC1_EPS       0x1c00000
0039 #define SDR0_PFC1_EPS_SHIFT 22
0040 #define SDR0_PFC1_RMII      0x02000000
0041 #define SDR0_MFR        0x4300
0042 #define SDR0_MFR_TAH0       0x80000000      /* TAHOE0 Enable */
0043 #define SDR0_MFR_TAH1       0x40000000      /* TAHOE1 Enable */
0044 #define SDR0_MFR_PCM        0x10000000      /* PPC440GP irq compat mode */
0045 #define SDR0_MFR_ECS        0x08000000      /* EMAC int clk */
0046 #define SDR0_MFR_T0TXFL     0x00080000
0047 #define SDR0_MFR_T0TXFH     0x00040000
0048 #define SDR0_MFR_T1TXFL     0x00020000
0049 #define SDR0_MFR_T1TXFH     0x00010000
0050 #define SDR0_MFR_E0TXFL     0x00008000
0051 #define SDR0_MFR_E0TXFH     0x00004000
0052 #define SDR0_MFR_E0RXFL     0x00002000
0053 #define SDR0_MFR_E0RXFH     0x00001000
0054 #define SDR0_MFR_E1TXFL     0x00000800
0055 #define SDR0_MFR_E1TXFH     0x00000400
0056 #define SDR0_MFR_E1RXFL     0x00000200
0057 #define SDR0_MFR_E1RXFH     0x00000100
0058 #define SDR0_MFR_E2TXFL     0x00000080
0059 #define SDR0_MFR_E2TXFH     0x00000040
0060 #define SDR0_MFR_E2RXFL     0x00000020
0061 #define SDR0_MFR_E2RXFH     0x00000010
0062 #define SDR0_MFR_E3TXFL     0x00000008
0063 #define SDR0_MFR_E3TXFH     0x00000004
0064 #define SDR0_MFR_E3RXFL     0x00000002
0065 #define SDR0_MFR_E3RXFH     0x00000001
0066 #define SDR0_UART0      0x0120
0067 #define SDR0_UART1      0x0121
0068 #define SDR0_UART2      0x0122
0069 #define SDR0_UART3      0x0123
0070 #define SDR0_CUST0      0x4000
0071 
0072 /* SDR for 405EZ */
0073 #define DCRN_SDR_ICINTSTAT  0x4510
0074 #define ICINTSTAT_ICRX  0x80000000
0075 #define ICINTSTAT_ICTX0 0x40000000
0076 #define ICINTSTAT_ICTX1 0x20000000
0077 #define ICINTSTAT_ICTX  0x60000000
0078 
0079 /* SDRs (460EX/460GT) */
0080 #define SDR0_ETH_CFG        0x4103
0081 #define SDR0_ETH_CFG_ECS    0x00000100  /* EMAC int clk source */
0082 
0083 /*
0084  * All those DCR register addresses are offsets from the base address
0085  * for the SRAM0 controller (e.g. 0x20 on 440GX). The base address is
0086  * excluded here and configured in the device tree.
0087  */
0088 #define DCRN_SRAM0_SB0CR    0x00
0089 #define DCRN_SRAM0_SB1CR    0x01
0090 #define DCRN_SRAM0_SB2CR    0x02
0091 #define DCRN_SRAM0_SB3CR    0x03
0092 #define  SRAM_SBCR_BU_MASK  0x00000180
0093 #define  SRAM_SBCR_BS_64KB  0x00000800
0094 #define  SRAM_SBCR_BU_RO    0x00000080
0095 #define  SRAM_SBCR_BU_RW    0x00000180
0096 #define DCRN_SRAM0_BEAR     0x04
0097 #define DCRN_SRAM0_BESR0    0x05
0098 #define DCRN_SRAM0_BESR1    0x06
0099 #define DCRN_SRAM0_PMEG     0x07
0100 #define DCRN_SRAM0_CID      0x08
0101 #define DCRN_SRAM0_REVID    0x09
0102 #define DCRN_SRAM0_DPC      0x0a
0103 #define  SRAM_DPC_ENABLE    0x80000000
0104 
0105 /*
0106  * All those DCR register addresses are offsets from the base address
0107  * for the SRAM0 controller (e.g. 0x30 on 440GX). The base address is
0108  * excluded here and configured in the device tree.
0109  */
0110 #define DCRN_L2C0_CFG       0x00
0111 #define  L2C_CFG_L2M        0x80000000
0112 #define  L2C_CFG_ICU        0x40000000
0113 #define  L2C_CFG_DCU        0x20000000
0114 #define  L2C_CFG_DCW_MASK   0x1e000000
0115 #define  L2C_CFG_TPC        0x01000000
0116 #define  L2C_CFG_CPC        0x00800000
0117 #define  L2C_CFG_FRAN       0x00200000
0118 #define  L2C_CFG_SS_MASK    0x00180000
0119 #define  L2C_CFG_SS_256     0x00000000
0120 #define  L2C_CFG_CPIM       0x00040000
0121 #define  L2C_CFG_TPIM       0x00020000
0122 #define  L2C_CFG_LIM        0x00010000
0123 #define  L2C_CFG_PMUX_MASK  0x00007000
0124 #define  L2C_CFG_PMUX_SNP   0x00000000
0125 #define  L2C_CFG_PMUX_IF    0x00001000
0126 #define  L2C_CFG_PMUX_DF    0x00002000
0127 #define  L2C_CFG_PMUX_DS    0x00003000
0128 #define  L2C_CFG_PMIM       0x00000800
0129 #define  L2C_CFG_TPEI       0x00000400
0130 #define  L2C_CFG_CPEI       0x00000200
0131 #define  L2C_CFG_NAM        0x00000100
0132 #define  L2C_CFG_SMCM       0x00000080
0133 #define  L2C_CFG_NBRM       0x00000040
0134 #define  L2C_CFG_RDBW       0x00000008  /* only 460EX/GT */
0135 #define DCRN_L2C0_CMD       0x01
0136 #define  L2C_CMD_CLR        0x80000000
0137 #define  L2C_CMD_DIAG       0x40000000
0138 #define  L2C_CMD_INV        0x20000000
0139 #define  L2C_CMD_CCP        0x10000000
0140 #define  L2C_CMD_CTE        0x08000000
0141 #define  L2C_CMD_STRC       0x04000000
0142 #define  L2C_CMD_STPC       0x02000000
0143 #define  L2C_CMD_RPMC       0x01000000
0144 #define  L2C_CMD_HCC        0x00800000
0145 #define DCRN_L2C0_ADDR      0x02
0146 #define DCRN_L2C0_DATA      0x03
0147 #define DCRN_L2C0_SR        0x04
0148 #define  L2C_SR_CC      0x80000000
0149 #define  L2C_SR_CPE     0x40000000
0150 #define  L2C_SR_TPE     0x20000000
0151 #define  L2C_SR_LRU     0x10000000
0152 #define  L2C_SR_PCS     0x08000000
0153 #define DCRN_L2C0_REVID     0x05
0154 #define DCRN_L2C0_SNP0      0x06
0155 #define DCRN_L2C0_SNP1      0x07
0156 #define  L2C_SNP_BA_MASK    0xffff0000
0157 #define  L2C_SNP_SSR_MASK   0x0000f000
0158 #define  L2C_SNP_SSR_32G    0x0000f000
0159 #define  L2C_SNP_ESR        0x00000800
0160 
0161 /*
0162  * DCR register offsets for 440SP/440SPe I2O/DMA controller.
0163  * The base address is configured in the device tree.
0164  */
0165 #define DCRN_I2O0_IBAL      0x006
0166 #define DCRN_I2O0_IBAH      0x007
0167 #define I2O_REG_ENABLE      0x00000001  /* Enable I2O/DMA access */
0168 
0169 /* 440SP/440SPe Software Reset DCR */
0170 #define DCRN_SDR0_SRST      0x0200
0171 #define DCRN_SDR0_SRST_I2ODMA   (0x80000000 >> 15)  /* Reset I2O/DMA */
0172 
0173 /* 440SP/440SPe Memory Queue DCR offsets */
0174 #define DCRN_MQ0_XORBA      0x04
0175 #define DCRN_MQ0_CF2H       0x06
0176 #define DCRN_MQ0_CFBHL      0x0f
0177 #define DCRN_MQ0_BAUH       0x10
0178 
0179 /* HB/LL Paths Configuration Register */
0180 #define MQ0_CFBHL_TPLM      28
0181 #define MQ0_CFBHL_HBCL      23
0182 #define MQ0_CFBHL_POLY      15
0183 
0184 #endif /* __DCR_REGS_H__ */