diff options
author | Chris Johns <chrisj@rtems.org> | 2023-10-04 16:13:45 +1100 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2023-10-04 16:13:45 +1100 |
commit | 1524f95e93a0e0ff85d676d214e0e57cac44e4f5 (patch) | |
tree | ed4304c46e71c40a43806331926c1979c5ddbcec | |
parent | rtemsbsd/libio: Handle invalid descriptors (diff) | |
download | rtems-libbsd-1524f95e93a0e0ff85d676d214e0e57cac44e4f5.tar.bz2 |
i386/pc686: Fix kernel bus DMA for the PC686 BSP
The x86 provides it own bus space support. Use the generic
bus space calls. This however requires the BUS_SPACE_MEM tag
be provided for all architectures. Make the generic value
match the x86 value.
-rw-r--r-- | rtemsbsd/include/machine/bus.h | 9 | ||||
-rw-r--r-- | rtemsbsd/rtems/rtems-kernel-bus-dma.c | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/rtemsbsd/include/machine/bus.h b/rtemsbsd/include/machine/bus.h index a0c3d63a..8a61a7d0 100644 --- a/rtemsbsd/include/machine/bus.h +++ b/rtemsbsd/include/machine/bus.h @@ -168,6 +168,15 @@ #endif /* BSP_HAS_PC_PCI */ /* + * Provide a memory tag for the DMA bus interface + */ +#ifdef BSP_BUS_SPACE_MEM +#define BUS_SPACE_MEM BSP_BUS_SPACE_MEM +#else +#define BUS_SPACE_MEM 1 +#endif + +/* * Bus address alignment. */ #define BUS_SPACE_ALIGNED_POINTER(p, t) ALIGNED_POINTER(p, t) diff --git a/rtemsbsd/rtems/rtems-kernel-bus-dma.c b/rtemsbsd/rtems/rtems-kernel-bus-dma.c index 1d28f62c..9c9194b0 100644 --- a/rtemsbsd/rtems/rtems-kernel-bus-dma.c +++ b/rtemsbsd/rtems/rtems-kernel-bus-dma.c @@ -63,6 +63,10 @@ #include <bsp/linker-symbols.h> #endif +#ifdef X86_BUS_SPACE_MEM +#define BUS_SPACE_MEM X86_BUS_SPACE_MEM +#endif + /* * Convenience function for manipulating driver locks from busdma (during * busdma_swi, for example). Drivers that don't provide their own locks @@ -261,7 +265,7 @@ bus_dmamem_alloc(bus_dma_tag_t dmat, void** vaddr, int flags, unsigned char* mem = *vaddr; int len = dmat->maxsize; while (len-- > 0) { - bsp_bus_space_write_1(mem, 0); + bus_space_write_1(BUS_SPACE_MEM, mem, 0, 0); mem++; } } |