*/\r
#define DEBUG 0\r
#include <acess.h>\r
-\r
-// === PROTOTYPES ===\r
-Uint32 PCI_CfgReadDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset);\r
-void PCI_CfgWriteDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset, Uint32 data);\r
-Uint16 PCI_CfgReadWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset);\r
-Uint8 PCI_CfgReadByte(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset);\r
+#include <drv_pci_int.h>\r
\r
// === CODE ===\r
-Uint32 PCI_CfgReadDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)\r
-{\r
- Uint32 address;\r
- Uint32 data;\r
- \r
- bus &= 0xFF; // 8 Bits\r
- dev &= 0x1F; // 5 Bits\r
- func &= 0x7; // 3 Bits\r
- offset &= 0xFF; // 8 Bits\r
- \r
- address = 0x80000000 | ((Uint)bus<<16) | ((Uint)dev<<11) | ((Uint)func<<8) | (offset&0xFC);\r
- outd(0xCF8, address);\r
- \r
- data = ind(0xCFC);\r
- //Debug("PCI(0x%x) = 0x%08x", address, data);\r
- return data;\r
-}\r
-void PCI_CfgWriteDWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset, Uint32 data)\r
+Uint32 PCI_CfgReadDWord(Uint32 Address)\r
{\r
- Uint32 address;\r
- \r
- bus &= 0xFF; // 8 Bits\r
- dev &= 0x1F; // 5 Bits\r
- func &= 0x7; // 3 Bits\r
- offset &= 0xFF; // 8 Bits\r
- \r
- address = 0x80000000 | ((Uint)bus<<16) | ((Uint)dev<<11) | ((Uint)func<<8) | (offset&0xFC);\r
- outd(0xCF8, address);\r
- outd(0xCFC, data);\r
-}\r
-Uint16 PCI_CfgReadWord(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)\r
-{\r
- Uint32 data = PCI_CfgReadDWord(bus, dev, func, offset);\r
- \r
- data >>= (offset&2)*8; // Allow Access to Upper Word\r
- \r
- return (Uint16)data;\r
+ Address |= 0x80000000;\r
+ outd(0xCF8, Address);\r
+ return ind(0xCFC);\r
}\r
\r
-Uint8 PCI_CfgReadByte(Uint16 bus, Uint16 dev, Uint16 func, Uint16 offset)\r
+void PCI_CfgWriteDWord(Uint32 Address, Uint32 Data)\r
{\r
- Uint32 data = PCI_CfgReadDWord(bus, dev, func, offset);\r
- \r
- data >>= (offset&3)*8; //Allow Access to Upper Word\r
- return (Uint8)data;\r
+ Address |= 0x80000000;\r
+ outd(0xCF8, Address);\r
+ outd(0xCFC, Data);\r
}\r
-\r