diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h')
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h | 78 |
1 files changed, 65 insertions, 13 deletions
diff --git a/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h b/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h index 043536ead7..8d53f99a73 100644 --- a/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h +++ b/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h @@ -7,7 +7,8 @@ * found in found in the file LICENSE in this distribution or at * http://www.rtems.com/license/LICENSE. * - * S. Kate Feng 2003-2007 : Modified it to support the mvme5500 BSP. + * (C) S. Kate Feng 2003-2007 : Modified it to support the mvme5500 BSP. + * * */ @@ -22,10 +23,57 @@ #include <libcpu/io.h> #include <bsp/vectors.h> -#include <bsp/bspMvme5500.h> +/* Board type */ +typedef enum { + undefined = 0, + MVME5500, + MVME6100 +} BSP_BoardTypes; + +BSP_BoardTypes BSP_getBoardType(); + +/* Board type */ +typedef enum { + Undefined, + UNIVERSE2, + TSI148, +} BSP_VMEchipTypes; + +BSP_VMEchipTypes BSP_getVMEchipType(); + +/* The version of Discovery system controller */ + +typedef enum { + notdefined, + GT64260A, + GT64260B, + MV64360, +} DiscoveryChipVersion; + +DiscoveryChipVersion BSP_getDiscoveryChipVersion(); + +#define _256M 0x10000000 +#define _512M 0x20000000 + +#define GT64x60_REG_BASE 0xf1000000 /* Base of GT64260 Reg Space */ +#define GT64x60_REG_SPACE_SIZE 0x10000 /* 64Kb Internal Reg Space */ + +#define GT64x60_DEV1_BASE 0xf1100000 /* Device bank1(chip select 1) base + */ +#define GT64260_DEV1_SIZE 0x00100000 /* Device bank size */ /* fundamental addresses for this BSP (PREPxxx are from libcpu/io.h) */ -#define _IO_BASE GT64260_REG_BASE +#define _IO_BASE GT64x60_REG_BASE + +#define BSP_NVRAM_BASE_ADDR 0xf1110000 + +#define BSP_RTC_INTA_REG 0x7ff0 +#define BSP_RTC_SECOND 0x7ff2 +#define BSP_RTC_MINUTE 0x7ff3 +#define BSP_RTC_HOUR 0x7ff4 +#define BSP_RTC_DATE 0x7ff5 +#define BSP_RTC_INTERRUPTS 0x7ff6 +#define BSP_RTC_WATCHDOG 0x7ff7 /* PCI0 Domain I/O space */ #define PCI0_IO_BASE 0xf0000000 @@ -72,16 +120,13 @@ #define CONFIGURE_INTERRUPT_STACK_MEMORY (16 * 1024) /* uart.c uses out_8 instead of outb */ -#define BSP_UART_IOBASE_COM1 GT64260_DEV1_BASE + 0x20000 -#define BSP_UART_IOBASE_COM2 GT64260_DEV1_BASE + 0x21000 +#define BSP_UART_IOBASE_COM1 GT64x60_DEV1_BASE + 0x20000 +#define BSP_UART_IOBASE_COM2 GT64x60_DEV1_BASE + 0x21000 #define BSP_CONSOLE_PORT BSP_UART_COM1 /* console */ #define BSP_UART_BAUD_BASE 115200 /* - * Vital Board data Start using DATA RESIDUAL - */ -/* * Total memory using RESIDUAL DATA */ extern unsigned int BSP_mem_size; @@ -120,19 +165,26 @@ extern unsigned int BSP_heap_start; #define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_i82544EI_driver_attach #endif -extern int -RTEMS_BSP_NETWORK_DRIVER_ATTACH(/* struct rtems_bsdnet_ifconfig * */); +extern int RTEMS_BSP_NETWORK_DRIVER_ATTACH(); + +#define gccMemBar() RTEMS_COMPILER_MEMORY_BARRIER() -/* As per Linux, This should be in the ppc/system.h */ +static inline void lwmemBar() +{ + asm volatile("lwsync":::"memory"); +} +static inline void io_flush() +{ + asm volatile("isync":::"memory"); +} static inline void memBar() { asm volatile("sync":::"memory"); } - static inline void ioBar() { - asm volatile("eieio"); + asm volatile("eieio":::"memory"); } #endif |