📄 pci.h
字号:
/* PCI.h - PCI functions header file *//* Copyright - Galileo technology. */#ifndef __INCpcih#define __INCpcih/* includes */#include"core.h"/* defines */#define PCI0_MASTER_ENABLE(deviceNumber) pci0WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,MASTER_ENABLE | \ pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_MASTER_DISABLE(deviceNumber) pci0WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,~MASTER_ENABLE & \ pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_MASTER_ENABLE(deviceNumber) pci1WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,MASTER_ENABLE | \ pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_MASTER_DISABLE(deviceNumber) pci1WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,~MASTER_ENABLE & \ pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_MEMORY_ENABLE(deviceNumber) pci0WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE | \ pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_MEMORY_ENABLE(deviceNumber) pci1WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE | \ pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_IO_ENABLE(deviceNumber) pci0WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,I_O_ENABLE | \ pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_IO_ENABLE(deviceNumber) pci1WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,I_O_ENABLE | \ pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_SLAVE_ENABLE(deviceNumber) pci0WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE | I_O_ENABLE | \ pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI1_SLAVE_ENABLE(deviceNumber) pci1WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,MEMORY_ENABLE | I_O_ENABLE | \ pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber) )#define PCI0_DISABLE(deviceNumber) pci0WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,0xfffffff8 & \ pci0ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber))#define PCI1_DISABLE(deviceNumber) pci1WriteConfigReg( \ PCI_0STATUS_AND_COMMAND,deviceNumber,0xfffffff8 & \ pci1ReadConfigReg(PCI_0STATUS_AND_COMMAND,deviceNumber))#define MASTER_ENABLE BIT2#define MEMORY_ENABLE BIT1#define I_O_ENABLE BIT0#define SELF 0/* Agent on the PCI bus may have up to 6 BARS. */#define BAR0 0x10#define BAR1 0x14#define BAR2 0x18#define BAR3 0x1c#define BAR4 0x20#define BAR5 0x24/* typedefs */typedef struct pciDevice{ char type[20]; unsigned int deviceNum; unsigned int venID; unsigned int deviceID; unsigned int bar0Base; unsigned int bar0Size; unsigned int bar0Type; unsigned int bar1Base; unsigned int bar1Size; unsigned int bar1Type; unsigned int bar2Base; unsigned int bar2Size; unsigned int bar2Type; unsigned int bar3Base; unsigned int bar3Size; unsigned int bar3Type; unsigned int bar4Base; unsigned int bar4Size; unsigned int bar4Type; unsigned int bar5Base; unsigned int bar5Size; unsigned int bar5Type;} PCI_DEVICE;void pci0WriteConfigReg(unsigned int regOffset,unsigned int pciDevNum, unsigned int data);void pci1WriteConfigReg(unsigned int regOffset,unsigned int pciDevNum, unsigned int data);void pci0ScanDevices(PCI_DEVICE *pci0Detect,unsigned int numberOfElment);void pci1ScanDevices(PCI_DEVICE *pci1Detect,unsigned int numberOfElment);unsigned int pci0ReadConfigReg (unsigned int regOffset, unsigned int pciDevNum);unsigned int pci1ReadConfigReg (unsigned int regOffset, unsigned int pciDevNum);/* Master`s memory space */void pci0MapIOspace(unsigned int pci0IoBase,unsigned int pci0IoLength);void pci0MapMemory0space(unsigned int pci0Mem0Base, unsigned int pci0Mem0Length);void pci0MapMemory1space(unsigned int pci0Mem1Base, unsigned int pci0Mem1Length);void pci1MapIOspace(unsigned int pci1IoBase,unsigned int pci1IoLength);void pci1MapMemory0space(unsigned int pci1Mem0Base, unsigned int pci1Mem0Length);void pci1MapMemory1space(unsigned int pci1Mem1Base, unsigned int pci1Mem1Length);unsigned int pci0GetIOspaceBase(void);unsigned int pci0GetIOspaceSize(void);unsigned int pci0GetMemory0Base(void);unsigned int pci0GetMemory0Size(void);unsigned int pci0GetMemory1Base(void);unsigned int pci0GetMemory1Size(void);unsigned int pci1GetIOspaceBase(void);unsigned int pci1GetIOspaceSize(void);unsigned int pci1GetMemory0Base(void);unsigned int pci1GetMemory0Size(void);unsigned int pci1GetMemory1Base(void);unsigned int pci1GetMemory1Size(void);/* Slave`s memory space */void pci0MapInternalRegSpace(unsigned int pci0InternalBase);void pci0MapInternalRegIOSpace(unsigned int pci0InternalBase);void pci0MapMemoryBanks0_1(unsigned int pci0Dram0_1Base, unsigned int pci0Dram0_1Size);void pci0MapMemoryBanks2_3(unsigned int pci0Dram2_3Base, unsigned int pci0Dram2_3Size);void pci0MapDevices0_1and2MemorySpace(unsigned int pci0Dev012Base, unsigned int pci0Dev012Length);void pci0MapDevices3andBootMemorySpace(unsigned int pci0Dev3andBootBase, unsigned int pci0Dev3andBootLength);void pci1MapInternalRegSpace(unsigned int pci1InternalBase);void pci1MapInternalRegIOSpace(unsigned int pci1InternalBase);void pci1MapMemoryBanks0_1(unsigned int pci1Dram0_1Base, unsigned int pci1Dram0_1Size);void pci1MapMemoryBanks2_3(unsigned int pci1Dram2_3Base, unsigned int pci1Dram2_3Size);void pci1MapDevices0_1and2MemorySpace(unsigned int pci1Dev012Base, unsigned int pci1Dev012Length);void pci1MapDevices3andBootMemorySpace(unsigned int pci1Dev3andBootBase, unsigned int pci1Dev3andBootLength);#endif /* __INCpcih */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -