comparison packages/hal/powerpc/arch/current/src/vectors.S @ 68:f74b2666b30d ecos-sw-2000-02-04

Merge from eCos master repository on 2000-02-04-07:47:04-GMT
author jlarmour
date Fri, 04 Feb 2000 15:01:01 +0000
parents bf00f99aec69
children c5536bad4c24
comparison
equal deleted inserted replaced
67:34eb8438750d 68:f74b2666b30d
76 # DR = data address translation 76 # DR = data address translation
77 # RI = recoverable interrupt 77 # RI = recoverable interrupt
78 78
79 #define CYG_MSR_COMMON (MSR_FP | MSR_ME | MSR_IR | MSR_DR | MSR_RI) 79 #define CYG_MSR_COMMON (MSR_FP | MSR_ME | MSR_IR | MSR_DR | MSR_RI)
80 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_STUBS) 80 #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_STUBS)
81 # ifdef CYG_HAL_POWERPC_COPY_VECTORS 81 # ifdef CYGSEM_HAL_POWERPC_COPY_VECTORS
82 # define CYG_MSR CYG_MSR_COMMON 82 # define CYG_MSR CYG_MSR_COMMON
83 # else 83 # else
84 # define CYG_MSR (CYG_MSR_COMMON | MSR_IP) 84 # define CYG_MSR (CYG_MSR_COMMON | MSR_IP)
85 # endif 85 # endif
86 #endif 86 #endif
87 #ifdef CYG_HAL_STARTUP_RAM 87 #ifdef CYG_HAL_STARTUP_RAM
88 #define CYG_MSR CYG_MSR_COMMON 88 #define CYG_MSR CYG_MSR_COMMON
89 #endif 89 #endif
90 #ifdef CYG_HAL_POWERPC_SIM 90 #ifdef CYGPKG_HAL_POWERPC_SIM
91 # When building for SIM, don~t enable MMU -- it~s not needed since caches 91 # When building for SIM, don~t enable MMU -- it~s not needed since caches
92 # are disabled, and there is a runtime simulation overhead. 92 # are disabled, and there is a runtime simulation overhead.
93 #undef CYG_MSR 93 #undef CYG_MSR
94 #define CYG_MSR (CYG_MSR_COMMON & ~(MSR_IR | MSR_DR)) 94 #define CYG_MSR (CYG_MSR_COMMON & ~(MSR_IR | MSR_DR))
95 #endif 95 #endif
205 exception_vector reserved_00f00 205 exception_vector reserved_00f00
206 206
207 # There are some additional vectors defined 207 # There are some additional vectors defined
208 # on various implementations. 208 # on various implementations.
209 209
210 #ifdef CYG_HAL_POWERPC_MPC8xx 210 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
211 # MPC8xx vectors 211 # MPC8xx vectors
212 212
213 exception_vector software_emu 213 exception_vector software_emu
214 exception_vector instruction_tlb_miss 214 exception_vector instruction_tlb_miss
215 exception_vector data_tlb_miss 215 exception_vector data_tlb_miss
239 239
240 _start: 240 _start:
241 # Initialize CPU 241 # Initialize CPU
242 bl _init_CPU 242 bl _init_CPU
243 243
244 #ifdef CYG_HAL_POWERPC_MPC8xx 244 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
245 # Disable special MPC8xx "development support" which 245 # Disable special MPC8xx "development support" which
246 # suppresses trace exceptions. The CPU seems to hang, not 246 # suppresses trace exceptions. The CPU seems to hang, not
247 # executing from offset 0x1e00(?) as expected. 247 # executing from offset 0x1e00(?) as expected.
248 248
249 lwi r3,0x00000007 249 lwi r3,0x00000007
290 blt 1b # loop if not yet done 290 blt 1b # loop if not yet done
291 2: 291 2:
292 #endif 292 #endif
293 293
294 294
295 #ifdef CYG_HAL_POWERPC_COPY_VECTORS // only for StubRom-supported startup 295 #ifdef CYGSEM_HAL_POWERPC_COPY_VECTORS // only for StubRom-supported startup
296 296
297 #ifdef CYG_HAL_POWERPC_MBX 297 #ifdef CYGPKG_HAL_POWERPC_MBX
298 # define CYGPRI_STUBROM_HAS_RAM_VECTORS 298 # define CYGPRI_STUBROM_HAS_RAM_VECTORS
299 #endif 299 #endif
300 300
301 #ifdef CYGPRI_STUBROM_HAS_RAM_VECTORS 301 #ifdef CYGPRI_STUBROM_HAS_RAM_VECTORS
302 # ifdef CYG_HAL_STARTUP_RAM 302 # ifdef CYG_HAL_STARTUP_RAM
518 ## system is using isr tables or chaining, and depending on the interrupt 518 ## system is using isr tables or chaining, and depending on the interrupt
519 ## controller in the system. 519 ## controller in the system.
520 520
521 ## Note: CYG_ISR_TABLE_SIZE must match CYG_ISR_COUNT defined in hal_intr.h. 521 ## Note: CYG_ISR_TABLE_SIZE must match CYG_ISR_COUNT defined in hal_intr.h.
522 522
523 #ifdef CYG_HAL_POWERPC_MPC8xx 523 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
524 524
525 ## First level decoding of MPC8xx SIU interrupt controller. 525 ## First level decoding of MPC8xx SIU interrupt controller.
526 526
527 #define CYG_ISR_TABLE_SIZE 59 527 #define CYG_ISR_TABLE_SIZE 59
528 528
687 1: 687 1:
688 #endif 688 #endif
689 689
690 #ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING 690 #ifdef CYGSEM_HAL_COMMON_INTERRUPTS_ALLOW_NESTING
691 691
692 #ifdef CYG_HAL_POWERPC_MPC8xx 692 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
693 # The CPM controller allows nested interrupts. However, 693 # The CPM controller allows nested interrupts. However,
694 # it sits on the back of the SIU controller which has no 694 # it sits on the back of the SIU controller which has no
695 # HW support for this. In effect, SW masking of lower 695 # HW support for this. In effect, SW masking of lower
696 # priority IRQs in the SIU would be required for this to work. 696 # priority IRQs in the SIU would be required for this to work.
697 #endif 697 #endif
892 #endif 892 #endif
893 893
894 #--------------------------------------------------------------------------- 894 #---------------------------------------------------------------------------
895 # Code for putting the CPU in a post-reset state; disabling MMU and caches. 895 # Code for putting the CPU in a post-reset state; disabling MMU and caches.
896 _init_CPU: 896 _init_CPU:
897 #ifdef CYG_HAL_POWERPC_MPC8xx 897 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
898 lwi r3,CYGARC_REG_DC_CMD_CD 898 lwi r3,CYGARC_REG_DC_CMD_CD
899 sync 899 sync
900 mtspr CYGARC_REG_DC_CST,r3 900 mtspr CYGARC_REG_DC_CST,r3
901 lwi r3,CYGARC_REG_IC_CMD_CD 901 lwi r3,CYGARC_REG_IC_CMD_CD
902 isync 902 isync
941 .long __default_exception_vsr # system call 941 .long __default_exception_vsr # system call
942 .long __default_exception_vsr # trace 942 .long __default_exception_vsr # trace
943 .long __default_exception_vsr # floating point assist 943 .long __default_exception_vsr # floating point assist
944 .long __default_exception_vsr # reserved 0x0f00 944 .long __default_exception_vsr # reserved 0x0f00
945 945
946 #ifdef CYG_HAL_POWERPC_MPC8xx 946 #ifdef CYGPKG_HAL_POWERPC_MPC8xx
947 947
948 # Implementation defined vectors 948 # Implementation defined vectors
949 .long __default_exception_vsr # software emulation 949 .long __default_exception_vsr # software emulation
950 .long __default_exception_vsr # instruction TLB miss 950 .long __default_exception_vsr # instruction TLB miss
951 .long __default_exception_vsr # data TLB miss 951 .long __default_exception_vsr # data TLB miss