summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c')
-rw-r--r--c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c240
1 files changed, 0 insertions, 240 deletions
diff --git a/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c b/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
deleted file mode 100644
index ff821574a9..0000000000
--- a/c/src/lib/libbsp/powerpc/virtex5/startup/bspstart.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- *
- * This routine starts the application. It includes application,
- * board, and monitor specific initialization and configuration.
- * The generic CPU dependent initialization has been performed
- * before this routine is invoked.
- */
-
-/*
- * Author: Thomas Doerfler <td@imd.m.isar.de>
- * IMD Ingenieurbuero fuer Microcomputertechnik
- *
- * COPYRIGHT (c) 1998 by IMD
- *
- * Changes from IMD are covered by the original distributions terms.
- * This file has been derived from the papyrus BSP:
- *
- * Author: Andrew Bray <andy@i-cubed.co.uk>
- *
- * COPYRIGHT (c) 1995 by i-cubed ltd.
- *
- * To anyone who acknowledges that this file is provided "AS IS"
- * without any express or implied warranty:
- * permission to use, copy, modify, and distribute this file
- * for any purpose is hereby granted without fee, provided that
- * the above copyright notice and this notice appears in all
- * copies, and that the name of i-cubed limited not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * i-cubed limited makes no representations about the suitability
- * of this software for any purpose.
- *
- * Modifications for spooling console driver and control of memory layout
- * with linker command file by
- * Thomas Doerfler <td@imd.m.isar.de>
- * for these modifications:
- * COPYRIGHT (c) 1997 by IMD, Puchheim, Germany.
- *
- * To anyone who acknowledges that this file is provided "AS IS"
- * without any express or implied warranty:
- * permission to use, copy, modify, and distribute this file
- * for any purpose is hereby granted without fee, provided that
- * the above copyright notice and this notice appears in all
- * copies. IMD makes no representations about the suitability
- * of this software for any purpose.
- *
- * Derived from c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c:
- *
- * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
- * On-Line Applications Research Corporation (OAR).
- *
- * Modifications for PPC405GP by Dennis Ehlin
- * Modifications for Virtex5 by Richard Claus <claus@slac.stanford.edu>
- */
-#include <rtems.h>
-#include <rtems/config.h>
-#include <rtems/bspIo.h>
-#include <rtems/counter.h>
-#include <rtems/libio.h>
-#include <rtems/libcsupport.h>
-#include <rtems/sysinit.h>
-
-#include <libcpu/cpuIdent.h>
-#include <libcpu/spr.h>
-
-#include <bsp.h>
-#include <bsp/vectors.h>
-#include <bsp/bootcard.h>
-#include <bsp/irq.h>
-
-#include <string.h>
-#include <fcntl.h>
-#include <inttypes.h>
-
-#define DO_DOWN_ALIGN(x,a) ((x) & ~((a)-1))
-
-#define DO_UP_ALIGN(x,a) DO_DOWN_ALIGN(((x) + (a) - 1 ),a)
-
-#define CPU_DOWN_ALIGN(x) DO_DOWN_ALIGN(x, CPU_ALIGNMENT)
-#define CPU_UP_ALIGN(x) DO_UP_ALIGN(x, CPU_ALIGNMENT)
-
-
-/* Defined in linkcmds linker script */
-LINKER_SYMBOL(RamBase);
-LINKER_SYMBOL(RamSize);
-LINKER_SYMBOL(__bsp_ram_start);
-LINKER_SYMBOL(__bsp_ram_end);
-LINKER_SYMBOL(__rtems_end);
-LINKER_SYMBOL(_stack);
-LINKER_SYMBOL(StackSize);
-LINKER_SYMBOL(__stack_base);
-LINKER_SYMBOL(WorkAreaBase);
-LINKER_SYMBOL(MsgAreaBase);
-LINKER_SYMBOL(MsgAreaSize);
-LINKER_SYMBOL(__phy_ram_end);
-LINKER_SYMBOL(bsp_exc_vector_base);
-
-
-/* Expected by clock.c */
-uint32_t bsp_clicks_per_usec;
-
-/*
- * Bus Frequency
- */
-unsigned int BSP_bus_frequency;
-/*
- * processor clock frequency
- */
-unsigned int BSP_processor_frequency;
-
-/*
- * Time base divisior (bus freq / TB clock)
- */
-unsigned int BSP_time_base_divisor;
-
-/*
- * Provide weak aliases so that RTEMS distribution builds
- */
-static void _noopfun(void) {}
-
-
-void app_bsp_start(void)
-__attribute__(( weak, alias("_noopfun") ));
-
-void app_bsp_predriver_hook(void)
-__attribute__(( weak, alias("_noopfun") ));
-
-
-static char* bspMsgBuffer = (char*)MsgAreaBase;
-
-static void __bsp_outchar_to_memory(char c)
-{
- static char* msgBuffer = (char*)MsgAreaBase;
- *msgBuffer++ = c;
- if (msgBuffer >= &bspMsgBuffer[(int)MsgAreaSize]) msgBuffer = bspMsgBuffer;
- *msgBuffer = 0x00; /* Overwrite next location to show EOM */
-}
-
-
-void BSP_ask_for_reset(void)
-{
- printk("\nSystem stopped, issue RESET");
-
- for(;;);
-}
-
-
-/*===================================================================*/
-
-/*
- * BSP start routine. Called by boot_card().
- *
- * This routine does the bulk of the system initialization.
- */
-void bsp_start(void)
-{
- uintptr_t intrStackStart;
- uintptr_t intrStackSize;
-
- ppc_cpu_id_t myCpu;
- ppc_cpu_revision_t myCpuRevision;
-
- /* Set the character output function; The application may override this */
- BSP_output_char = __bsp_outchar_to_memory;
-
- printk("RTEMS %s\n", rtems_get_version_string());
-
- /*
- * Get CPU identification dynamically. Note that the get_ppc_cpu_type()
- * function stores the result in global variables so that it can be used later...
- */
- myCpu = get_ppc_cpu_type();
- myCpuRevision = get_ppc_cpu_revision();
- printk("CPU: 0x%04x, Revision: 0x%04x = %d, Name: %s\n",
- myCpu, myCpuRevision, myCpuRevision, get_ppc_cpu_type_name(myCpu));
-
- /*
- * Initialize the device driver parameters
- */
-
- /* For mpc6xx clock driver: */
- BSP_bus_frequency = 465000000;
- BSP_processor_frequency = 465000000; /* Measured with a DPM 440 2012/8/13 */
- BSP_time_base_divisor = 1000;
-
- /* Timebase register ticks/microsecond; The application may override these */
- bsp_clicks_per_usec = BSP_bus_frequency/(BSP_time_base_divisor * 1000);
- rtems_counter_initialize_converter(
- BSP_bus_frequency / (BSP_time_base_divisor / 1000)
- );
-
- /*
- * Initialize the interrupt related settings.
- */
- intrStackStart = CPU_UP_ALIGN((uint32_t)__bsp_ram_start);
- intrStackSize = rtems_configuration_get_interrupt_stack_size();
-
- ppc_exc_initialize(intrStackStart, intrStackSize);
-
- /* Let the user know what parameters we were compiled with */
- printk(" Base/Start End Size\n"
- "RAM: %p %p\n"
- "RTEMS: %p\n"
- "Interrupt Stack: 0x%08x 0x%x\n"
- "Stack: %p %p %p\n"
- "Workspace: %p %p\n"
- "MsgArea: %p %p\n"
- "Physical RAM %p\n",
- RamBase, RamSize,
- __rtems_end,
- intrStackStart, intrStackSize,
- __stack_base, _stack, StackSize,
- WorkAreaBase, __bsp_ram_end,
- MsgAreaBase, MsgAreaSize,
- __phy_ram_end);
-
- /*
- * Initialize RTEMS IRQ system
- */
- BSP_rtems_irq_mngt_init(0);
-
- /* Continue with application-specific initialization */
- app_bsp_start();
-}
-
-
-/*
- * BSP predriver hook. Called by boot_card() just before drivers are
- * initialized. Clear out any stale interrupts here.
- */
-static void virtex5_pre_driver_hook(void)
-{
- app_bsp_predriver_hook();
-}
-
-RTEMS_SYSINIT_ITEM(
- virtex5_pre_driver_hook,
- RTEMS_SYSINIT_BSP_PRE_DRIVERS,
- RTEMS_SYSINIT_ORDER_MIDDLE
-);