/* SPDX-License-Identifier: GPL-2.0 */
/*
* Common DCR / SDR / CPR register definitions used on various IBM/AMCC
* 4xx processors
*
* Copyright 2007 Benjamin Herrenschmidt, IBM Corp
* <benh@kernel.crashing.org>
*
* Mostly lifted from asm-ppc/ibm4xx.h by
*
* Copyright (c) 1999 Grant Erickson <grant@lcse.umn.edu>
*
*/
#ifndef __DCR_REGS_H__
#define __DCR_REGS_H__
/*
* Most DCRs used for controlling devices such as the MAL, DMA engine,
* etc... are obtained for the device tree.
*
* The definitions in this files are fixed DCRs and indirect DCRs that
* are commonly used outside of specific drivers or refer to core
* common registers that may occasionally have to be tweaked outside
* of the driver main register set
*/
/* CPRs (440GX and 440SP/440SPe) */
#define DCRN_CPR0_CONFIG_ADDR 0 xc
#define DCRN_CPR0_CONFIG_DATA 0 xd
/* SDRs (440GX and 440SP/440SPe) */
#define DCRN_SDR0_CONFIG_ADDR 0 xe
#define DCRN_SDR0_CONFIG_DATA 0 xf
#define SDR0_PFC0 0 x4100
#define SDR0_PFC1 0 x4101
#define SDR0_PFC1_EPS 0 x1c00000
#define SDR0_PFC1_EPS_SHIFT 22
#define SDR0_PFC1_RMII 0 x02000000
#define SDR0_MFR 0 x4300
#define SDR0_MFR_TAH0 0 x80000000 /* TAHOE0 Enable */
#define SDR0_MFR_TAH1 0 x40000000 /* TAHOE1 Enable */
#define SDR0_MFR_PCM 0 x10000000 /* PPC440GP irq compat mode */
#define SDR0_MFR_ECS 0 x08000000 /* EMAC int clk */
#define SDR0_MFR_T0TXFL 0 x00080000
#define SDR0_MFR_T0TXFH 0 x00040000
#define SDR0_MFR_T1TXFL 0 x00020000
#define SDR0_MFR_T1TXFH 0 x00010000
#define SDR0_MFR_E0TXFL 0 x00008000
#define SDR0_MFR_E0TXFH 0 x00004000
#define SDR0_MFR_E0RXFL 0 x00002000
#define SDR0_MFR_E0RXFH 0 x00001000
#define SDR0_MFR_E1TXFL 0 x00000800
#define SDR0_MFR_E1TXFH 0 x00000400
#define SDR0_MFR_E1RXFL 0 x00000200
#define SDR0_MFR_E1RXFH 0 x00000100
#define SDR0_MFR_E2TXFL 0 x00000080
#define SDR0_MFR_E2TXFH 0 x00000040
#define SDR0_MFR_E2RXFL 0 x00000020
#define SDR0_MFR_E2RXFH 0 x00000010
#define SDR0_MFR_E3TXFL 0 x00000008
#define SDR0_MFR_E3TXFH 0 x00000004
#define SDR0_MFR_E3RXFL 0 x00000002
#define SDR0_MFR_E3RXFH 0 x00000001
#define SDR0_UART0 0 x0120
#define SDR0_UART1 0 x0121
#define SDR0_UART2 0 x0122
#define SDR0_UART3 0 x0123
#define SDR0_CUST0 0 x4000
/* SDR for 405EZ */
#define DCRN_SDR_ICINTSTAT 0 x4510
#define ICINTSTAT_ICRX 0 x80000000
#define ICINTSTAT_ICTX0 0 x40000000
#define ICINTSTAT_ICTX1 0 x20000000
#define ICINTSTAT_ICTX 0 x60000000
/* SDRs (460EX/460GT) */
#define SDR0_ETH_CFG 0 x4103
#define SDR0_ETH_CFG_ECS 0 x00000100 /* EMAC int clk source */
/*
* All those DCR register addresses are offsets from the base address
* for the SRAM0 controller (e.g. 0x20 on 440GX). The base address is
* excluded here and configured in the device tree.
*/
#define DCRN_SRAM0_SB0CR 0 x00
#define DCRN_SRAM0_SB1CR 0 x01
#define DCRN_SRAM0_SB2CR 0 x02
#define DCRN_SRAM0_SB3CR 0 x03
#define SRAM_SBCR_BU_MASK 0 x00000180
#define SRAM_SBCR_BS_64KB 0 x00000800
#define SRAM_SBCR_BU_RO 0 x00000080
#define SRAM_SBCR_BU_RW 0 x00000180
#define DCRN_SRAM0_BEAR 0 x04
#define DCRN_SRAM0_BESR0 0 x05
#define DCRN_SRAM0_BESR1 0 x06
#define DCRN_SRAM0_PMEG 0 x07
#define DCRN_SRAM0_CID 0 x08
#define DCRN_SRAM0_REVID 0 x09
#define DCRN_SRAM0_DPC 0 x0a
#define SRAM_DPC_ENABLE 0 x80000000
/*
* All those DCR register addresses are offsets from the base address
* for the SRAM0 controller (e.g. 0x30 on 440GX). The base address is
* excluded here and configured in the device tree.
*/
#define DCRN_L2C0_CFG 0 x00
#define L2C_CFG_L2M 0 x80000000
#define L2C_CFG_ICU 0 x40000000
#define L2C_CFG_DCU 0 x20000000
#define L2C_CFG_DCW_MASK 0 x1e000000
#define L2C_CFG_TPC 0 x01000000
#define L2C_CFG_CPC 0 x00800000
#define L2C_CFG_FRAN 0 x00200000
#define L2C_CFG_SS_MASK 0 x00180000
#define L2C_CFG_SS_256 0 x00000000
#define L2C_CFG_CPIM 0 x00040000
#define L2C_CFG_TPIM 0 x00020000
#define L2C_CFG_LIM 0 x00010000
#define L2C_CFG_PMUX_MASK 0 x00007000
#define L2C_CFG_PMUX_SNP 0 x00000000
#define L2C_CFG_PMUX_IF 0 x00001000
#define L2C_CFG_PMUX_DF 0 x00002000
#define L2C_CFG_PMUX_DS 0 x00003000
#define L2C_CFG_PMIM 0 x00000800
#define L2C_CFG_TPEI 0 x00000400
#define L2C_CFG_CPEI 0 x00000200
#define L2C_CFG_NAM 0 x00000100
#define L2C_CFG_SMCM 0 x00000080
#define L2C_CFG_NBRM 0 x00000040
#define L2C_CFG_RDBW 0 x00000008 /* only 460EX/GT */
#define DCRN_L2C0_CMD 0 x01
#define L2C_CMD_CLR 0 x80000000
#define L2C_CMD_DIAG 0 x40000000
#define L2C_CMD_INV 0 x20000000
#define L2C_CMD_CCP 0 x10000000
#define L2C_CMD_CTE 0 x08000000
#define L2C_CMD_STRC 0 x04000000
#define L2C_CMD_STPC 0 x02000000
#define L2C_CMD_RPMC 0 x01000000
#define L2C_CMD_HCC 0 x00800000
#define DCRN_L2C0_ADDR 0 x02
#define DCRN_L2C0_DATA 0 x03
#define DCRN_L2C0_SR 0 x04
#define L2C_SR_CC 0 x80000000
#define L2C_SR_CPE 0 x40000000
#define L2C_SR_TPE 0 x20000000
#define L2C_SR_LRU 0 x10000000
#define L2C_SR_PCS 0 x08000000
#define DCRN_L2C0_REVID 0 x05
#define DCRN_L2C0_SNP0 0 x06
#define DCRN_L2C0_SNP1 0 x07
#define L2C_SNP_BA_MASK 0 xffff0000
#define L2C_SNP_SSR_MASK 0 x0000f000
#define L2C_SNP_SSR_32G 0 x0000f000
#define L2C_SNP_ESR 0 x00000800
/*
* DCR register offsets for 440SP/440SPe I2O/DMA controller.
* The base address is configured in the device tree.
*/
#define DCRN_I2O0_IBAL 0 x006
#define DCRN_I2O0_IBAH 0 x007
#define I2O_REG_ENABLE 0 x00000001 /* Enable I2O/DMA access */
/* 440SP/440SPe Software Reset DCR */
#define DCRN_SDR0_SRST 0 x0200
#define DCRN_SDR0_SRST_I2ODMA (0 x80000000 >> 15 ) /* Reset I2O/DMA */
/* 440SP/440SPe Memory Queue DCR offsets */
#define DCRN_MQ0_XORBA 0 x04
#define DCRN_MQ0_CF2H 0 x06
#define DCRN_MQ0_CFBHL 0 x0f
#define DCRN_MQ0_BAUH 0 x10
/* HB/LL Paths Configuration Register */
#define MQ0_CFBHL_TPLM 28
#define MQ0_CFBHL_HBCL 23
#define MQ0_CFBHL_POLY 15
#endif /* __DCR_REGS_H__ */
Messung V0.5 in Prozent C=86 H=92 G=88
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland