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

📄 pci.h

📁 AT91RM9200的完整启动代码:包括loader, boot及U-boot三部分均已编译通过!欢迎下载使用!
💻 H
字号:
/* PCI.h - PCI functions header file *//* Copyright - Galileo technology. */#ifndef __INCpcih#define __INCpcih/* includes */#include "core.h"#include "memory.h"/* According to PCI REV 2.1 MAX agents allowed on the bus are -21- */#define PCI_MAX_DEVICES 22/* Macros */#define     SELF                    32/* Defines for the access regions. */#define     PREFETCH_ENABLE                 BIT12#define     PREFETCH_DISABLE                NO_BIT#define     DELAYED_READ_ENABLE             BIT13/* #define     CACHING_ENABLE                  BIT14 *//* aggressive prefetch: PCI slave prefetch two burst in advance*/#define     AGGRESSIVE_PREFETCH              BIT16/* read line aggresive prefetch: PCI slave prefetch two burst in advance*/#define     READ_LINE_AGGRESSIVE_PREFETCH   BIT17/* read multiple aggresive prefetch: PCI slave prefetch two burst in advance*/#define     READ_MULTI_AGGRESSIVE_PREFETCH  BIT18#define     MAX_BURST_4                     NO_BIT#define     MAX_BURST_8                     BIT20  /* Bits[21:20] = 01 */#define     MAX_BURST_16                    BIT21  /* Bits[21:20] = 10 */#define     PCI_BYTE_SWAP                   NO_BIT /* Bits[25:24] = 00 */#define     PCI_NO_SWAP                     BIT24  /* Bits[25:24] = 01 */#define     PCI_BYTE_AND_WORD_SWAP          BIT25  /* Bits[25:24] = 10 */#define     PCI_WORD_SWAP                  (BIT24 | BIT25) /* Bits[25:24] = 11 */#define     PCI_ACCESS_PROTECT              BIT28#define     PCI_WRITE_PROTECT               BIT29/* typedefs */typedef enum __pciAccessRegions{REGION0,REGION1,REGION2,REGION3,REGION4,REGION5,                                REGION6,REGION7} PCI_ACCESS_REGIONS;typedef enum __pciAgentPrio{LOW_AGENT_PRIO,HI_AGENT_PRIO} PCI_AGENT_PRIO;typedef enum __pciAgentPark{PARK_ON_AGENT,DONT_PARK_ON_AGENT} PCI_AGENT_PARK;typedef enum __pciSnoopType{PCI_NO_SNOOP,PCI_SNOOP_WT,PCI_SNOOP_WB}                            PCI_SNOOP_TYPE;typedef enum __pciSnoopRegion{PCI_SNOOP_REGION0,PCI_SNOOP_REGION1,                              PCI_SNOOP_REGION2,PCI_SNOOP_REGION3}                              PCI_SNOOP_REGION;typedef enum __memPciHost{PCI_HOST0,PCI_HOST1} PCI_HOST;typedef enum __memPciRegion{PCI_REGION0,PCI_REGION1,   			 PCI_REGION2,PCI_REGION3,			 PCI_IO}			 PCI_REGION;/* read/write configuration registers on local PCI bus. */void pciWriteConfigReg(PCI_HOST host, unsigned int regOffset,		       unsigned int pciDevNum, unsigned int data);unsigned int pciReadConfigReg (PCI_HOST host, unsigned int regOffset,                               unsigned int pciDevNum);/* read/write configuration registers on another PCI bus. */void pciOverBridgeWriteConfigReg(PCI_HOST host,				 unsigned int regOffset,                                 unsigned int pciDevNum,                                 unsigned int busNum,unsigned int data);unsigned int pciOverBridgeReadConfigReg(PCI_HOST host,					unsigned int regOffset,                                        unsigned int pciDevNum,                                        unsigned int busNum);/*      Master`s memory space   */bool pciMapSpace(PCI_HOST host, PCI_REGION region,		unsigned int remapBase,		unsigned int deviceBase,	        unsigned int deviceLength);unsigned int pciGetSpaceBase(PCI_HOST host, PCI_REGION region);unsigned int pciGetSpaceSize(PCI_HOST host, PCI_REGION region);/*      Slave`s memory space   */void pciMapMemoryBank(PCI_HOST host, MEMORY_BANK bank,		      unsigned int pci0Dram0Base, unsigned int pci0Dram0Size);/* PCI region options */bool  pciSetRegionFeatures(PCI_HOST host, PCI_ACCESS_REGIONS region,	unsigned int features, unsigned int baseAddress,	unsigned int regionLength);void  pciDisableAccessRegion(PCI_HOST host, PCI_ACCESS_REGIONS region);/* PCI arbiter */bool pciArbiterEnable(PCI_HOST host);bool pciArbiterDisable(PCI_HOST host);bool pciParkingDisable(PCI_HOST host, PCI_AGENT_PARK internalAgent,                        PCI_AGENT_PARK externalAgent0,                        PCI_AGENT_PARK externalAgent1,                        PCI_AGENT_PARK externalAgent2,                        PCI_AGENT_PARK externalAgent3,                        PCI_AGENT_PARK externalAgent4,                        PCI_AGENT_PARK externalAgent5);bool pciSetRegionSnoopMode(PCI_HOST host, PCI_SNOOP_REGION region,			    PCI_SNOOP_TYPE snoopType,                            unsigned int baseAddress,                            unsigned int regionLength);#endif /* __INCpcih */

⌨️ 快捷键说明

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