⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pspanlib.h

📁 motorola 8260 CPU上面
💻 H
字号:
/*************************************************************************** $Id:$ FILE    :   pspanLib.h Purpose :   Header file for Misc PowerSpan Register Routines             (modified from pspanHWDVRoutines.h) Author  :   Wilson Li Date    :   2000.3.19 Modification History: Date        Who   What 3/19/00     WLI   Initial Implementation 4/10/00     pjg   Tundra Powerspan Evaluation Board Initial Release  **************************************************************************/#ifndef INCpspanLibh#define INCpspanLibh#include "pspan.h"/* *  PowerSpan Images Memory Map (3/20/00) *  For Coppermine. * *  If the base/xlat address is 0, use the existing value *  given from host. * *  PB Memory Map *  ----------------------- *  0x00000000    64 MB  SDRAM * *  0xa0000000    32 MB  PB Image 0 to P1 QSpan II 1 *  0xa2000000    32 MB  PB Image 1 to P1 QSpan II 2 *  0xa4000000    32 MB  PB Image 2 to P1 PSpan Image 0 *  0xa6000000    32 MB  PB Image 3 to P1 PSpan Image 1 *  0xa8000000    64 MB  PB Image 4 to P2 QSpan II + QSpan II Regs * *  0x04700000   128 KB  8260 Internal Memory Space *  0x04720000    32 KB  Coppermine BCSRs *  0x04728000     4 KB  PB Register Image *  0x04729000     4 KB  PB Image 5 to P1 QSpan II 1 Regs *  0x0472a000     4 KB  PB Image 6 to P1 QSpan II 2 Regs *  0x0472b000     4 KB  PB Image 7 to P1 PSpan Regs * *  0xfe000000   512 KB  Flash * *  Note:  The above requires 4 DBAT registers if the MMU is enabled. *   64 MB DBAT0:  SDRAM *  256 MB DBAT1:  PowerSpan PB Images 0-4 *  256 KB DBAT2:  8260 Internal Space, Coppermine BCSRs, PowerSpan Regs, *                 PowerSpan PB Images 5-7 *   32 MB DBAT3:  Flash *   *  P1 PowerSpan Memory Map *  ----------------------- *  0xXXXXXXXX     4 KB  P1 Register Image (address assigned by host) *  0xXXXXXXXX    32 MB  P1 Image 0 to PB SDRAM (address assigned by host) *  0xXXXXXXXX    32 MB  P1 Image 1 to P1 QSpan II (address assigned by host) * *  P2 PowerSpan Memory Map *  ----------------------- *  0x10000000    32 MB  P2 Image 0 to PB SDRAM *  0x20000000    32 MB  P2 Image 1 to P1 QSpan II 1 *  0x30000000    32 MB  P2 Image 2 to P1 QSpan II 2 *  0x40000000    32 MB  P2 Image 3 to P1 QSpan II 2 *  0xf0000000    32 MB  QSpan II Image 0  (from PB image 4) *  0xf2000000     4 KB  QSpan II Regs  (from PB image 4) * *  The following PowerSpan address registers in the PowerSpan are not programmed by  *  PowerSpan_Images_Setup() on the Coppermine.  They values must be obtained *  by PCI config writes done by the host to PowerSpan config space and QSpan II *  config space. * *  P1_BSREG (leave the register as is) *  P1_BST0  (leave the register as is) *  P1_BST1  (leave the register as is) * *  P2_TI1_TADDR  QSpan II 1 on P1 *  P2_TI2_TADDR  QSpan II 2 on P1 *  P2_TI3_TADDR  PSpan on P1 (the other PSpan) * *  PB_SI0_TADDR  QSpan II 1 on P1 *  PB_SI1_TADDR  QSpan II 2 on P1 *  PB_SI2_TADDR  PSpan Image 0 on P1 (the other PSpan) *  PB_SI3_TADDR  PSpan Image 1 on P1 (the other PSpan) *  PB_SI5_TADDR  QSpan II 1 Regs on P1 *  PB_SI6_TADDR  QSpan II 2 Regs on P1 *  PB_SI7_TADDR  PSpan Regs on P1 (the other PSpan) * * *  The defines below until "Misc Defines" are defines for *  programming PowerSpan slave/target images used by *  the routine PspanImagesSetup(). * */#define PS_BASE_DEFAULT          0x30000000 /* from PB */#define PCI1_TI0_BASE_ADDR       0x00000000 /* from host */#define PCI1_TI1_BASE_ADDR       0x00000000 /* from host */#define PCI1_TI2_BASE_ADDR       0x00000000 /* from host */#define PCI1_TI3_BASE_ADDR       0x00000000 /* from host */#define PCI1_TI0_XLAT_ADDR       0x02000000 /* 60x SDRAM */#define PCI1_TI1_XLAT_ADDR       0xf0000000 /* to PCI 2 QSpan 2 */#define PCI1_TI2_XLAT_ADDR       0x00000000 /* not used */#define PCI1_TI3_XLAT_ADDR       0x00000000 /* not used */#define PCI2_TI0_BASE_ADDR       0x10000000 /* P2 Image 0 */#define PCI2_TI1_BASE_ADDR       0x20000000 /* P2 Image 1 */#define PCI2_TI2_BASE_ADDR       0x30000000 /* P2 Image 2 */#define PCI2_TI3_BASE_ADDR       0x40000000 /* P2 Image 3 *//*  * The translation address from P1 needs to be obtained from  * host. */#define PCI2_TI0_XLAT_ADDR       0x02000000 /* 60x SDRAM */#define PCI2_TI1_XLAT_ADDR       0x00000000 /* from host */#define PCI2_TI2_XLAT_ADDR       0x00000000 /* from host */#define PCI2_TI3_XLAT_ADDR       0x00000000 /* from host */#define PB_SI0_BASE_ADDR         0xa0000000 /* P1 QSpan II 1 Image 0 */#define PB_SI1_BASE_ADDR         0xa2000000 /* P1 QSpan II 2 Image 0 */#define PB_SI2_BASE_ADDR         0xa4000000 /* P1 PSpan Image 0 */#define PB_SI3_BASE_ADDR         0xa6000000 /* P1 PSpan Image 1 */#define PB_SI4_BASE_ADDR         0xa8000000 /* P2 QSpan II Image 0 + Regs */#define PB_SI5_BASE_ADDR         0x04729000 /* P1 QSpan II 1 Regs */#define PB_SI6_BASE_ADDR         0x0472a000 /* P1 QSpan II 2 Regs */#define PB_SI7_BASE_ADDR         0x0472b000 /* P1 PSpan Regs */#define PB_SI0_XLAT_ADDR         0x00000000 /* from host */#define PB_SI1_XLAT_ADDR         0x00000000 /* from host */#define PB_SI2_XLAT_ADDR         0x00000000 /* from host */#define PB_SI3_XLAT_ADDR         0x00000000 /* from host */#define PB_SI4_XLAT_ADDR         0xf0000000 /* P2 QSPan II Image 0 + Regs */#define PB_SI5_XLAT_ADDR         0x00000000 /* from host */#define PB_SI6_XLAT_ADDR         0x00000000 /* from host */#define PB_SI7_XLAT_ADDR         0x00000000 /* from host *//* *  PowerSpan Images Misc Defines * *  The block sizes are set for the Coppermine. *  All unused images have a value of 0. * */#define PCI1_TI0_BLOCK_SIZE      0x00000009  /* 32 MB */#define PCI1_TI1_BLOCK_SIZE      0x00000009  /* 32 MB */#define PCI1_TI2_BLOCK_SIZE      0x00000000  /* not used */#define PCI1_TI3_BLOCK_SIZE      0x00000000  /* not used */#define PCI2_TI0_BLOCK_SIZE      0x00000009  /* 32 MB */#define PCI2_TI1_BLOCK_SIZE      0x00000009  /* 32 MB */#define PCI2_TI2_BLOCK_SIZE      0x00000009  /* 32 MB */#define PCI2_TI3_BLOCK_SIZE      0x00000009  /* 32 MB */#define PB_SI0_BLOCK_SIZE        0x0000000d  /* 32 MB */#define PB_SI1_BLOCK_SIZE        0x0000000d  /* 32 MB */#define PB_SI2_BLOCK_SIZE        0x0000000d  /* 32 MB */#define PB_SI3_BLOCK_SIZE        0x0000000d  /* 32 MB */#define PB_SI4_BLOCK_SIZE        0x0000000e  /* 64 MB */#define PB_SI5_BLOCK_SIZE        0x00000000  /* 4  KB */#define PB_SI6_BLOCK_SIZE        0x00000000  /* 4  KB */#define PB_SI7_BLOCK_SIZE        0x00000000  /* 4  KB *//* *  The default read amount is set to 32 Bytes for all the  *  images. * */#define PCI1_TI0_RD_AMT          0x00000002#define PCI1_TI1_RD_AMT          0x00000002#define PCI1_TI2_RD_AMT          0x00000002#define PCI1_TI3_RD_AMT          0x00000002#define PCI2_TI0_RD_AMT          0x00000002#define PCI2_TI1_RD_AMT          0x00000002#define PCI2_TI2_RD_AMT          0x00000002#define PCI2_TI3_RD_AMT          0x00000002#define PB_SI0_RD_AMT            0x00000002#define PB_SI1_RD_AMT            0x00000002#define PB_SI2_RD_AMT            0x00000002#define PB_SI3_RD_AMT            0x00000002#define PB_SI4_RD_AMT            0x00000002#define PB_SI5_RD_AMT            0x00000002#define PB_SI6_RD_AMT            0x00000002#define PB_SI7_RD_AMT            0x00000002/* End of defines for PowerSpan_Images_Setup() *//* Miscellaneous Definitions */#define SUCCESS 0#define FAILURE 1#define FALSE   0#define TRUE    1#define READ    0#define WRITE   1#define PB                   0#define PCI1                 1#define PCI2                 2#define BIG_ENDIAN           0#define LITTLE_ENDIAN        1#define PPC_LITTLE_ENDIAN    2#define PS_PCI1_DEV_NUM      0#define PS_PCI2_DEV_NUM      0#define PCI_TIx_CTL_RTT_VAL           0x000a0000#define PCI_TIx_CTL_WTT_VAL           0x00000200#define PCI_TIx_CTL_LE_VAL            0x00000000#define PCI_TIx_CTL_PPC_LE_VAL        0x00000020#define PCI_TIx_CTL_BE_VAL            0x00000040#define PB_SIx_CTL_LE_VAL             0x00000000#define PB_SIx_CTL_PPC_LE_VAL         0x00000020#define PB_SIx_CTL_BE_VAL             0x00000040#define DMAx_TCR_SRC_PORT_P1_VAL      0x00000000#define DMAx_TCR_SRC_PORT_P2_VAL      0x40000000#define DMAx_TCR_SRC_PORT_PB_VAL      0x80000000#define DMAx_TCR_DST_PORT_P1_VAL      0x00000000#define DMAx_TCR_DST_PORT_P2_VAL      0x10000000#define DMAx_TCR_DST_PORT_PB_VAL      0x20000000#define DMAx_ATTR_CPA_PORT_P1_VAL     0x00000000#define DMAx_ATTR_CPA_PORT_P2_VAL     0x40000000#define DMAx_ATTR_CPA_PORT_PB_VAL     0x80000000#define IMR_MAP_P1_INTA_VAL           0x00000000#define IMR_MAP_P2_INTA_VAL           0x22222222#define IMR_MAP_INT0_VAL              0x44444444#define IMR_MAP_INT1_VAL              0x66666666#define IMR_MAP_INT2_VAL              0x88888888#define IMR_MAP_INT3_VAL              0xaaaaaaaa#define IMR_MAP_INT4_VAL              0xcccccccc#define IMR_MAP_INT5_VAL              0xeeeeeeee/* Print Macros */#ifdef DBG_MACROS#define DBG0(a) printf(a);#define DBG1(a,b) printf(a,b);#define DBG2(a,b,c) printf(a,b,c);#define DBG3(a,b,c,d) printf(a,b,c,d);#define DBG4(a,b,c,d,e) printf(a,b,c,d,e);#define DBG5(a,b,c,d,e,f) printf(a,b,c,d,e,f);#define DBG6(a,b,c,d,e,f,g) printf(a,b,c,d,e,f,g);#else#define DBG0(a) #define DBG1(a,b) #define DBG2(a,b,c) #define DBG3(a,b,c,d) #define DBG4(a,b,c,d,e) #define DBG5(a,b,c,d,e,f) #define DBG6(a,b,c,d,e,f,g) #endif /* DBG_MACROS */struct PowerSpanCmdPktDef {        VUINT32 Reserved00;        VUINT32 DMAx_SRC_ADDR;        VUINT32 Reserved08;        VUINT32 DMAx_DST_ADDR;        VUINT32 Reserved10;        VUINT32 DMAx_TCR;        VUINT32 Reserved18;        VUINT32 DMAx_CPP;};/* Function Prototypes */UINT32 PspanInit(PPSPAN pspan);UINT32 PspanPciConfigRead (   PPSPAN pspan,  UINT32 dest,  UINT32 dev_num,  UINT32 reg_offset   );                UINT32 PspanPciConfigWrite (   PPSPAN pspan,   UINT32 dest,   UINT32 dev_num,   UINT32 reg_offset,   UINT32 data    );UINT32 PspanPciProbe (  PPSPAN pspan,   UINT32 dest   );UINT32 PspanPciFindDevice (   PPSPAN pspan,  UINT32 dest,  UINT32 starting_dev_num,  UINT32 dev_ven_id,  UINT32 *dev_num   ); UINT32 PspanEnablePciMemAccess (   PPSPAN pspan   );UINT32 PspanPbSlaveImageSetup (   PPSPAN pspan,  UINT32 img_num,  UINT32 baddr,  UINT32 taddr,  UINT32 bs,  UINT32 rd_amt   );UINT32 PspanPciTargetImageSetup (   PPSPAN pspan,  UINT32 bus,  UINT32 img_num,  UINT32 baddr,  UINT32 taddr,  UINT32 bs,  UINT32 rd_amt   );UINT32 PspanPbSlaveImageMiscSetup (   PPSPAN pspan,  UINT32 img_num,  UINT32 endian,  UINT32 dest,  UINT32 prkeep   );UINT32 PspanPciTargetImageMiscSetup (   PPSPAN pspan,  UINT32 bus,  UINT32 img_num,  UINT32 endian,  UINT32 dest,  UINT32 prkeep   );                      UINT32 PspanImageControlDump (   PPSPAN pspan  );    UINT32 PspanImagesSetup (   PPSPAN pspan  );void PspanExtendedCyles (  PPSPAN pspan,  UINT32 enable_disable  );UINT32 PspanInterruptsSetup (  PPSPAN pspan   );                                   UINT32 PspanSimpleDirectModeDma (   PPSPAN pspan,  UINT32 src_addr,  UINT32 dst_addr,  UINT32 src_port,  UINT32 dst_port,  UINT32 byte_count   );UINT32 PspanCreateCommandPacket (   struct PowerSpanCmdPktDef *p_PowerSpanCmdPktDef,  UINT32 src_addr,  UINT32 dst_addr,  UINT32 src_port,  UINT32 dst_port,  UINT32 byte_count,  struct PowerSpanCmdPktDef *next_cmd_pkt_ptr,  UINT32 last  );UINT32 PspanSimpleLinkedListModeDma (  PPSPAN pspan,  UINT32 src_addr,  UINT32 dst_addr,  UINT32 src_port,  UINT32 dst_port,  UINT32 byte_count  ); UINT32 PspanLinkedListDma (  PPSPAN pspan,  struct PowerSpanCmdPktDef *cmd_ppkt,  UINT32 src_addr0,  UINT32 dst_addr0,  UINT32 src_port0,  UINT32 dst_port0,  UINT32 byte_count0,  UINT32 src_addr1,  UINT32 dst_addr1,  UINT32 src_port1,  UINT32 dst_port1,  UINT32 byte_count1,  UINT32 src_addr2,  UINT32 dst_addr2,  UINT32 src_port2,  UINT32 dst_port2,  UINT32 byte_count2  );UINT32 PspanI2c(  PPSPAN pspan,  UINT32 addr,  UINT32 data,  UINT32 dev_code,  UINT32 chip_select,  UINT32 read_write_,  UINT32 *result  );UINT32 PspanI2cWrite (   PPSPAN pspan,  UINT32 addr,  UINT32 data,  UINT32 chip_select  );UINT32 PspanI2cRead (  PPSPAN pspan,  UINT32 addr,  UINT32 chip_select,  UINT32 *result  );                  UINT32 PspanVpd (  PPSPAN pspan,  UINT32 chip_select,  UINT32 vpda,  UINT32 *vpdd,  UINT32 read_write_  );UINT32 PspanRegsDump (   PPSPAN pspan   );UINT32 PspanDirectModeDma (   PPSPAN pspan,  UINT32 src_addr,  UINT32 dst_addr,  UINT32 src_port,  UINT32 dst_port,  UINT32 byte_count,  UINT32 channel   );UINT32 PspanIsDmaDone (  PPSPAN pspan,  UINT32 channel  );UINT32 PspanCheckDmaStatus (   PPSPAN pspan,  UINT32 channel   );UINT32 PspanProgramI2cLoadBits (   UINT32 def_mem   );UINT32 PspanWriteI2cLoadTable (   unsigned char* i2c_table   );                  UINT32 Swap_Word(  UINT32 word_in  );#endif /* INCpspanLibh*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -