![]() |
|
|||
File indexing completed on 2025-05-11 08:23:48
0001 /** 0002 * @file 0003 * 0004 * Board-specific initialization code. Called from the generic boot_card() 0005 * function defined in rtems/c/src/lib/libbsp/shared/main.c. That function 0006 * does some of the board independent initialization. It is called from the 0007 * generic MC680x0 entry point _start() defined in 0008 * rtems/c/src/lib/start/m68k/start.s 0009 * 0010 * _start() has set up a stack, has zeroed the .bss section, has turned off 0011 * interrupts, and placed the processor in the supervisor mode. boot_card() 0012 * has left the processor in that state when bsp_start() was called. 0013 * 0014 * RUNS WITH ADDRESS TRANSLATION AND CACHING TURNED OFF! 0015 * ASSUMES THAT THE VIRTUAL ADDRESSES WILL BE IDENTICAL TO THE PHYSICAL 0016 * ADDRESSES. Software-controlled address translation would be required 0017 * otherwise. 0018 * 0019 * ASSUMES THAT 167BUG IS PRESENT TO CATCH ANY EXCEPTIONS DURING 0020 * INITIALIZATION. 0021 */ 0022 0023 /* 0024 * COPYRIGHT (c) 1989-2012. 0025 * On-Line Applications Research Corporation (OAR). 0026 * 0027 * The license and distribution terms for this file may be 0028 * found in the file LICENSE in this distribution or at 0029 * http://www.rtems.org/license/LICENSE. 0030 * 0031 * Modifications of respective RTEMS files: 0032 * Copyright (c) 1998, National Research Council of Canada 0033 */ 0034 0035 #include <bsp.h> 0036 #include <bsp/bootcard.h> 0037 #include <page_table.h> 0038 0039 void M68KFPSPInstallExceptionHandlers (void); 0040 0041 void bsp_start( void ) 0042 { 0043 void **rom_monitor_vector_table; 0044 int index; 0045 0046 /* 0047 * 167Bug Vectors are at 0xFFE00000 0048 */ 0049 rom_monitor_vector_table = (void **)0xFFE00000; 0050 m68k_set_vbr( rom_monitor_vector_table ); 0051 0052 /* 0053 * Copy 167Bug Bus Error handler into our exception vector. All 167Bug 0054 * exception vectors are the same and point to the generalized exception 0055 * handler. The bus error handler is the one that Motorola says to copy 0056 * (p. 2-13, Debugging Package for Motorola 68K CISC CPUs User's Manual 0057 * 68KBUG/D1A3, October 1993). 0058 */ 0059 for ( index=2 ; index<=255 ; index++ ) 0060 M68Kvec[ index ] = rom_monitor_vector_table[ 2 ]; 0061 0062 /* Any exceptions during initialization should be trapped by 167Bug */ 0063 m68k_set_vbr( &M68Kvec ); 0064 0065 /* Install the 68040 FPSP here */ 0066 M68KFPSPInstallExceptionHandlers(); 0067 0068 /* 0069 * You may wish to make the VME arbitration round-robin here, currently 0070 * we leave it as it is. 0071 */ 0072 0073 /* Set the Interrupt Base Vectors */ 0074 lcsr->vector_base = (VBR0 << 28) | (VBR1 << 24); 0075 0076 /* 0077 * Initialize address translation 0078 */ 0079 page_table_init(); 0080 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |