From 9e30a716a3254f24635972657b8398c35daa014e Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Sat, 18 Sep 2021 12:05:42 +1000 Subject: powerpc/motorola_powerpc: Map LibBSD bus space to the PCI base address --- bsps/powerpc/motorola_powerpc/include/bsp.h | 32 ++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/bsps/powerpc/motorola_powerpc/include/bsp.h b/bsps/powerpc/motorola_powerpc/include/bsp.h index af0e71471e..7d362bf406 100644 --- a/bsps/powerpc/motorola_powerpc/include/bsp.h +++ b/bsps/powerpc/motorola_powerpc/include/bsp.h @@ -31,11 +31,11 @@ #include #include #include - + #ifdef qemu #include #endif - + #ifdef __cplusplus extern "C" { #endif @@ -118,7 +118,33 @@ extern "C" { /* * The BSP has PCI devices. Enable support in LibBSD. */ -#define BSP_HAS_PCI +#define BSP_HAS_PC_PCI + +/* + * Remap the PCI address space for LibBSD + */ +#define RTEMS_BSP_PCI_IO_REGION_BASE 0 +#define RTEMS_BSP_PCI_MEM_REGION_BASE PCI_DRAM_OFFSET + +/* + * Remap the PCI address space for LibBSD + */ +#define RTEMS_BSP_ADDR_PTR(_type) uint ## _type ## _t __volatile* +#define RTEMS_BSP_ADDR_CPTR(_type) const RTEMS_BSP_ADDR_PTR(_type) +#define RTEMS_BSP_ADDRESS_READ(_addr, _type) \ + *((RTEMS_BSP_ADDR_CPTR(_type)) (((RTEMS_BSP_ADDR_CPTR(8)) _addr) + PCI_DRAM_OFFSET)) +#define RTEMS_BSP_ADDRESS_WRITE(_addr, _val, _type) \ + *((RTEMS_BSP_ADDR_PTR(_type)) (((RTEMS_BSP_ADDR_PTR(8)) _addr) + PCI_DRAM_OFFSET)) = (_val) + +#define RTEMS_BSP_READ_1(_addr) RTEMS_BSP_ADDRESS_READ(_addr, 8) +#define RTEMS_BSP_READ_2(_addr) RTEMS_BSP_ADDRESS_READ(_addr, 16) +#define RTEMS_BSP_READ_4(_addr) RTEMS_BSP_ADDRESS_READ(_addr, 32) +#define RTEMS_BSP_READ_8(_addr) RTEMS_BSP_ADDRESS_READ(_addr, 64) + +#define RTEMS_BSP_WRITE_1(_addr, _val) RTEMS_BSP_ADDRESS_WRITE(_addr, _val, 8) +#define RTEMS_BSP_WRITE_2(_addr, _val) RTEMS_BSP_ADDRESS_WRITE(_addr, _val, 16) +#define RTEMS_BSP_WRITE_4(_addr, _val) RTEMS_BSP_ADDRESS_WRITE(_addr, _val, 32) +#define RTEMS_BSP_WRITE_8(_addr, _val) RTEMS_BSP_ADDRESS_WRITE(_addr, _val, 64) /* * Base address definitions for several devices -- cgit v1.2.3