mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-15 02:59:14 +08:00
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.
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user