diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-05-08 18:12:31 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2009-05-08 18:12:31 +0000 |
commit | 72510eb2ac44fd2e241e0da0f06535964dcacb6f (patch) | |
tree | 13f9b77b35e9128133c0c241aa329777eb739bdd /c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h | |
parent | 2009-05-08 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-72510eb2ac44fd2e241e0da0f06535964dcacb6f.tar.bz2 |
2009-05-08 Kate Feng <feng1@bnl.gov>
* include/bsp.h, start/start.S, startup/bspstart.c:
added CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK in bsp.h.
removed BSP_INIT_STACK_SIZE in bsp.h -- it uses __stack defined
by the linker script (shared/startup/linkcmds) for the initial
stack.
replaced __rtems_end+4096 with __stack in start.S
Removed legacy code in bspstart.c (inherited from old mvme2307 BSP
but not relevant to this one) that tested trapping
into PPCBug.
Changed ConfVPD_buff[] to be static and added ReadConfVPD_buf() in
bspstart.c
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h')
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h | 90 |
1 files changed, 70 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h b/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h index 2bc26327b4..995cc11e82 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 @@ -69,23 +117,18 @@ */ #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 +#define BSP_INTERRUPT_STACK_SIZE (16 * 1024) /* <skf> 2/09 wants it to be adjustable by BSP */ + +#define CONFIGURE_MALLOC_BSP_SUPPORTS_SBRK /* <skf> 4/09 see shared/startup/sbrk.c and rtems/confdefs.h */ /* 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 /* - * system init stack - */ -#define BSP_INIT_STACK_SIZE 0x1000 - -/* - * Vital Board data Start using DATA RESIDUAL - */ -/* * Total memory using RESIDUAL DATA */ extern unsigned int BSP_mem_size; @@ -105,15 +148,15 @@ extern unsigned int BSP_time_base_divisor; #define BSP_Convert_decrementer( _value ) \ ((unsigned long long) ((((unsigned long long)BSP_time_base_divisor) * 1000000ULL) /((unsigned long long) BSP_bus_frequency)) * ((unsigned long long) (_value))) +extern rtems_configuration_table BSP_Configuration; extern void BSP_panic(char *s); +extern void bsp_reset(void); /* extern int printk(const char *, ...) __attribute__((format(printf, 1, 2))); */ extern int BSP_disconnect_clock_handler (void); extern int BSP_connect_clock_handler (void); extern unsigned long _BSP_clear_hostbridge_errors(); -extern unsigned int BSP_heap_start; - #if 0 #define RTEMS_BSP_NETWORK_DRIVER_NAME "gt1" #define RTEMS_BSP_NETWORK_DRIVER_ATTACH rtems_GT64260eth_driver_attach @@ -122,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(); -/* As per Linux, This should be in the ppc/system.h */ +#define gccMemBar() RTEMS_COMPILER_MEMORY_BARRIER() +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 |