diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/gen405/startup/bspstart.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen405/startup/bspstart.c | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen405/startup/bspstart.c b/c/src/lib/libbsp/powerpc/gen405/startup/bspstart.c deleted file mode 100644 index 8cd5a38eb8..0000000000 --- a/c/src/lib/libbsp/powerpc/gen405/startup/bspstart.c +++ /dev/null @@ -1,185 +0,0 @@ -/* bsp_start() - * - * 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. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * 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 - * - * $Id$ - */ - -#include <string.h> -#include <fcntl.h> - -#include <bsp.h> -#include <rtems/libio.h> -#include <rtems/libcsupport.h> -#include <ictrl.h> - -void *bsp_ram_end = (void *)RAM_END; /* first addr behind avail. ram area */ - -/* - * Driver configuration parameters - */ -uint32_t bsp_serial_per_sec; /* Serial clocks per second */ -boolean bsp_serial_external_clock; -boolean bsp_serial_xon_xoff; -boolean bsp_serial_cts_rts; -uint32_t bsp_serial_rate; -uint32_t bsp_timer_average_overhead; /* Average overhead of timer in ticks */ -uint32_t bsp_timer_least_valid; /* Least valid number from timer */ -boolean bsp_timer_internal_clock; /* TRUE, when timer runs with CPU clk */ - -/* Initialize whatever libc we are using - * called from postdriver hook - */ - -void bsp_postdriver_hook(void); -void bsp_libc_init( void *, uint32_t, int ); - -/* - * - * bsp_predriver_hook - * - * Before drivers are setup. - */ - -void bsp_predriver_hook(void) -{ - rtems_status_code status; - /* init the PPC405 external interrupt controller handler... */ - status = ictrl_init(); -} - -/* - * Function: bsp_pretasking_hook - * Created: 95/03/10 - * - * Description: - * BSP pretasking hook. Called just before drivers are initialized. - * Used to setup libc and install any BSP extensions. - * - * NOTES: - * Must not use libc (to do io) from here, since drivers are - * not yet initialized. - * - */ - -void bsp_pretasking_hook(void) -{ - extern int _end; - extern int _heap_end; - uint32_t heap_start; - uint32_t heap_size; - uint32_t heap_end; - - heap_start = (uint32_t ) &_end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - heap_end = (uint32_t ) &_heap_end; - if (heap_end & (CPU_ALIGNMENT-1)) - heap_end = (heap_end + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - heap_size = heap_end - heap_start; - - bsp_libc_init((void *) heap_start, heap_size, 0); /* 64 * 1024 */ - -#ifdef RTEMS_DEBUG - rtems_debug_enable( RTEMS_DEBUG_ALL_MASK ); -#endif - -} - -/* - * bsp_start - * - * This routine does the bulk of the system initialization. - */ - -void bsp_start( void ) -{ - /* - * Allocate the memory for the RTEMS Work Space. This can come from - * a variety of places: hard coded address, malloc'ed from outside - * RTEMS world (e.g. simulator or primitive memory manager), or (as - * typically done by stock BSPs) by subtracting the required amount - * of work space from the last physical address on the CPU board. - */ - - /* - * Need to "allocate" the memory for the RTEMS Workspace and - * tell the RTEMS configuration where it is. This memory is - * not malloc'ed. It is just "pulled from the air". - */ - /* FIME: plan usage of RAM better: - - make top of ram dynamic, - - take out some part for persistant log - - make rest of ram to heap... - -remove RAM_END from bsp.h, this cannot be valid... - or must be a function call - */ - Configuration.work_space_start = (void *) - ((char *)(bsp_ram_end)) - rtems_configuration_get_work_space_size(); - - /* - * initialize the device driver parameters - */ - bsp_clicks_per_usec = 300; - bsp_serial_per_sec = 14625000; - bsp_serial_external_clock = 0; - bsp_timer_internal_clock = 1; - bsp_serial_xon_xoff = 0; - bsp_serial_cts_rts = 1; - bsp_serial_rate = 115200; - bsp_timer_average_overhead = 2; - bsp_timer_least_valid = 3; -} |