📄 ppc440.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 __PPC440_H__#define __PPC440_H__/*--------------------------------------------------------------------- *//* Special Purpose Registers *//*--------------------------------------------------------------------- */#define dec 0x016 /* decrementer */#define srr0 0x01a /* save/restore register 0 */#define srr1 0x01b /* save/restore register 1 */#define pid 0x030 /* process id */#define decar 0x036 /* decrementer auto-reload */#define csrr0 0x03a /* critical save/restore register 0 */#define csrr1 0x03b /* critical save/restore register 1 */#define dear 0x03d /* data exception address register */#define esr 0x03e /* exception syndrome register */#define ivpr 0x03f /* interrupt prefix register */#define usprg0 0x100 /* user special purpose register general 0 */#define usprg1 0x110 /* user special purpose register general 1 */#define sprg1 0x111 /* special purpose register general 1 */#define sprg2 0x112 /* special purpose register general 2 */#define sprg3 0x113 /* special purpose register general 3 */#define sprg4 0x114 /* special purpose register general 4 */#define sprg5 0x115 /* special purpose register general 5 */#define sprg6 0x116 /* special purpose register general 6 */#define sprg7 0x117 /* special purpose register general 7 */#define tbl 0x11c /* time base lower (supervisor)*/#define tbu 0x11d /* time base upper (supervisor)*/#define pir 0x11e /* processor id register *//*#define pvr 0x11f processor version register */#define dbsr 0x130 /* debug status register */#define dbcr0 0x134 /* debug control register 0 */#define dbcr1 0x135 /* debug control register 1 */#define dbcr2 0x136 /* debug control register 2 */#define iac1 0x138 /* instruction address compare 1 */#define iac2 0x139 /* instruction address compare 2 */#define iac3 0x13a /* instruction address compare 3 */#define iac4 0x13b /* instruction address compare 4 */#define dac1 0x13c /* data address compare 1 */#define dac2 0x13d /* data address compare 2 */#define dvc1 0x13e /* data value compare 1 */#define dvc2 0x13f /* data value compare 2 */#define tsr 0x150 /* timer status register */#define tcr 0x154 /* timer control register */#define ivor0 0x190 /* interrupt vector offset register 0 */#define ivor1 0x191 /* interrupt vector offset register 1 */#define ivor2 0x192 /* interrupt vector offset register 2 */#define ivor3 0x193 /* interrupt vector offset register 3 */#define ivor4 0x194 /* interrupt vector offset register 4 */#define ivor5 0x195 /* interrupt vector offset register 5 */#define ivor6 0x196 /* interrupt vector offset register 6 */#define ivor7 0x197 /* interrupt vector offset register 7 */#define ivor8 0x198 /* interrupt vector offset register 8 */#define ivor9 0x199 /* interrupt vector offset register 9 */#define ivor10 0x19a /* interrupt vector offset register 10 */#define ivor11 0x19b /* interrupt vector offset register 11 */#define ivor12 0x19c /* interrupt vector offset register 12 */#define ivor13 0x19d /* interrupt vector offset register 13 */#define ivor14 0x19e /* interrupt vector offset register 14 */#define ivor15 0x19f /* interrupt vector offset register 15 */#if defined(CONFIG_440_GX)#define mcsrr0 0x23a /* machine check save/restore register 0 */#define mcsrr1 0x23b /* mahcine check save/restore register 1 */#define mcsr 0x23c /* machine check status register */#endif#define inv0 0x370 /* instruction cache normal victim 0 */#define inv1 0x371 /* instruction cache normal victim 1 */#define inv2 0x372 /* instruction cache normal victim 2 */#define inv3 0x373 /* instruction cache normal victim 3 */#define itv0 0x374 /* instruction cache transient victim 0 */#define itv1 0x375 /* instruction cache transient victim 1 */#define itv2 0x376 /* instruction cache transient victim 2 */#define itv3 0x377 /* instruction cache transient victim 3 */#define dnv0 0x390 /* data cache normal victim 0 */#define dnv1 0x391 /* data cache normal victim 1 */#define dnv2 0x392 /* data cache normal victim 2 */#define dnv3 0x393 /* data cache normal victim 3 */#define dtv0 0x394 /* data cache transient victim 0 */#define dtv1 0x395 /* data cache transient victim 1 */#define dtv2 0x396 /* data cache transient victim 2 */#define dtv3 0x397 /* data cache transient victim 3 */#define dvlim 0x398 /* data cache victim limit */#define ivlim 0x399 /* instruction cache victim limit */#define rstcfg 0x39b /* reset configuration */#define dcdbtrl 0x39c /* data cache debug tag register low */#define dcdbtrh 0x39d /* data cache debug tag register high */#define icdbtrl 0x39e /* instruction cache debug tag register low */#define icdbtrh 0x39f /* instruction cache debug tag register high */#define mmucr 0x3b2 /* mmu control register */#define ccr0 0x3b3 /* core configuration register 0 */#define icdbdr 0x3d3 /* instruction cache debug data register */#define dbdr 0x3f3 /* debug data register *//****************************************************************************** * DCRs & Related ******************************************************************************//*----------------------------------------------------------------------------- | Clocking Controller +----------------------------------------------------------------------------*/#define CLOCKING_DCR_BASE 0x0c#define clkcfga (CLOCKING_DCR_BASE+0x0)#define clkcfgd (CLOCKING_DCR_BASE+0x1)/* values for clkcfga register - indirect addressing of these regs */#define clk_clkukpd 0x0020#define clk_pllc 0x0040#define clk_plld 0x0060#define clk_primad 0x0080#define clk_primbd 0x00a0#define clk_opbd 0x00c0#define clk_perd 0x00e0#define clk_mald 0x0100#define clk_icfg 0x0140/* 440gx sdr register definations */#define SDR_DCR_BASE 0x0e#define sdrcfga (SDR_DCR_BASE+0x0)#define sdrcfgd (SDR_DCR_BASE+0x1)#define sdr_sdstp0 0x0020 /* */#define sdr_sdstp1 0x0021 /* */#define sdr_pinstp 0x0040#define sdr_sdcs 0x0060#define sdr_ecid0 0x0080#define sdr_ecid1 0x0081#define sdr_ecid2 0x0082#define sdr_jtag 0x00c0#define sdr_ddrdl 0x00e0#define sdr_ebc 0x0100#define sdr_uart0 0x0120 /* UART0 Config */#define sdr_uart1 0x0121 /* UART1 Config */#define sdr_cp440 0x0180#define sdr_xcr 0x01c0#define sdr_xpllc 0x01c1#define sdr_xplld 0x01c2#define sdr_srst 0x0200#define sdr_slpipe 0x0220#define sdr_amp 0x0240#define sdr_mirq0 0x0260#define sdr_mirq1 0x0261#define sdr_maltbl 0x0280#define sdr_malrbl 0x02a0#define sdr_maltbs 0x02c0#define sdr_malrbs 0x02e0#define sdr_cust0 0x4000#define sdr_sdstp2 0x4001#define sdr_cust1 0x4002#define sdr_sdstp3 0x4003#define sdr_pfc0 0x4100 /* Pin Function 0 */#define sdr_pfc1 0x4101 /* Pin Function 1 */#define sdr_plbtr 0x4200#define sdr_mfr 0x4300 /* SDR0_MFR reg *//*----------------------------------------------------------------------------- | 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 */#define mem_besr0_clr 0x0000 /* bus error status reg 0 (clr) */#define mem_besr0_set 0x0004 /* bus error status reg 0 (set) */#define mem_besr1_clr 0x0008 /* bus error status reg 1 (clr) */#define mem_besr1_set 0x000c /* bus error status reg 1 (set) */#define mem_bear 0x0010 /* bus error address reg */#define mem_mirq_clr 0x0011 /* bus master interrupt (clr) */#define mem_mirq_set 0x0012 /* bus master interrupt (set) */#define mem_slio 0x0018 /* ddr sdram slave interface options */#define mem_cfg0 0x0020 /* ddr sdram options 0 */#define mem_cfg1 0x0021 /* ddr sdram options 1 */#define mem_devopt 0x0022 /* ddr sdram device options */#define mem_mcsts 0x0024 /* memory controller status */#define mem_rtr 0x0030 /* refresh timer register */#define mem_pmit 0x0034 /* power management idle timer */#define mem_uabba 0x0038 /* plb UABus base address */#define mem_b0cr 0x0040 /* ddr sdram bank 0 configuration */#define mem_b1cr 0x0044 /* ddr sdram bank 1 configuration */#define mem_b2cr 0x0048 /* ddr sdram bank 2 configuration */#define mem_b3cr 0x004c /* ddr sdram bank 3 configuration */#define mem_tr0 0x0080 /* sdram timing register 0 */#define mem_tr1 0x0081 /* sdram timing register 1 */#define mem_clktr 0x0082 /* ddr clock timing register */#define mem_wddctr 0x0083 /* write data/dm/dqs clock timing reg */#define mem_dlycal 0x0084 /* delay line calibration register */#define mem_eccesr 0x0098 /* ECC error status *//*----------------------------------------------------------------------------- | 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 */#define pb5cr 0x05 /* periph bank 5 config reg */#define pb6cr 0x06 /* periph bank 6 config reg */#define pb7cr 0x07 /* periph bank 7 config reg */#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 */#define pb5ap 0x15 /* periph bank 5 access parameters */#define pb6ap 0x16 /* periph bank 6 access parameters */#define pb7ap 0x17 /* periph bank 7 access parameters */#define pbear 0x20 /* periph bus error addr reg */#define pbesr 0x21 /* periph bus error status reg */#define xbcfg 0x23 /* external bus configuration reg */#define xbcid 0x23 /* external bus core id reg *//*----------------------------------------------------------------------------- | Internal SRAM +----------------------------------------------------------------------------*/#define ISRAM0_DCR_BASE 0x020#define isram0_sb0cr (ISRAM0_DCR_BASE+0x00) /* SRAM bank config 0*/#define isram0_sb1cr (ISRAM0_DCR_BASE+0x01) /* SRAM bank config 1*/#define isram0_sb2cr (ISRAM0_DCR_BASE+0x02) /* SRAM bank config 2*/#define isram0_sb3cr (ISRAM0_DCR_BASE+0x03) /* SRAM bank config 3*/#define isram0_bear (ISRAM0_DCR_BASE+0x04) /* SRAM bus error addr reg */#define isram0_besr0 (ISRAM0_DCR_BASE+0x05) /* SRAM bus error status reg 0 */#define isram0_besr1 (ISRAM0_DCR_BASE+0x06) /* SRAM bus error status reg 1 */#define isram0_pmeg (ISRAM0_DCR_BASE+0x07) /* SRAM power management */#define isram0_cid (ISRAM0_DCR_BASE+0x08) /* SRAM bus core id reg */#define isram0_revid (ISRAM0_DCR_BASE+0x09) /* SRAM bus revision id reg */#define isram0_dpc (ISRAM0_DCR_BASE+0x0a) /* SRAM data parity check reg *//*----------------------------------------------------------------------------- | L2 Cache +----------------------------------------------------------------------------*/#if defined (CONFIG_440_GX)#define L2_CACHE_BASE 0x030#define l2_cache_cfg (L2_CACHE_BASE+0x00) /* L2 Cache Config */#define l2_cache_cmd (L2_CACHE_BASE+0x01) /* L2 Cache Command */#define l2_cache_addr (L2_CACHE_BASE+0x02) /* L2 Cache Address */#define l2_cache_data (L2_CACHE_BASE+0x03) /* L2 Cache Data */#define l2_cache_stat (L2_CACHE_BASE+0x04) /* L2 Cache Status */#define l2_cache_cver (L2_CACHE_BASE+0x05) /* L2 Cache Revision ID */#define l2_cache_snp0 (L2_CACHE_BASE+0x06) /* L2 Cache Snoop reg 0 */#define l2_cache_snp1 (L2_CACHE_BASE+0x07) /* L2 Cache Snoop reg 1 */#endif /* CONFIG_440_GX *//*----------------------------------------------------------------------------- | On-Chip Buses +----------------------------------------------------------------------------*//* TODO: as needed *//*----------------------------------------------------------------------------- | Clocking, Power Management and Chip Control
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -