📄 ppc440.h
字号:
#define SDR0_XCR_PISE_ENCODE(n) ((((unsigned long)(n))&0x01)<<29)#define SDR0_XCR_PISE_DECODE(n) ((((unsigned long)(n))>>29)&0x01)#define SDR0_XCR_PCWE_MASK 0x10000000#define SDR0_XCR_PCWE_DISABLE 0x00000000#define SDR0_XCR_PCWE_ENABLE 0x10000000#define SDR0_XCR_PCWE_ENCODE(n) ((((unsigned long)(n))&0x01)<<28)#define SDR0_XCR_PCWE_DECODE(n) ((((unsigned long)(n))>>28)&0x01)#define SDR0_XCR_PPIM_MASK 0x0F000000#define SDR0_XCR_PPIM_ENCODE(n) ((((unsigned long)(n))&0x0F)<<24)#define SDR0_XCR_PPIM_DECODE(n) ((((unsigned long)(n))>>24)&0x0F)#define SDR0_XCR_PR64E_MASK 0x00800000#define SDR0_XCR_PR64E_DISABLE 0x00000000#define SDR0_XCR_PR64E_ENABLE 0x00800000#define SDR0_XCR_PR64E_ENCODE(n) ((((unsigned long)(n))&0x01)<<23)#define SDR0_XCR_PR64E_DECODE(n) ((((unsigned long)(n))>>23)&0x01)#define SDR0_XCR_PXFS_MASK 0x00600000#define SDR0_XCR_PXFS_HIGH 0x00000000#define SDR0_XCR_PXFS_MED 0x00200000#define SDR0_XCR_PXFS_LOW 0x00400000#define SDR0_XCR_PXFS_ENCODE(n) ((((unsigned long)(n))&0x03)<<21)#define SDR0_XCR_PXFS_DECODE(n) ((((unsigned long)(n))>>21)&0x03)#define SDR0_XCR_PDM_MASK 0x00000040#define SDR0_XCR_PDM_MULTIPOINT 0x00000000#define SDR0_XCR_PDM_P2P 0x00000040#define SDR0_XCR_PDM_ENCODE(n) ((((unsigned long)(n))&0x01)<<19)#define SDR0_XCR_PDM_DECODE(n) ((((unsigned long)(n))>>19)&0x01)#define SDR0_PFC0_UART1_DSR_CTS_EN_MASK 0x00030000#define SDR0_PFC0_GEIE_MASK 0x00003E00#define SDR0_PFC0_GEIE_TRE 0x00003E00#define SDR0_PFC0_GEIE_NOTRE 0x00000000#define SDR0_PFC0_TRE_MASK 0x00000100#define SDR0_PFC0_TRE_DISABLE 0x00000000#define SDR0_PFC0_TRE_ENABLE 0x00000100#define SDR0_PFC0_TRE_ENCODE(n) ((((unsigned long)(n))&0x01)<<8)#define SDR0_PFC0_TRE_DECODE(n) ((((unsigned long)(n))>>8)&0x01)#define SDR0_PFC1_UART1_DSR_CTS_MASK 0x02000000#define SDR0_PFC1_EPS_MASK 0x01C00000#define SDR0_PFC1_EPS_GROUP0 0x00000000#define SDR0_PFC1_EPS_GROUP1 0x00400000#define SDR0_PFC1_EPS_GROUP2 0x00800000#define SDR0_PFC1_EPS_GROUP3 0x00C00000#define SDR0_PFC1_EPS_GROUP4 0x01000000#define SDR0_PFC1_EPS_GROUP5 0x01400000#define SDR0_PFC1_EPS_GROUP6 0x01800000#define SDR0_PFC1_EPS_GROUP7 0x01C00000#define SDR0_PFC1_EPS_ENCODE(n) ((((unsigned long)(n))&0x07)<<22)#define SDR0_PFC1_EPS_DECODE(n) ((((unsigned long)(n))>>22)&0x07)#define SDR0_PFC1_RMII_MASK 0x00200000#define SDR0_PFC1_RMII_100MBIT 0x00000000#define SDR0_PFC1_RMII_10MBIT 0x00200000#define SDR0_PFC1_RMII_ENCODE(n) ((((unsigned long)(n))&0x01)<<21)#define SDR0_PFC1_RMII_DECODE(n) ((((unsigned long)(n))>>21)&0x01)#define SDR0_PFC1_CTEMS_MASK 0x00100000#define SDR0_PFC1_CTEMS_EMS 0x00000000#define SDR0_PFC1_CTEMS_CPUTRACE 0x00100000#define SDR0_MFR_TAH0_MASK 0x80000000#define SDR0_MFR_TAH0_ENABLE 0x00000000#define SDR0_MFR_TAH0_DISABLE 0x80000000#define SDR0_MFR_TAH1_MASK 0x40000000#define SDR0_MFR_TAH1_ENABLE 0x00000000#define SDR0_MFR_TAH1_DISABLE 0x40000000#define SDR0_MFR_PCM_MASK 0x20000000#define SDR0_MFR_PCM_PPC440GX 0x00000000#define SDR0_MFR_PCM_PPC440GP 0x20000000#define SDR0_MFR_ECS_MASK 0x10000000#define SDR0_MFR_ECS_INTERNAL 0x10000000/*-----------------------------------------------------------------------------+| Clocking+-----------------------------------------------------------------------------*/#if !defined (CONFIG_440_GX)#define PLLSYS0_TUNE_MASK 0xffc00000 /* PLL TUNE bits */#define PLLSYS0_FB_DIV_MASK 0x003c0000 /* Feedback divisor */#define PLLSYS0_FWD_DIV_A_MASK 0x00038000 /* Forward divisor A */#define PLLSYS0_FWD_DIV_B_MASK 0x00007000 /* Forward divisor B */#define PLLSYS0_OPB_DIV_MASK 0x00000c00 /* OPB divisor */#define PLLSYS0_EPB_DIV_MASK 0x00000300 /* EPB divisor */#define PLLSYS0_EXTSL_MASK 0x00000080 /* PerClk feedback path */#define PLLSYS0_RW_MASK 0x00000060 /* ROM width */#define PLLSYS0_RL_MASK 0x00000010 /* ROM location */#define PLLSYS0_ZMII_SEL_MASK 0x0000000c /* ZMII selection */#define PLLSYS0_BYPASS_MASK 0x00000002 /* Bypass PLL */#define PLLSYS0_NTO1_MASK 0x00000001 /* CPU:PLB N-to-1 ratio */#define PLL_VCO_FREQ_MIN 500 /* Min VCO freq (MHz) */#define PLL_VCO_FREQ_MAX 1000 /* Max VCO freq (MHz) */#define PLL_CPU_FREQ_MAX 400 /* Max CPU freq (MHz) */#define PLL_PLB_FREQ_MAX 133 /* Max PLB freq (MHz) */#else /* !CONFIG_440_GX */#define PLLSYS0_ENG_MASK 0x80000000 /* 0 = SysClk, 1 = PLL VCO */#define PLLSYS0_SRC_MASK 0x40000000 /* 0 = PLL A, 1 = PLL B */#define PLLSYS0_SEL_MASK 0x38000000 /* 0 = PLL, 1 = CPU, 5 = PerClk */#define PLLSYS0_TUNE_MASK 0x07fe0000 /* PLL Tune bits */#define PLLSYS0_FB_DIV_MASK 0x0001f000 /* Feedback divisor */#define PLLSYS0_FWD_DIV_A_MASK 0x00000f00 /* Fwd Div A */#define PLLSYS0_FWD_DIV_B_MASK 0x000000e0 /* Fwd Div B */#define PLLSYS0_PRI_DIV_B_MASK 0x0000001c /* PLL Primary Divisor B */#define PLLSYS0_OPB_DIV_MASK 0x00000003 /* OPB Divisor */#define PLL_VCO_FREQ_MIN 500 /* Min VCO freq (MHz) */#define PLL_VCO_FREQ_MAX 1000 /* Max VCO freq (MHz) */#define PLL_CPU_FREQ_MAX 400 /* Max CPU freq (MHz) */#define PLL_PLB_FREQ_MAX 133 /* Max PLB freq (MHz) *//* Strap 1 Register */#define PLLSYS1_LF_DIV_MASK 0xfc000000 /* PLL Local Feedback Divisor */#define PLLSYS1_PERCLK_DIV_MASK 0x03000000 /* Peripheral Clk Divisor */#define PLLSYS1_MAL_DIV_MASK 0x00c00000 /* MAL Clk Divisor */#define PLLSYS1_RW_MASK 0x00300000 /* ROM width */#define PLLSYS1_EAR_MASK 0x00080000 /* ERAP Addres reset vector */#define PLLSYS1_PAE_MASK 0x00040000 /* PCI arbitor enable */#define PLLSYS1_PCHE_MASK 0x00020000 /* PCI host config enable */#define PLLSYS1_PISE_MASK 0x00010000 /* PCI init seq. enable */#define PLLSYS1_PCWE_MASK 0x00008000 /* PCI local cpu wait enable */#define PLLSYS1_PPIM_MASK 0x00007800 /* PCI inbound map */#define PLLSYS1_PR64E_MASK 0x00000400 /* PCI init Req64 enable */#define PLLSYS1_PXFS_MASK 0x00000300 /* PCI-X Freq Sel */#define PLLSYS1_RSVD_MASK 0x00000080 /* RSVD */#define PLLSYS1_PDM_MASK 0x00000040 /* PCI-X Driver Mode */#define PLLSYS1_EPS_MASK 0x00000038 /* Ethernet Pin Select */#define PLLSYS1_RMII_MASK 0x00000004 /* RMII Mode */#define PLLSYS1_TRE_MASK 0x00000002 /* GPIO Trace Enable */#define PLLSYS1_NTO1_MASK 0x00000001 /* CPU:PLB N-to-1 ratio */#endif /* CONFIG_440_GX *//*-----------------------------------------------------------------------------| IIC Register Offsets'----------------------------------------------------------------------------*/#define IICMDBUF 0x00#define IICSDBUF 0x02#define IICLMADR 0x04#define IICHMADR 0x05#define IICCNTL 0x06#define IICMDCNTL 0x07#define IICSTS 0x08#define IICEXTSTS 0x09#define IICLSADR 0x0A#define IICHSADR 0x0B#define IICCLKDIV 0x0C#define IICINTRMSK 0x0D#define IICXFRCNT 0x0E#define IICXTCNTLSS 0x0F#define IICDIRECTCNTL 0x10/*-----------------------------------------------------------------------------| UART Register Offsets'----------------------------------------------------------------------------*/#define DATA_REG 0x00#define DL_LSB 0x00#define DL_MSB 0x01#define INT_ENABLE 0x01#define FIFO_CONTROL 0x02#define LINE_CONTROL 0x03#define MODEM_CONTROL 0x04#define LINE_STATUS 0x05#define MODEM_STATUS 0x06#define SCRATCH 0x07/*-----------------------------------------------------------------------------| PCI Internal Registers et. al. (accessed via plb)+----------------------------------------------------------------------------*/#define PCIX0_CFGADR (CFG_PCI_BASE + 0x0ec00000)#define PCIX0_CFGDATA (CFG_PCI_BASE + 0x0ec00004)#define PCIX0_CFGBASE (CFG_PCI_BASE + 0x0ec80000)#define PCIX0_IOBASE (CFG_PCI_BASE + 0x08000000)#define PCIX0_VENDID (PCIX0_CFGBASE + PCI_VENDOR_ID )#define PCIX0_DEVID (PCIX0_CFGBASE + PCI_DEVICE_ID )#define PCIX0_CMD (PCIX0_CFGBASE + PCI_COMMAND )#define PCIX0_STATUS (PCIX0_CFGBASE + PCI_STATUS )#define PCIX0_REVID (PCIX0_CFGBASE + PCI_REVISION_ID )#define PCIX0_CLS (PCIX0_CFGBASE + PCI_CLASS_CODE)#define PCIX0_CACHELS (PCIX0_CFGBASE + PCI_CACHE_LINE_SIZE )#define PCIX0_LATTIM (PCIX0_CFGBASE + PCI_LATENCY_TIMER )#define PCIX0_HDTYPE (PCIX0_CFGBASE + PCI_HEADER_TYPE )#define PCIX0_BIST (PCIX0_CFGBASE + PCI_BIST )#define PCIX0_BAR0 (PCIX0_CFGBASE + PCI_BASE_ADDRESS_0 )#define PCIX0_BAR1 (PCIX0_CFGBASE + PCI_BASE_ADDRESS_1 )#define PCIX0_BAR2 (PCIX0_CFGBASE + PCI_BASE_ADDRESS_2 )#define PCIX0_BAR3 (PCIX0_CFGBASE + PCI_BASE_ADDRESS_3 )#define PCIX0_BAR4 (PCIX0_CFGBASE + PCI_BASE_ADDRESS_4 )#define PCIX0_BAR5 (PCIX0_CFGBASE + PCI_BASE_ADDRESS_5 )#define PCIX0_CISPTR (PCIX0_CFGBASE + PCI_CARDBUS_CIS )#define PCIX0_SBSYSVID (PCIX0_CFGBASE + PCI_SUBSYSTEM_VENDOR_ID )#define PCIX0_SBSYSID (PCIX0_CFGBASE + PCI_SUBSYSTEM_ID )#define PCIX0_EROMBA (PCIX0_CFGBASE + PCI_ROM_ADDRESS )#define PCIX0_CAP (PCIX0_CFGBASE + PCI_CAPABILITY_LIST )#define PCIX0_RES0 (PCIX0_CFGBASE + 0x0035 )#define PCIX0_RES1 (PCIX0_CFGBASE + 0x0036 )#define PCIX0_RES2 (PCIX0_CFGBASE + 0x0038 )#define PCIX0_INTLN (PCIX0_CFGBASE + PCI_INTERRUPT_LINE )#define PCIX0_INTPN (PCIX0_CFGBASE + PCI_INTERRUPT_PIN )#define PCIX0_MINGNT (PCIX0_CFGBASE + PCI_MIN_GNT )#define PCIX0_MAXLTNCY (PCIX0_CFGBASE + PCI_MAX_LAT )#define PCIX0_BRDGOPT1 (PCIX0_CFGBASE + 0x0040)#define PCIX0_BRDGOPT2 (PCIX0_CFGBASE + 0x0044)#define PCIX0_POM0LAL (PCIX0_CFGBASE + 0x0068)#define PCIX0_POM0LAH (PCIX0_CFGBASE + 0x006c)#define PCIX0_POM0SA (PCIX0_CFGBASE + 0x0070)#define PCIX0_POM0PCIAL (PCIX0_CFGBASE + 0x0074)#define PCIX0_POM0PCIAH (PCIX0_CFGBASE + 0x0078)#define PCIX0_POM1LAL (PCIX0_CFGBASE + 0x007c)#define PCIX0_POM1LAH (PCIX0_CFGBASE + 0x0080)#define PCIX0_POM1SA (PCIX0_CFGBASE + 0x0084)#define PCIX0_POM1PCIAL (PCIX0_CFGBASE + 0x0088)#define PCIX0_POM1PCIAH (PCIX0_CFGBASE + 0x008c)#define PCIX0_POM2SA (PCIX0_CFGBASE + 0x0090)#define PCIX0_PIM0SA (PCIX0_CFGBASE + 0x0098)#define PCIX0_PIM0LAL (PCIX0_CFGBASE + 0x009c)#define PCIX0_PIM0LAH (PCIX0_CFGBASE + 0x00a0)#define PCIX0_PIM1SA (PCIX0_CFGBASE + 0x00a4)#define PCIX0_PIM1LAL (PCIX0_CFGBASE + 0x00a8)#define PCIX0_PIM1LAH (PCIX0_CFGBASE + 0x00ac)#define PCIX0_PIM2SA (PCIX0_CFGBASE + 0x00b0)#define PCIX0_PIM2LAL (PCIX0_CFGBASE + 0x00b4)#define PCIX0_PIM2LAH (PCIX0_CFGBASE + 0x00b8)#define PCIX0_STS (PCIX0_CFGBASE + 0x00e0)/* * Macros for accessing the indirect EBC registers */#define mtebc(reg, data) mtdcr(ebccfga,reg);mtdcr(ebccfgd,data)#define mfebc(reg, data) mtdcr(ebccfga,reg);data = mfdcr(ebccfgd)/* * Macros for accessing the indirect SDRAM controller registers */#define mtsdram(reg, data) mtdcr(memcfga,reg);mtdcr(memcfgd,data)#define mfsdram(reg, data) mtdcr(memcfga,reg);data = mfdcr(memcfgd)/* * Macros for accessing the indirect clocking controller registers */#define mtclk(reg, data) mtdcr(clkcfga,reg);mtdcr(clkcfgd,data)#define mfclk(reg, data) mtdcr(clkcfga,reg);data = mfdcr(clkcfgd)/* * Macros for accessing the sdr controller registers */#define mtsdr(reg, data) mtdcr(sdrcfga,reg);mtdcr(sdrcfgd,data)#define mfsdr(reg, data) mtdcr(sdrcfga,reg);data = mfdcr(sdrcfgd)#ifndef __ASSEMBLY__typedef struct{ unsigned long pllFwdDivA; unsigned long pllFwdDivB; unsigned long pllFbkDiv; unsigned long pllOpbDiv; unsigned long pllExtBusDiv; unsigned long freqVCOMhz; /* in MHz */ unsigned long freqProcessor; unsigned long freqPLB; unsigned long freqOPB; unsigned long freqEPB;} PPC440_SYS_INFO;#endif /* _ASMLANGUAGE */#define RESET_VECTOR 0xfffffffc#define CACHELINE_MASK (CFG_CACHELINE_SIZE - 1) /* Address mask for cache line aligned data. */#endif /* __PPC440_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -