diff packages/hal/sh/arch/current/src/vectors.S @ 130:eb9fd8c04db3 ecos-sw-2000-10-23

Merge from eCos master repository on 2000-10-23-17:01:37-BST
author jlarmour
date Mon, 23 Oct 2000 17:10:57 +0000
parents 0c2b7be0d798
children 0ae0bc38e387
line wrap: on
line diff
--- a/packages/hal/sh/arch/current/src/vectors.S
+++ b/packages/hal/sh/arch/current/src/vectors.S
@@ -740,6 +740,44 @@ restore_state:
         mov     #13,r13
         mov     #14,r14
 #endif
+
+         bra    hal_hw_init
+          nop
+
+$nCYG_WTCSR:
+	.word	0xa500		! clear all CSR bits
+
+	.align	2
+
+$nCYG_SR:
+        .long   CYG_SR
+$CYGARC_REG_TSTR:
+        .long   CYGARC_REG_TSTR
+$CYGARC_REG_IPRA:
+        .long   CYGARC_REG_IPRA
+$CYGARC_REG_IPRB:
+        .long   CYGARC_REG_IPRB
+#ifdef CYGARC_SH_MOD_INTC_V2
+$CYGARC_REG_IPRC:
+        .long   CYGARC_REG_IPRC
+$CYGARC_REG_IPRD:
+        .long   CYGARC_REG_IPRD
+$CYGARC_REG_IPRE:
+        .long   CYGARC_REG_IPRE
+$CYGARC_REG_ICR1:
+        .long   CYGARC_REG_ICR1
+#endif
+#ifdef CYGARC_SH_MOD_INTC_V2
+$CYGARC_REG_IPRF:
+        .long   CYGARC_REG_IPRF
+$nCYG_ICR1_INIT:
+	.word	CYGARC_REG_ICR1_INIT
+	.align	2
+#endif
+$__reset:
+        .long   __reset
+	
+hal_hw_init:
         
         # Call platform specific hardware initialization
         # This may include memory controller initialization. It is not
@@ -748,7 +786,7 @@ restore_state:
 
         # Now copy necessary bits to RAM and jump to the VMA base
 
-#ifdef CYG_HAL_STARTUP_ROM
+#if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_SUBSETROMRAM)
 
         # Copy data from ROM to ram
         mov.l   $__rom_data_start,r3    ! r3 = rom start
@@ -764,6 +802,7 @@ 1:      mov.l   @r3+,r0                 
         bf      1b                      ! loop if not yet done
 2:
 
+
         # Jump to the proper VMA base of the code.
         mov.l   $_complete_setup,r0
         jmp     @r0
@@ -773,13 +812,14 @@ 2:
         .extern __rom_data_start
         .extern __ram_data_start
         .extern __ram_data_end
-
 $__rom_data_start:
         .long   __rom_data_start
 $__ram_data_start:
         .long   __ram_data_start
 $__ram_data_end:
         .long   __ram_data_end
+
+
 $_complete_setup:
         .long _complete_setup
 
@@ -818,39 +858,6 @@ 1:      mov.l   @r0+,r3                 
                 
 #endif
 
-$nCYG_WTCSR:
-	.word	0xa500		! clear all CSR bits
-
-	.align	2
-
-$nCYG_SR:
-        .long   CYG_SR
-$CYGARC_REG_TSTR:
-        .long   CYGARC_REG_TSTR
-$CYGARC_REG_IPRA:
-        .long   CYGARC_REG_IPRA
-$CYGARC_REG_IPRB:
-        .long   CYGARC_REG_IPRB
-#ifdef CYGARC_SH_MOD_INTC_V2
-$CYGARC_REG_IPRC:
-        .long   CYGARC_REG_IPRC
-$CYGARC_REG_IPRD:
-        .long   CYGARC_REG_IPRD
-$CYGARC_REG_IPRE:
-        .long   CYGARC_REG_IPRE
-$CYGARC_REG_ICR1:
-        .long   CYGARC_REG_ICR1
-#endif
-#ifdef CYGARC_SH_MOD_INTC_V2
-$CYGARC_REG_IPRF:
-        .long   CYGARC_REG_IPRF
-$nCYG_ICR1_INIT:
-	.word	CYGARC_REG_ICR1_INIT
-	.align	2
-#endif
-$__reset:
-        .long   __reset
-
 #-----------------------------------------------------------------------------
 # Complete target initialization and setup.
 # After this point we can use absolute addressing modes and access all the