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.
This commit is contained in:
Chris Johns 2023-10-04 16:13:45 +11:00
parent f0fe0439c4
commit 1524f95e93
2 changed files with 14 additions and 1 deletions

View File

@ -167,6 +167,15 @@
#endif /* BSP_HAS_PC_PCI */ #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. * Bus address alignment.
*/ */

View File

@ -63,6 +63,10 @@
#include <bsp/linker-symbols.h> #include <bsp/linker-symbols.h>
#endif #endif
#ifdef X86_BUS_SPACE_MEM
#define BUS_SPACE_MEM X86_BUS_SPACE_MEM
#endif
/* /*
* Convenience function for manipulating driver locks from busdma (during * Convenience function for manipulating driver locks from busdma (during
* busdma_swi, for example). Drivers that don't provide their own locks * 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; unsigned char* mem = *vaddr;
int len = dmat->maxsize; int len = dmat->maxsize;
while (len-- > 0) { while (len-- > 0) {
bsp_bus_space_write_1(mem, 0); bus_space_write_1(BUS_SPACE_MEM, mem, 0, 0);
mem++; mem++;
} }
} }