1 #ifndef CYGONCE_HAL_PLATFORM_INC
2 #define CYGONCE_HAL_PLATFORM_INC
3 ##=============================================================================
7 ## REFIDT334 board assembler header file
9 ##=============================================================================
10 #####ECOSGPLCOPYRIGHTBEGIN####
11 ## -------------------------------------------
12 ## This file is part of eCos, the Embedded Configurable Operating System.
13 ## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
15 ## eCos is free software; you can redistribute it and/or modify it under
16 ## the terms of the GNU General Public License as published by the Free
17 ## Software Foundation; either version 2 or (at your option) any later version.
19 ## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
20 ## WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
24 ## You should have received a copy of the GNU General Public License along
25 ## with eCos; if not, write to the Free Software Foundation, Inc.,
26 ## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
28 ## As a special exception, if other files instantiate templates or use macros
29 ## or inline functions from this file, or you compile this file and link it
30 ## with other works to produce a work based on this file, this file does not
31 ## by itself cause the resulting work to be covered by the GNU General Public
32 ## License. However the source code for this file must still be made available
33 ## in accordance with section (3) of the GNU General Public License.
35 ## This exception does not invalidate any other reasons why a work based on
36 ## this file might be covered by the GNU General Public License.
38 ## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
39 ## at http://sources.redhat.com/ecos/ecos-license/
40 ## -------------------------------------------
41 #####ECOSGPLCOPYRIGHTEND####
42 ##=============================================================================
43 #######DESCRIPTIONBEGIN####
45 ## Author(s): tmichals
46 ## Contributors: nickg
48 ## Purpose: IDT32334 board definitions.
49 ## Description: This file contains various definitions and macros that are
50 ## useful for writing assembly code for the IDT32334 reference
53 ## #include <cyg/hal/platform.inc>
57 ######DESCRIPTIONEND####
59 ##=============================================================================
61 #include <cyg/hal/mips.inc>
63 #------------------------------------------------------------------------------
64 # Monitor initialization.
66 #ifndef CYGPKG_HAL_MIPS_MON_DEFINED
68 #if defined(CYG_HAL_STARTUP_ROM) || \
69 ( defined(CYG_HAL_STARTUP_RAM) && \
70 !defined(CYGSEM_HAL_USE_ROM_MONITOR))
72 # If we are starting up from ROM, or we are starting in
73 # RAM and NOT using a ROM monitor, initialize the VSR table.
76 la a0,__default_interrupt_vsr
77 la a1,__default_exception_vsr
100 #elif defined(CYG_HAL_STARTUP_RAM) && defined(CYGSEM_HAL_USE_ROM_MONITOR)
102 # Initialize the VSR table entries
103 # We only take control of the interrupt vector,
104 # the rest are left to the ROM for now...
107 la a0,__default_interrupt_vsr
120 #define CYGPKG_HAL_MIPS_MON_DEFINED
124 #------------------------------------------------------------------------------
125 # Decide whether the VSR table is defined externally, or is to be defined
128 #if defined(CYGPKG_HAL_MIPS_SIM) || \
129 ( defined(CYGPKG_HAL_MIPS_TX3904) && \
130 defined(CYG_HAL_STARTUP_RAM) && \
131 !defined(CYGSEM_HAL_USE_ROM_MONITOR) \
134 ## VSR table defined in linker script
138 #define CYG_HAL_MIPS_VSR_TABLE_DEFINED
142 #if defined(CYG_HAL_STARTUP_ROMRAM) || defined(CYG_HAL_STARTUP_ROM)
143 #ifndef CYGPKG_HAL_MIPS_MEMC_DEFINED
146 .extern hal_memc_setup
147 lar t0,hal_memc_setup
150 #if defined(CYG_HAL_STARTUP_ROMRAM)
153 # Having got the RAM working, we must now relocate the Entire
154 # ROM into it and then continue execution from RAM.
156 la t0,0x80000000 # dest addr
157 la t1,0xbfc00000 # source addr
158 la t3,__ram_data_end # end dest addr
160 lw v0,0(t1) # get word
162 sw v0,0(t0) # write word
167 /* set up and move interrupts */
169 /* setup and move the vector table into ram */
170 /* This allows execptions to happen in ROM first
171 ** then when running in RAM, they are switched */
181 la t1,__default_interrupt_vsr
185 la t1,__default_exception_vsr
196 la v0,2f # RAM address to go to
200 # We are now executing out of RAM!
204 #define CYGPKG_HAL_MIPS_MEMC_DEFINED
207 #------------------------------------------------------------------------------
208 #endif // ifndef CYGONCE_HAL_PLATFORM_INC
209 # end of platform.inc