📄 ppc405.h
字号:
/*----------------------------------------------------------------------------+|| This source code has been made available to you by IBM on an AS-IS| basis. Anyone receiving this source is licensed under IBM| copyrights to use it in any way he or she deems fit, including| copying it, modifying it, compiling it, and redistributing it either| with or without modifications. No license under IBM patents or| patent applications is to be implied by the copyright license.|| Any user of this software should understand that IBM cannot provide| technical support for this software and will not be responsible for| any consequences resulting from the use of this software.|| Any person who transfers this source code or any derivative work| must include the IBM copyright notice, this paragraph, and the| preceding two paragraphs in the transferred software.|| COPYRIGHT I B M CORPORATION 1999| LICENSED MATERIAL - PROGRAM PROPERTY OF I B M+----------------------------------------------------------------------------*/#ifndef __PPC405_H__#define __PPC405_H__/*--------------------------------------------------------------------- *//* Special Purpose Registers *//*--------------------------------------------------------------------- */ #define srr2 0x3de /* save/restore register 2 */ #define srr3 0x3df /* save/restore register 3 */ #define dbsr 0x3f0 /* debug status register */ #define dbcr0 0x3f2 /* debug control register 0 */ #define dbcr1 0x3bd /* debug control register 1 */ #define iac1 0x3f4 /* instruction address comparator 1 */ #define iac2 0x3f5 /* instruction address comparator 2 */ #define iac3 0x3b4 /* instruction address comparator 3 */ #define iac4 0x3b5 /* instruction address comparator 4 */ #define dac1 0x3f6 /* data address comparator 1 */ #define dac2 0x3f7 /* data address comparator 2 */ #define dccr 0x3fa /* data cache control register */ #define iccr 0x3fb /* instruction cache control register */ #define esr 0x3d4 /* execption syndrome register */ #define dear 0x3d5 /* data exeption address register */ #define evpr 0x3d6 /* exeption vector prefix register */ #define tsr 0x3d8 /* timer status register */ #define tcr 0x3da /* timer control register */ #define pit 0x3db /* programmable interval timer */ #define sgr 0x3b9 /* storage guarded reg */ #define dcwr 0x3ba /* data cache write-thru reg*/ #define sler 0x3bb /* storage little-endian reg */ #define cdbcr 0x3d7 /* cache debug cntrl reg */ #define icdbdr 0x3d3 /* instr cache dbug data reg*/ #define ccr0 0x3b3 /* core configuration register */ #define dvc1 0x3b6 /* data value compare register 1 */ #define dvc2 0x3b7 /* data value compare register 2 */ #define pid 0x3b1 /* process ID */ #define su0r 0x3bc /* storage user-defined register 0 */ #define zpr 0x3b0 /* zone protection regsiter */ #define tbl 0x11c /* time base lower - privileged write */ #define tbu 0x11d /* time base upper - privileged write */ #define sprg4r 0x104 /* Special purpose general 4 - read only */ #define sprg5r 0x105 /* Special purpose general 5 - read only */ #define sprg6r 0x106 /* Special purpose general 6 - read only */ #define sprg7r 0x107 /* Special purpose general 7 - read only */ #define sprg4w 0x114 /* Special purpose general 4 - write only */ #define sprg5w 0x115 /* Special purpose general 5 - write only */ #define sprg6w 0x116 /* Special purpose general 6 - write only */ #define sprg7w 0x117 /* Special purpose general 7 - write only *//****************************************************************************** * Special for PPC405GP ******************************************************************************//****************************************************************************** * DMA ******************************************************************************/#define DMA_DCR_BASE 0x100#define dmacr0 (DMA_DCR_BASE+0x00) /* DMA channel control register 0 */#define dmact0 (DMA_DCR_BASE+0x01) /* DMA count register 0 */#define dmada0 (DMA_DCR_BASE+0x02) /* DMA destination address register 0 */#define dmasa0 (DMA_DCR_BASE+0x03) /* DMA source address register 0 */#define dmasb0 (DMA_DCR_BASE+0x04) /* DMA scatter/gather descriptor addr 0 */#define dmacr1 (DMA_DCR_BASE+0x08) /* DMA channel control register 1 */#define dmact1 (DMA_DCR_BASE+0x09) /* DMA count register 1 */#define dmada1 (DMA_DCR_BASE+0x0a) /* DMA destination address register 1 */#define dmasa1 (DMA_DCR_BASE+0x0b) /* DMA source address register 1 */#define dmasb1 (DMA_DCR_BASE+0x0c) /* DMA scatter/gather descriptor addr 1 */#define dmacr2 (DMA_DCR_BASE+0x10) /* DMA channel control register 2 */#define dmact2 (DMA_DCR_BASE+0x11) /* DMA count register 2 */#define dmada2 (DMA_DCR_BASE+0x12) /* DMA destination address register 2 */#define dmasa2 (DMA_DCR_BASE+0x13) /* DMA source address register 2 */#define dmasb2 (DMA_DCR_BASE+0x14) /* DMA scatter/gather descriptor addr 2 */#define dmacr3 (DMA_DCR_BASE+0x18) /* DMA channel control register 3 */#define dmact3 (DMA_DCR_BASE+0x19) /* DMA count register 3 */#define dmada3 (DMA_DCR_BASE+0x1a) /* DMA destination address register 3 */#define dmasa3 (DMA_DCR_BASE+0x1b) /* DMA source address register 3 */#define dmasb3 (DMA_DCR_BASE+0x1c) /* DMA scatter/gather descriptor addr 3 */#define dmasr (DMA_DCR_BASE+0x20) /* DMA status register */#define dmasgc (DMA_DCR_BASE+0x23) /* DMA scatter/gather command register */#define dmaadr (DMA_DCR_BASE+0x24) /* DMA address decode register *//****************************************************************************** * Universal interrupt controller ******************************************************************************/#define UIC_DCR_BASE 0xc0#define uicsr (UIC_DCR_BASE+0x0) /* UIC status */#define uicsrs (UIC_DCR_BASE+0x1) /* UIC status set */#define uicer (UIC_DCR_BASE+0x2) /* UIC enable */#define uiccr (UIC_DCR_BASE+0x3) /* UIC critical */#define uicpr (UIC_DCR_BASE+0x4) /* UIC polarity */#define uictr (UIC_DCR_BASE+0x5) /* UIC triggering */#define uicmsr (UIC_DCR_BASE+0x6) /* UIC masked status */#define uicvr (UIC_DCR_BASE+0x7) /* UIC vector */#define uicvcr (UIC_DCR_BASE+0x8) /* UIC vector configuration *//*-----------------------------------------------------------------------------+| Universal interrupt controller interrupts+-----------------------------------------------------------------------------*/#define UIC_UART0 0x80000000 /* UART 0 */#define UIC_UART1 0x40000000 /* UART 1 */#define UIC_IIC 0x20000000 /* IIC */#define UIC_EXT_MAST 0x10000000 /* External Master */#define UIC_PCI 0x08000000 /* PCI write to command reg */#define UIC_DMA0 0x04000000 /* DMA chan. 0 */#define UIC_DMA1 0x02000000 /* DMA chan. 1 */#define UIC_DMA2 0x01000000 /* DMA chan. 2 */#define UIC_DMA3 0x00800000 /* DMA chan. 3 */#define UIC_EMAC_WAKE 0x00400000 /* EMAC wake up */#define UIC_MAL_SERR 0x00200000 /* MAL SERR */#define UIC_MAL_TXEOB 0x00100000 /* MAL TXEOB */#define UIC_MAL_RXEOB 0x00080000 /* MAL RXEOB */#define UIC_MAL_TXDE 0x00040000 /* MAL TXDE */#define UIC_MAL_RXDE 0x00020000 /* MAL RXDE */#define UIC_ENET 0x00010000 /* Ethernet0 */#define UIC_ENET1 0x00004000 /* Ethernet1 on 405EP */#define UIC_ECC_CE 0x00004000 /* ECC Correctable Error on 405GP */#define UIC_EXT_PCI_SERR 0x00008000 /* External PCI SERR# */#define UIC_PCI_PM 0x00002000 /* PCI Power Management */#define UIC_EXT0 0x00000040 /* External interrupt 0 */#define UIC_EXT1 0x00000020 /* External interrupt 1 */#define UIC_EXT2 0x00000010 /* External interrupt 2 */#define UIC_EXT3 0x00000008 /* External interrupt 3 */#define UIC_EXT4 0x00000004 /* External interrupt 4 */#define UIC_EXT5 0x00000002 /* External interrupt 5 */#define UIC_EXT6 0x00000001 /* External interrupt 6 *//****************************************************************************** * SDRAM Controller ******************************************************************************/#define SDRAM_DCR_BASE 0x10#define memcfga (SDRAM_DCR_BASE+0x0) /* Memory configuration address reg */#define memcfgd (SDRAM_DCR_BASE+0x1) /* Memory configuration data reg */ /* values for memcfga register - indirect addressing of these regs */#ifndef CONFIG_405EP #define mem_besra 0x00 /* bus error syndrome reg a */ #define mem_besrsa 0x04 /* bus error syndrome reg set a */ #define mem_besrb 0x08 /* bus error syndrome reg b */ #define mem_besrsb 0x0c /* bus error syndrome reg set b */ #define mem_bear 0x10 /* bus error address reg */#endif #define mem_mcopt1 0x20 /* memory controller options 1 */ #define mem_rtr 0x30 /* refresh timer reg */ #define mem_pmit 0x34 /* power management idle timer */ #define mem_mb0cf 0x40 /* memory bank 0 configuration */ #define mem_mb1cf 0x44 /* memory bank 1 configuration */#ifndef CONFIG_405EP #define mem_mb2cf 0x48 /* memory bank 2 configuration */ #define mem_mb3cf 0x4c /* memory bank 3 configuration */#endif #define mem_sdtr1 0x80 /* timing reg 1 */#ifndef CONFIG_405EP #define mem_ecccf 0x94 /* ECC configuration */ #define mem_eccerr 0x98 /* ECC error status */#endif#ifndef CONFIG_405EP/****************************************************************************** * Decompression Controller ******************************************************************************/#define DECOMP_DCR_BASE 0x14#define kiar (DECOMP_DCR_BASE+0x0) /* Decompression controller addr reg */#define kidr (DECOMP_DCR_BASE+0x1) /* Decompression controller data reg */ /* values for kiar register - indirect addressing of these regs */ #define kitor0 0x00 /* index table origin register 0 */ #define kitor1 0x01 /* index table origin register 1 */ #define kitor2 0x02 /* index table origin register 2 */ #define kitor3 0x03 /* index table origin register 3 */ #define kaddr0 0x04 /* address decode definition regsiter 0 */ #define kaddr1 0x05 /* address decode definition regsiter 1 */ #define kconf 0x40 /* decompression core config register */ #define kid 0x41 /* decompression core ID register */ #define kver 0x42 /* decompression core version # reg */ #define kpear 0x50 /* bus error addr reg (PLB addr) */ #define kbear 0x51 /* bus error addr reg (DCP to EBIU addr)*/ #define kesr0 0x52 /* bus error status reg 0 (R/clear) */ #define kesr0s 0x53 /* bus error status reg 0 (set) */ /* There are 0x400 of the following registers, from krom0 to krom3ff*/ /* Only the first one is given here. */ #define krom0 0x400 /* SRAM/ROM read/write */#endif/****************************************************************************** * Power Management ******************************************************************************/#define POWERMAN_DCR_BASE 0xb8#define cpmsr (POWERMAN_DCR_BASE+0x0) /* Power management status */#define cpmer (POWERMAN_DCR_BASE+0x1) /* Power management enable */#define cpmfr (POWERMAN_DCR_BASE+0x2) /* Power management force *//****************************************************************************** * Extrnal Bus Controller ******************************************************************************/#define EBC_DCR_BASE 0x12#define ebccfga (EBC_DCR_BASE+0x0) /* External bus controller addr reg */#define ebccfgd (EBC_DCR_BASE+0x1) /* External bus controller data reg */ /* values for ebccfga register - indirect addressing of these regs */ #define pb0cr 0x00 /* periph bank 0 config reg */ #define pb1cr 0x01 /* periph bank 1 config reg */ #define pb2cr 0x02 /* periph bank 2 config reg */ #define pb3cr 0x03 /* periph bank 3 config reg */ #define pb4cr 0x04 /* periph bank 4 config reg */#ifndef CONFIG_405EP #define pb5cr 0x05 /* periph bank 5 config reg */ #define pb6cr 0x06 /* periph bank 6 config reg */ #define pb7cr 0x07 /* periph bank 7 config reg */#endif #define pb0ap 0x10 /* periph bank 0 access parameters */ #define pb1ap 0x11 /* periph bank 1 access parameters */ #define pb2ap 0x12 /* periph bank 2 access parameters */ #define pb3ap 0x13 /* periph bank 3 access parameters */ #define pb4ap 0x14 /* periph bank 4 access parameters */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -