From 3ecc38cb8b882169fb64bf939f709326915f375e Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sun, 1 Feb 2009 00:02:21 -0800 Subject: Devices: Add support for legacy fixed IO locations in BARs. --- src/dev/x86/pc.cc | 15 +++++++++++++-- src/dev/x86/pc.hh | 12 +++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'src/dev/x86') diff --git a/src/dev/x86/pc.cc b/src/dev/x86/pc.cc index 2deed95d3..3dfa50d7f 100644 --- a/src/dev/x86/pc.cc +++ b/src/dev/x86/pc.cc @@ -143,9 +143,8 @@ Pc::pciToDma(Addr pciAddr) const M5_DUMMY_RETURN } - Addr -Pc::calcConfigAddr(int bus, int dev, int func) +Pc::calcPciConfigAddr(int bus, int dev, int func) { assert(func < 8); assert(dev < 32); @@ -153,6 +152,18 @@ Pc::calcConfigAddr(int bus, int dev, int func) return (PhysAddrPrefixPciConfig | (func << 8) | (dev << 11)); } +Addr +Pc::calcPciIOAddr(Addr addr) +{ + return PhysAddrPrefixIO + addr; +} + +Addr +Pc::calcPciMemAddr(Addr addr) +{ + return addr; +} + Pc * PcParams::create() { diff --git a/src/dev/x86/pc.hh b/src/dev/x86/pc.hh index 21055a566..427cc4165 100644 --- a/src/dev/x86/pc.hh +++ b/src/dev/x86/pc.hh @@ -93,7 +93,17 @@ class Pc : public Platform /** * Calculate the configuration address given a bus/dev/func. */ - virtual Addr calcConfigAddr(int bus, int dev, int func); + virtual Addr calcPciConfigAddr(int bus, int dev, int func); + + /** + * Calculate the address for an IO location on the PCI bus. + */ + virtual Addr calcPciIOAddr(Addr addr); + + /** + * Calculate the address for a memory location on the PCI bus. + */ + virtual Addr calcPciMemAddr(Addr addr); }; #endif // __DEV_PC_HH__ -- cgit v1.2.3