From bb41881ee3f8012a3117a2786de82a8c9c64caf1 Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Thu, 28 Apr 2005 14:16:29 +0000 Subject: 2005-04-28 Jennifer Averett * score603e/Makefile.am, score603e/configure.ac, score603e/console/console.c, score603e/include/bsp.h, score603e/include/gen2.h, score603e/include/tm27.h, score603e/startup/bspstart.c: Update score603e to new exception model NOTE: These modifications have not been tested on hardware. --- c/src/lib/libbsp/powerpc/ChangeLog | 8 + c/src/lib/libbsp/powerpc/score603e/Makefile.am | 188 ++++++++++++++++----- c/src/lib/libbsp/powerpc/score603e/configure.ac | 38 +---- .../lib/libbsp/powerpc/score603e/console/console.c | 21 +++ c/src/lib/libbsp/powerpc/score603e/include/bsp.h | 5 + c/src/lib/libbsp/powerpc/score603e/include/gen2.h | 10 +- c/src/lib/libbsp/powerpc/score603e/include/tm27.h | 17 +- .../libbsp/powerpc/score603e/startup/bspstart.c | 35 +++- 8 files changed, 239 insertions(+), 83 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog index 7deb73c52e..484bafbb37 100644 --- a/c/src/lib/libbsp/powerpc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/ChangeLog @@ -1,3 +1,11 @@ +2005-04-28 Jennifer Averett + + * score603e/Makefile.am, score603e/configure.ac, + score603e/console/console.c, score603e/include/bsp.h, + score603e/include/gen2.h, score603e/include/tm27.h, + score603e/startup/bspstart.c: Update score603e to new exception model + NOTE: These modifications have not been tested on hardware. + 2005-04-28 Jennifer Averett * acinclude.m4: Initial release of ep1a bsp diff --git a/c/src/lib/libbsp/powerpc/score603e/Makefile.am b/c/src/lib/libbsp/powerpc/score603e/Makefile.am index de33fd5976..fd25e85c0c 100644 --- a/c/src/lib/libbsp/powerpc/score603e/Makefile.am +++ b/c/src/lib/libbsp/powerpc/score603e/Makefile.am @@ -1,5 +1,5 @@ ## -## $Id$ +## $Id$ ## ACLOCAL_AMFLAGS = -I ../../../../aclocal @@ -14,23 +14,35 @@ include_HEADERS += include/tm27.h nodist_include_HEADERS = include/bspopts.h DISTCLEANFILES = include/bspopts.h +nodist_include_HEADERS += ../../shared/include/coverhd.h noinst_PROGRAMS = +include_bspdir = $(includedir)/bsp + include_HEADERS += ../../shared/tod.h include_HEADERS += include/coverhd.h include/gen2.h -EXTRA_DIST = start/start.S -start.$(OBJEXT): start/start.S - $(CPPASCOMPILE) -DASM -o $@ -c $< -project_lib_DATA = start.$(OBJEXT) - +### dist_project_lib_DATA += startup/linkcmds -noinst_PROGRAMS += clock.rel -clock_rel_SOURCES = clock/clock.c -clock_rel_CPPFLAGS = $(AM_CPPFLAGS) -clock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +noinst_PROGRAMS += startup.rel +startup_rel_SOURCES = startup/bspclean.c ../../shared/bsplibc.c \ + ../../shared/bsppost.c startup/bspstart.c ../../shared/bootcard.c \ + ../../shared/main.c ../../shared/sbrk.c \ + startup/Hwr_init.c startup/genpvec.c \ + ../../shared/gnatinstallhandler.c +startup_rel_CPPFLAGS = $(AM_CPPFLAGS) +startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) + +### +noinst_PROGRAMS += pclock.rel +pclock_rel_SOURCES = ../../powerpc/shared/clock/p_clock.c +pclock_rel_CPPFLAGS = $(AM_CPPFLAGS) +pclock_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) + +### +### include_bsp_HEADERS = noinst_PROGRAMS += console.rel console_rel_SOURCES = console/85c30.c console/85c30.h console/console.c \ @@ -39,47 +51,71 @@ console_rel_SOURCES = console/85c30.c console/85c30.h console/console.c \ console_rel_CPPFLAGS = $(AM_CPPFLAGS) console_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) -# First and second generation used different Bridge chips :( -# Generation 1 --> 82378zb (now in the CVS Attic) -# Generation 2 --> FPGA -noinst_PROGRAMS += startup.rel -startup_rel_SOURCES = startup/bspclean.c ../../shared/bsplibc.c \ - ../../shared/bsppost.c startup/bspstart.c ../../shared/bootcard.c \ - ../../shared/main.c ../../shared/sbrk.c startup/setvec.c \ - startup/Hwr_init.c startup/spurious.c startup/genpvec.c \ - ../../shared/gnatinstallhandler.c startup/FPGA.c -startup_rel_CPPFLAGS = $(AM_CPPFLAGS) -startup_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +### +include_bsp_HEADERS = ../../powerpc/shared/pci/pci.h -noinst_PROGRAMS += timer.rel -timer_rel_SOURCES = timer/timer.c -timer_rel_CPPFLAGS = $(AM_CPPFLAGS) -timer_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +noinst_PROGRAMS += pci.rel +pci_rel_SOURCES = pci/no_host_bridge.c ../../powerpc/shared/pci/pci.c \ + ../../powerpc/shared/pci/pcifinddevice.c +pci_rel_CPPFLAGS = $(AM_CPPFLAGS) +pci_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) -noinst_PROGRAMS += tod.rel -tod_rel_SOURCES = tod/tod.c -tod_rel_CPPFLAGS = $(AM_CPPFLAGS) -tod_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +### +include_bsp_HEADERS += irq/irq.h -noinst_PROGRAMS += PCI_bus.rel -PCI_bus_rel_SOURCES = PCI_bus/PCI.c PCI_bus/PCI.h PCI_bus/flash.c \ - PCI_bus/universe.c -PCI_bus_rel_CPPFLAGS = $(AM_CPPFLAGS) -PCI_bus_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +noinst_PROGRAMS += irq.rel +irq_rel_SOURCES = irq/FPGA.c irq/irq.c \ + ../../powerpc/shared/irq/irq_asm.S +irq_rel_CPPFLAGS = $(AM_CPPFLAGS) +irq_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) + +## +include_bsp_HEADERS += ../../powerpc/shared/vectors/vectors.h noinst_PROGRAMS += vectors.rel -vectors_rel_SOURCES = vectors/vectors.S +vectors_rel_SOURCES = ../../powerpc/shared/vectors/vectors_init.c \ + ../../powerpc/shared/vectors/vectors.S vectors_rel_CPPFLAGS = $(AM_CPPFLAGS) vectors_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) +## +include_bsp_HEADERS += ../../shared/vmeUniverse/vmeUniverse.h \ + ../../powerpc/shared/vme/VMEConfig.h ../../powerpc/shared/vme/VME.h + +noinst_PROGRAMS += vme.rel +vme_rel_SOURCES = ../../shared/vmeUniverse/vmeUniverse.c \ + vme/vmeconfig.c +vme_rel_CPPFLAGS = $(AM_CPPFLAGS) +vme_rel_LDFLAGS = $(RTEMS_RELLDFLAGS) + +## + +EXTRA_DIST = start/start.S +start.$(OBJEXT): start/start.S + $(CPPASCOMPILE) -DASM -o $@ -c $< +project_lib_DATA = start.$(OBJEXT) + +EXTRA_DIST += ../../powerpc/shared/start/rtems_crti.S +rtems_crti.$(OBJEXT): ../../powerpc/shared/start/rtems_crti.S + $(CPPASCOMPILE) -DASM -o $@ -c $< +project_lib_DATA += rtems_crti.$(OBJEXT) + noinst_LIBRARIES = libbsp.a libbsp_a_SOURCES = -libbsp_a_LIBADD = startup.rel clock.rel console.rel timer.rel tod.rel \ - vectors.rel PCI_bus.rel -libbsp_a_LIBADD += ../../../libcpu/@RTEMS_CPU@/@exceptions@/rtems-cpu.rel +libbsp_a_LIBADD = pclock.rel console.rel irq.rel \ + pci.rel vectors.rel startup.rel vme.rel +libbsp_a_LIBADD += ../../../libcpu/@RTEMS_CPU@/shared/cpuIdent.rel \ + ../../../libcpu/@RTEMS_CPU@/shared/stack.rel \ + ../../../libcpu/@RTEMS_CPU@/@exceptions@/rtems-cpu.rel \ + ../../../libcpu/@RTEMS_CPU@/mpc6xx/clock.rel \ + ../../../libcpu/@RTEMS_CPU@/mpc6xx/exceptions.rel \ + ../../../libcpu/@RTEMS_CPU@/mpc6xx/mmu.rel \ + ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel all-local: $(PREINSTALL_FILES) $(TMPINSTALL_FILES) +### + PREINSTALL_DIRS = PREINSTALL_FILES = TMPINSTALL_FILES = @@ -110,26 +146,86 @@ $(PROJECT_INCLUDE)/bspopts.h: include/bspopts.h $(PROJECT_INCLUDE)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bspopts.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/bspopts.h +$(PROJECT_INCLUDE)/coverhd.h: ../../shared/include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h + +$(PROJECT_INCLUDE)/bsp/$(dirstamp): + @$(mkdir_p) $(PROJECT_INCLUDE)/bsp + @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp) +PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp) + +$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds +PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds + $(PROJECT_INCLUDE)/tod.h: ../../shared/tod.h $(PROJECT_INCLUDE)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/tod.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/tod.h -$(PROJECT_INCLUDE)/coverhd.h: include/coverhd.h $(PROJECT_INCLUDE)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/coverhd.h -PREINSTALL_FILES += $(PROJECT_INCLUDE)/coverhd.h - $(PROJECT_INCLUDE)/gen2.h: include/gen2.h $(PROJECT_INCLUDE)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/gen2.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/gen2.h +$(PROJECT_INCLUDE)/bsp/consoleIo.h: ../../powerpc/shared/console/consoleIo.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/consoleIo.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/consoleIo.h + +$(PROJECT_INCLUDE)/bsp/uart.h: ../../powerpc/shared/console/uart.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/uart.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/uart.h + +$(PROJECT_INCLUDE)/bsp/motorola.h: ../../powerpc/shared/motorola/motorola.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/motorola.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/motorola.h + +$(PROJECT_INCLUDE)/bsp/openpic.h: ../../powerpc/shared/openpic/openpic.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/openpic.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/openpic.h + +$(PROJECT_INCLUDE)/bsp/pci.h: ../../powerpc/shared/pci/pci.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/pci.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/pci.h + +$(PROJECT_INCLUDE)/bsp/residual.h: ../../powerpc/shared/residual/residual.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/residual.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/residual.h + +$(PROJECT_INCLUDE)/bsp/pnp.h: ../../powerpc/shared/residual/pnp.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/pnp.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/pnp.h + +$(PROJECT_INCLUDE)/bsp/irq.h: ../../powerpc/shared/irq/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h + +$(PROJECT_INCLUDE)/bsp/vectors.h: ../../powerpc/shared/vectors/vectors.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vectors.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vectors.h + +$(PROJECT_INCLUDE)/bsp/vmeUniverse.h: ../../shared/vmeUniverse/vmeUniverse.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/vmeUniverse.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/vmeUniverse.h + +$(PROJECT_INCLUDE)/bsp/VMEConfig.h: ../../powerpc/shared/vme/VMEConfig.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VMEConfig.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VMEConfig.h + +$(PROJECT_INCLUDE)/bsp/VME.h: ../../powerpc/shared/vme/VME.h $(PROJECT_INCLUDE)/bsp/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/VME.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/VME.h + +if HAS_NETWORKING +endif + +$(PROJECT_LIB)/rtems_crti.$(OBJEXT): rtems_crti.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_LIB)/rtems_crti.$(OBJEXT) +TMPINSTALL_FILES += $(PROJECT_LIB)/rtems_crti.$(OBJEXT) + $(PROJECT_LIB)/start.$(OBJEXT): start.$(OBJEXT) $(PROJECT_LIB)/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_LIB)/start.$(OBJEXT) TMPINSTALL_FILES += $(PROJECT_LIB)/start.$(OBJEXT) -$(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds -PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds - CLEANFILES = $(PREINSTALL_FILES) DISTCLEANFILES += $(PREINSTALL_DIRS) CLEANFILES += $(TMPINSTALL_FILES) diff --git a/c/src/lib/libbsp/powerpc/score603e/configure.ac b/c/src/lib/libbsp/powerpc/score603e/configure.ac index 4f49a7777a..b1ef38acb3 100644 --- a/c/src/lib/libbsp/powerpc/score603e/configure.ac +++ b/c/src/lib/libbsp/powerpc/score603e/configure.ac @@ -3,7 +3,7 @@ ## $Id$ AC_PREREQ(2.59) -AC_INIT([rtems-c-src-lib-libbsp-powerpc-score603e],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) +AC_INIT([rtems-c-src-lib-libbsp-powerpc-ep1a],[_RTEMS_VERSION],[rtems-bugs@rtems.com]) AC_CONFIG_SRCDIR([bsp_specs]) RTEMS_TOP(../../../../../..) @@ -15,18 +15,6 @@ RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]) RTEMS_CANONICALIZE_TOOLS RTEMS_PROG_CCAS -RTEMS_BSPOPTS_SET([CONSOLE_USE_INTERRUPTS],[*],[0]) -RTEMS_BSPOPTS_HELP([CONSOLE_USE_INTERRUPTS], -[whether using console interrupts]) - -RTEMS_BSPOPTS_SET([INITIALIZE_COM_PORTS],[*],[1]) -RTEMS_BSPOPTS_HELP([INITIALIZE_COM_PORTS], -[FIXME: Missing explanation]) - -RTEMS_BSPOPTS_SET([HAS_PMC_PSC8],[*],[0]) -RTEMS_BSPOPTS_HELP([HAS_PMC_PSC8], -[FIXME: Missing explanation]) - ## FIXME: This should be a 1 out of 3 selection ## and is somehow coupled to USE_DINK (cf. include/gen2.h) RTEMS_BSPOPTS_SET([SCORE603E_USE_SDS],[*],[0]) @@ -45,26 +33,12 @@ RTEMS_BSPOPTS_SET([SCORE603E_USE_DINK],[*],[1]) RTEMS_BSPOPTS_HELP([SCORE603E_USE_DINK], [FIXME: Missing explanation.]) -RTEMS_BSPOPTS_SET([PPC_USE_SPRG],[*],[0]) -RTEMS_BSPOPTS_HELP([PPC_USE_SPRG], -[If defined, then the PowerPC specific code in RTEMS will use some -of the special purpose registers to slightly optimize interrupt -response time. The use of these registers can conflict with -other tools like debuggers.]) - -RTEMS_BSPOPTS_SET([PPC_USE_DATA_CACHE],[*],[0]) -RTEMS_BSPOPTS_HELP([PPC_USE_DATA_CACHE], -[If defined, then the PowerPC specific code in RTEMS will use - data cache instructions to optimize the context switch code. - This code can conflict with debuggers or emulators. It is known - to break the Corelis PowerPC emulator with at least some combinations - of PowerPC 603e revisions and emulator versions. - The BSP actually contains the call that enables this.]) +RTEMS_BSPOPTS_SET([CONSOLE_USE_INTERRUPTS],[*],[0]) +RTEMS_BSPOPTS_HELP([CONSOLE_USE_INTERRUPTS], +[whether using console interrupts]) -RTEMS_BSPOPTS_SET([PPC_VECTOR_FILE_BASE],[*],[0x0100]) -RTEMS_BSPOPTS_HELP([PPC_VECTOR_FILE_BASE], -[This defines the base address of the exception table. - NOTE: Vectors are actually at 0xFFF00000 but file starts at offset.]) +RTEMS_CHECK_NETWORKING +AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes") # Explicitly list all Makefiles here AC_CONFIG_FILES([Makefile]) diff --git a/c/src/lib/libbsp/powerpc/score603e/console/console.c b/c/src/lib/libbsp/powerpc/score603e/console/console.c index 249ae2c6f1..9985a23298 100644 --- a/c/src/lib/libbsp/powerpc/score603e/console/console.c +++ b/c/src/lib/libbsp/powerpc/score603e/console/console.c @@ -21,6 +21,7 @@ #include #include "consolebsp.h" +#include #if (1) /* @@ -467,3 +468,23 @@ void console_outbyte_interrupts( } #endif + +/* const char arg to be compatible with BSP_output_char decl. */ +void +debug_putc_onlcr(const char c) +{ + int console; + volatile uint8_t *csr; + uint32_t isrlevel; + + console = USE_FOR_CONSOLE; + csr = Ports_85C30[ console ].ctrl; + + rtems_interrupt_disable( isrlevel ); + outbyte_polled_85c30( csr, c ); + rtems_interrupt_enable( isrlevel ); +} + +BSP_output_char_function_type BSP_output_char = debug_putc_onlcr; +/* const char arg to be compatible with BSP_output_char decl. */ + diff --git a/c/src/lib/libbsp/powerpc/score603e/include/bsp.h b/c/src/lib/libbsp/powerpc/score603e/include/bsp.h index db7797c2b1..5ae21308e6 100644 --- a/c/src/lib/libbsp/powerpc/score603e/include/bsp.h +++ b/c/src/lib/libbsp/powerpc/score603e/include/bsp.h @@ -20,6 +20,11 @@ extern "C" { #endif #include +#include +#include +#include +#include +#include /* * confdefs.h overrides for this BSP: diff --git a/c/src/lib/libbsp/powerpc/score603e/include/gen2.h b/c/src/lib/libbsp/powerpc/score603e/include/gen2.h index 357b446594..d3a8043753 100644 --- a/c/src/lib/libbsp/powerpc/score603e/include/gen2.h +++ b/c/src/lib/libbsp/powerpc/score603e/include/gen2.h @@ -47,10 +47,12 @@ extern "C" { /* * PSC8 - PMC Card */ +/* address of our ram on the PCI bus */ +#define PCI_DRAM_OFFSET PREP_PCI_DRAM_OFFSET #define BSP_PCI_CONFIGURATION_BASE 0x80800000 #define BSP_PMC_BASE BSP_PCI_CONFIGURATION_BASE +#define PCI_MEM_BASE_ADJUSTMENT 0 #define BSP_PCI_PMC_DEVICE_BASE 0x80808000 - #define BSP_PCI_REGISTER_BASE 0xfc000000 #define BSP_PCI_DEVICE_ADDRESS( _offset) \ @@ -80,12 +82,14 @@ extern "C" { #define SCORE603E_85C30_CTRL_11 BSP_PMC_SERIAL_ADDRESS(0x200018) #define SCORE603E_85C30_DATA_11 BSP_PMC_SERIAL_ADDRESS(0x20001c) +#define _IO_BASE PREP_ISA_IO_BASE #define SCORE603E_PCI_IO_CFG_ADDR 0x80000cf8 #define SCORE603E_PCI_IO_CFG_DATA 0x80000cfc #define SCORE603E_UNIVERSE_BASE 0x80030000 #define SCORE603E_IO_VME_UNIVERSE_BASE 0x80007000 -#define BSP_PCI_MEM_BASE 0xc0000000 +#define PCI_MEM_BASE 0xc0000000 +#define BSP_PCI_MEM_BASE PCI_MEM_BASE /* XXX - May want to remove this later */ #define BSP_NVRAM_BASE 0xfd100000 #define BSP_RTC_ADDRESS ((volatile unsigned char *)0xfd180000) #define SCORE603E_JP1_JP2_PROM_BASE 0xfff00000 @@ -245,6 +249,8 @@ extern "C" { /* to start/stop the timer. */ #define BSP_TIMER_LEAST_VALID 1 /* Don't trust a value lower than this */ +#define BSP_PIC_DO_EOI /* XXX - Don't know what this corresponds to on the score board */ + /* * Convert decrement value to tenths of microsecnds (used by * shared timer driver). diff --git a/c/src/lib/libbsp/powerpc/score603e/include/tm27.h b/c/src/lib/libbsp/powerpc/score603e/include/tm27.h index d4b3b4a5a6..2f7feb0fb2 100644 --- a/c/src/lib/libbsp/powerpc/score603e/include/tm27.h +++ b/c/src/lib/libbsp/powerpc/score603e/include/tm27.h @@ -15,14 +15,27 @@ #ifndef __tm27_h #define __tm27_h +#include + /* * Stuff for Time Test 27 */ #define MUST_WAIT_FOR_INTERRUPT 1 -#define Install_tm27_vector( _handler ) \ - set_vector( (_handler), PPC_IRQ_DECREMENTER, 1 ) +static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER, + 0, + (rtems_irq_enable)nullFunc, + (rtems_irq_disable)nullFunc, + (rtems_irq_is_enabled) nullFunc}; +void Install_tm27_vector(void (*_handler)()) +{ + clockIrqData.hdl = _handler; + if (!BSP_install_rtems_irq_handler (&clockIrqData)) { + printk("Error installing clock interrupt handler!\n"); + rtems_fatal_error_occurred(1); + } +} #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c b/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c index c880f7c3e9..c43fed2fc4 100644 --- a/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/score603e/startup/bspstart.c @@ -20,6 +20,22 @@ #include #include #include +#include + +/* + * PCI Bus Frequency + */ +unsigned int BSP_bus_frequency; /* XXX - Set this based upon the Score board */ + +/* + * processor clock frequency + */ +unsigned int BSP_processor_frequency; /* XXX - Set this based upon the Score board */ + +/* + * Time base divisior (how many tick for 1 second). + */ +unsigned int BSP_time_base_divisor = 1000; /* XXX - Just a guess */ /* * The original table from the application and our copy of it with @@ -31,6 +47,18 @@ rtems_configuration_table BSP_Configuration; rtems_cpu_table Cpu_table; uint32_t bsp_isr_level; +void BSP_panic(char *s) +{ + printk("%s PANIC %s\n",_RTEMS_version, s); + __asm__ __volatile ("sc"); +} + +void _BSP_Fatal_error(unsigned int v) +{ + printk("%s PANIC ERROR %x\n",_RTEMS_version, v); + __asm__ __volatile ("sc"); +} + /* * Use the shared implementations of the following routines */ @@ -79,9 +107,11 @@ void initialize_PMC(); void bsp_predriver_hook(void) { init_RTC(); - +/* XXX - What Does this now ???? init_PCI(); initialize_universe(); +*/ + initialize_PCI_bridge (); #if (HAS_PMC_PSC8) @@ -201,6 +231,9 @@ void bsp_start( void ) (unsigned char *)&RAM_END - (unsigned char *) &end ); + BSP_processor_frequency = 266000000; + BSP_bus_frequency = 66000000; + /* * There are multiple ROM monitors available for this board. */ -- cgit v1.2.3