diff options
author | Chris Johns <chrisj@rtems.org> | 2015-05-27 10:42:28 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2015-06-01 10:36:58 +1000 |
commit | 1383c80c5ae53f5ab399122034dc967c667abc15 (patch) | |
tree | 7e1b24c1eda4536246a141024edbc8c72bd0205d | |
parent | Regenerate with FreeBSD lex, yacc, and rpcgen tools. (diff) | |
download | rtems-libbsd-1383c80c5ae53f5ab399122034dc967c667abc15.tar.bz2 |
Add conditional support for RTEMS PCI to the waf build.
Check for the "rtems/pci.h" header and provide conditional build support
with waf to build for BSPs that do not have PCI support. The Makefile build
always defines HAVE_RTEMS_PCI_H which is the same state with this change.
The PCI calls still exist however they do nothing and return a constant.
Any PCI based driver that makes these calls on a BSP that does not have
PCI support will not work which is understandable. Either change the
driver or add PCI support the BSP.
-rw-r--r-- | Makefile | 1 | ||||
-rwxr-xr-x | makefile.py | 1 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-bsd-pci_bus.c | 8 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c | 19 | ||||
-rwxr-xr-x | waf_generator.py | 1 | ||||
-rw-r--r-- | wscript | 1 |
6 files changed, 24 insertions, 7 deletions
@@ -27,6 +27,7 @@ COMMON_FLAGS += -ImDNSResponder/mDNSCore COMMON_FLAGS += -ImDNSResponder/mDNSShared COMMON_FLAGS += -ImDNSResponder/mDNSPosix COMMON_FLAGS += -Itestsuite/include +COMMON_FLAGS += -DHAVE_RTEMS_PCI_H=1 COMMON_FLAGS += -Wall COMMON_FLAGS += -Wno-format COMMON_FLAGS += -MT $@ -MD -MP -MF $(basename $@).d diff --git a/makefile.py b/makefile.py index ea041bdc..122650f4 100755 --- a/makefile.py +++ b/makefile.py @@ -191,6 +191,7 @@ class ModuleManager(builder.ModuleManager): 'COMMON_FLAGS += -ImDNSResponder/mDNSShared\n' \ 'COMMON_FLAGS += -ImDNSResponder/mDNSPosix\n' \ 'COMMON_FLAGS += -Itestsuite/include\n' \ + 'COMMON_FLAGS += -DHAVE_RTEMS_PCI_H=1\n' \ 'COMMON_FLAGS += -Wall\n' \ 'COMMON_FLAGS += -Wno-format\n' \ 'COMMON_FLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \ diff --git a/rtemsbsd/rtems/rtems-bsd-pci_bus.c b/rtemsbsd/rtems/rtems-bsd-pci_bus.c index f673083b..f687e0f5 100644 --- a/rtemsbsd/rtems/rtems-bsd-pci_bus.c +++ b/rtemsbsd/rtems/rtems-bsd-pci_bus.c @@ -52,21 +52,27 @@ __FBSDID("$FreeBSD$"); #include <rtems/bsd/local/pcib_if.h> #define pci_find_device rtems_pci_find_device +#if HAVE_RTEMS_PCI_H #include <rtems/pci.h> +#endif #include <machine/bus.h> int pcibios_pcib_route_interrupt(device_t pcib, device_t dev, int pin) { +#if HAVE_RTEMS_PCI_H int bus; int slot; int func; uint8_t irq; - + bus = pci_get_bus(dev); slot = pci_get_slot(dev); func = pci_get_function(dev); pci_read_config_byte(bus, slot, func, PCI_INTERRUPT_LINE, &irq); return irq; +#else + return 0; +#endif } diff --git a/rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c b/rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c index f126c31f..b9bdd31b 100644 --- a/rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c +++ b/rtemsbsd/rtems/rtems-bsd-pci_cfgreg.c @@ -49,11 +49,12 @@ __FBSDID("$FreeBSD$"); #include <dev/pci/pcivar.h> #include <dev/pci/pcireg.h> #define pci_find_device rtems_pci_find_device +#if HAVE_RTEMS_PCI_H #include <rtems/pci.h> +#endif - -/* - * Initialise access to PCI configuration space +/* + * Initialise access to PCI configuration space */ int pci_cfgregopen(void) @@ -61,12 +62,13 @@ pci_cfgregopen(void) return(1); } -/* +/* * Read configuration space register */ u_int32_t pci_cfgregread(int bus, int slot, int func, int reg, int bytes) { +#if HAVE_RTEMS_PCI_H u_int32_t value; uint8_t v8; uint16_t v16; @@ -89,14 +91,18 @@ pci_cfgregread(int bus, int slot, int func, int reg, int bytes) } return value; +#else + return 0; +#endif } -/* - * Write configuration space register +/* + * Write configuration space register */ void pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes) { +#if HAVE_RTEMS_PCI_H uint8_t v8 = data & 0xff; uint16_t v16 = data & 0xffff; uint32_t v32 = data; @@ -112,4 +118,5 @@ pci_cfgregwrite(int bus, int slot, int func, int reg, u_int32_t data, int bytes) pci_write_config_dword( bus, slot, func, reg, v32 ); break; } +#endif } diff --git a/waf_generator.py b/waf_generator.py index b3c80558..4c9be070 100755 --- a/waf_generator.py +++ b/waf_generator.py @@ -242,6 +242,7 @@ class ModuleManager(builder.ModuleManager): self.add('') self.add('def bsp_configure(conf, arch_bsp):') self.add(' conf.check(header_name = "dlfcn.h", features = "c")') + self.add(' conf.check(header_name = "rtems/pci.h", features = "c", mandatory = False)') self.add('') self.add('def configure(conf):') self.add(' if conf.options.auto_regen:') @@ -37,6 +37,7 @@ def options(opt): def bsp_configure(conf, arch_bsp): conf.check(header_name = "dlfcn.h", features = "c") + conf.check(header_name = "rtems/pci.h", features = "c", mandatory = False) def configure(conf): if conf.options.auto_regen: |