summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bsps/sparc/shared/start/start.S359
1 files changed, 264 insertions, 95 deletions
diff --git a/bsps/sparc/shared/start/start.S b/bsps/sparc/shared/start/start.S
index 13c3cffc00..9bdc752fa2 100644
--- a/bsps/sparc/shared/start/start.S
+++ b/bsps/sparc/shared/start/start.S
@@ -23,10 +23,13 @@
#define START_LEON3_ENABLE_SMP
#endif
+#define TRAP_SYM(_vector) SYM(trap_##_vector)
+
/*
* Unexpected trap will halt the processor by forcing it to error state
*/
-#define BAD_TRAP \
+#define BAD_TRAP(_vector) \
+ TRAP_SYM(_vector):; \
ta 0; \
nop; \
nop; \
@@ -81,7 +84,7 @@
* Software trap. Treat as BAD_TRAP for the time being...
*/
-#define SOFT_TRAP BAD_TRAP
+#define SOFT_TRAP(_vector) BAD_TRAP(_vector)
.section ".text"
PUBLIC(start)
@@ -105,73 +108,143 @@ start:
SYM(trap_table):
RTRAP( 0, SYM(hard_reset) ); ! 00 reset trap
- BAD_TRAP; ! 01 instruction access
+ BAD_TRAP(0x01) ! 01 instruction access
! exception
- BAD_TRAP; ! 02 illegal instruction
- BAD_TRAP; ! 03 privileged instruction
+ BAD_TRAP(0x02) ! 02 illegal instruction
+ BAD_TRAP(0x03) ! 03 privileged instruction
#if defined(SPARC_USE_LAZY_FP_SWITCH)
+TRAP_SYM(0x04):
FPDIS_TRAP(SYM(syscall_lazy_fp_switch)); ! 04 fp disabled
#else
- BAD_TRAP; ! 04 fp disabled
+ BAD_TRAP(0x04) ! 04 fp disabled
#endif
+TRAP_SYM(0x05):
WOTRAP(5, SYM(window_overflow_trap_handler)); ! 05 window overflow
+TRAP_SYM(0x06):
WUTRAP(6, SYM(window_underflow_trap_handler));! 06 window underflow
- BAD_TRAP; ! 07 memory address not aligned
- BAD_TRAP; ! 08 fp exception
- BAD_TRAP; ! 09 data access exception
- BAD_TRAP; ! 0A tag overflow
- BAD_TRAP; ! 0B undefined
- BAD_TRAP; ! 0C undefined
- BAD_TRAP; ! 0D undefined
- BAD_TRAP; ! 0E undefined
- BAD_TRAP; ! 0F undefined
- BAD_TRAP; ! 10 undefined
+ BAD_TRAP(0x07) ! 07 memory address not aligned
+ BAD_TRAP(0x08) ! 08 fp exception
+ BAD_TRAP(0x09) ! 09 data access exception
+ BAD_TRAP(0x0a) ! 0A tag overflow
+ BAD_TRAP(0x0b) ! 0B undefined
+ BAD_TRAP(0x0c) ! 0C undefined
+ BAD_TRAP(0x0d) ! 0D undefined
+ BAD_TRAP(0x0e) ! 0E undefined
+ BAD_TRAP(0x0f) ! 0F undefined
+ BAD_TRAP(0x10) ! 10 undefined
/*
- * ERC32 defined traps
+ * External interrupt traps
*/
- BAD_TRAP; ! 11 masked errors
- BAD_TRAP; ! 12 external 1
- BAD_TRAP; ! 13 external 2
- BAD_TRAP; ! 14 UART A RX/TX
- BAD_TRAP; ! 15 UART B RX/TX
- BAD_TRAP; ! 16 correctable memory error
- BAD_TRAP; ! 17 UART error
- BAD_TRAP; ! 18 DMA access error
- BAD_TRAP; ! 19 DMA timeout
- BAD_TRAP; ! 1A external 3
- BAD_TRAP; ! 1B external 4
- BAD_TRAP; ! 1C general purpose timer
- BAD_TRAP; ! 1D real time clock
- BAD_TRAP; ! 1E external 5
- BAD_TRAP; ! 1F watchdog timeout
-
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 20 - 23 undefined
- BAD_TRAP; ! 24 cp_disabled
- BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 25 - 27 undefined
- BAD_TRAP; ! 28 cp_exception
- BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 29 - 2B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 2C - 2F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 30 - 33 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 34 - 37 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 38 - 3B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 3C - 3F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 40 - 43 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 44 - 47 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 48 - 4B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 4C - 4F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 50 - 53 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 54 - 57 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 58 - 5B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 5C - 5F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 60 - 63 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 64 - 67 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 68 - 6B undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 6C - 6F undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 70 - 73 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 74 - 77 undefined
- BAD_TRAP; BAD_TRAP; BAD_TRAP; BAD_TRAP; ! 78 - 7B undefined
+ BAD_TRAP(0x11) ! 11 external interrupt 1
+ BAD_TRAP(0x12) ! 12 external interrupt 2
+ BAD_TRAP(0x13) ! 13 external interrupt 3
+ BAD_TRAP(0x14) ! 14 external interrupt 4
+ BAD_TRAP(0x15) ! 15 external interrupt 5
+ BAD_TRAP(0x16) ! 16 external interrupt 6
+ BAD_TRAP(0x17) ! 17 external interrupt 7
+ BAD_TRAP(0x18) ! 18 external interrupt 8
+ BAD_TRAP(0x19) ! 19 external interrupt 9
+ BAD_TRAP(0x1a) ! 1A external interrupt 10
+ BAD_TRAP(0x1b) ! 1B external interrupt 11
+ BAD_TRAP(0x1c) ! 1C external interrupt 12
+ BAD_TRAP(0x1d) ! 1D external interrupt 13
+ BAD_TRAP(0x1e) ! 1E external interrupt 14
+ BAD_TRAP(0x1f) ! 1F external interrupt 15
+
+ BAD_TRAP(0x20) ! 20 undefined
+ BAD_TRAP(0x21) ! 21 undefined
+ BAD_TRAP(0x22) ! 22 undefined
+ BAD_TRAP(0x23) ! 23 undefined
+ BAD_TRAP(0x24) ! 24 cp_disabled
+ BAD_TRAP(0x25) ! 25 undefined
+ BAD_TRAP(0x26) ! 26 undefined
+ BAD_TRAP(0x27) ! 27 undefined
+ BAD_TRAP(0x28) ! 28 cp_exception
+ BAD_TRAP(0x29) ! 29 undefined
+ BAD_TRAP(0x2a) ! 2A undefined
+ BAD_TRAP(0x2b) ! 2B undefined
+ BAD_TRAP(0x2c) ! 2C undefined
+ BAD_TRAP(0x2d) ! 2D undefined
+ BAD_TRAP(0x2e) ! 2E undefined
+ BAD_TRAP(0x2f) ! 2F undefined
+ BAD_TRAP(0x30) ! 30 undefined
+ BAD_TRAP(0x31) ! 31 undefined
+ BAD_TRAP(0x32) ! 32 undefined
+ BAD_TRAP(0x33) ! 33 undefined
+ BAD_TRAP(0x34) ! 34 undefined
+ BAD_TRAP(0x35) ! 35 undefined
+ BAD_TRAP(0x36) ! 36 undefined
+ BAD_TRAP(0x37) ! 37 undefined
+ BAD_TRAP(0x38) ! 38 undefined
+ BAD_TRAP(0x39) ! 39 undefined
+ BAD_TRAP(0x3a) ! 3A undefined
+ BAD_TRAP(0x3b) ! 3B undefined
+ BAD_TRAP(0x3c) ! 3C undefined
+ BAD_TRAP(0x3d) ! 3D undefined
+ BAD_TRAP(0x3e) ! 3E undefined
+ BAD_TRAP(0x3f) ! 3F undefined
+ BAD_TRAP(0x40) ! 40 undefined
+ BAD_TRAP(0x41) ! 41 undefined
+ BAD_TRAP(0x42) ! 42 undefined
+ BAD_TRAP(0x43) ! 43 undefined
+ BAD_TRAP(0x44) ! 44 undefined
+ BAD_TRAP(0x45) ! 45 undefined
+ BAD_TRAP(0x46) ! 46 undefined
+ BAD_TRAP(0x47) ! 47 undefined
+ BAD_TRAP(0x48) ! 48 undefined
+ BAD_TRAP(0x49) ! 49 undefined
+ BAD_TRAP(0x4a) ! 4A undefined
+ BAD_TRAP(0x4b) ! 4B undefined
+ BAD_TRAP(0x4c) ! 4C undefined
+ BAD_TRAP(0x4d) ! 4D undefined
+ BAD_TRAP(0x4e) ! 4E undefined
+ BAD_TRAP(0x4f) ! 4F undefined
+ BAD_TRAP(0x50) ! 50 undefined
+ BAD_TRAP(0x51) ! 51 undefined
+ BAD_TRAP(0x52) ! 52 undefined
+ BAD_TRAP(0x53) ! 53 undefined
+ BAD_TRAP(0x54) ! 54 undefined
+ BAD_TRAP(0x55) ! 55 undefined
+ BAD_TRAP(0x56) ! 56 undefined
+ BAD_TRAP(0x57) ! 57 undefined
+ BAD_TRAP(0x58) ! 58 undefined
+ BAD_TRAP(0x59) ! 59 undefined
+ BAD_TRAP(0x5a) ! 5A undefined
+ BAD_TRAP(0x5b) ! 5B undefined
+ BAD_TRAP(0x5c) ! 5C undefined
+ BAD_TRAP(0x5d) ! 5D undefined
+ BAD_TRAP(0x5e) ! 5E undefined
+ BAD_TRAP(0x5f) ! 5F undefined
+ BAD_TRAP(0x60) ! 60 undefined
+ BAD_TRAP(0x61) ! 61 undefined
+ BAD_TRAP(0x62) ! 62 undefined
+ BAD_TRAP(0x63) ! 63 undefined
+ BAD_TRAP(0x64) ! 64 undefined
+ BAD_TRAP(0x65) ! 65 undefined
+ BAD_TRAP(0x66) ! 66 undefined
+ BAD_TRAP(0x67) ! 67 undefined
+ BAD_TRAP(0x68) ! 68 undefined
+ BAD_TRAP(0x69) ! 69 undefined
+ BAD_TRAP(0x6a) ! 6A undefined
+ BAD_TRAP(0x6b) ! 6B undefined
+ BAD_TRAP(0x6c) ! 6C undefined
+ BAD_TRAP(0x6d) ! 6D undefined
+ BAD_TRAP(0x6e) ! 6E undefined
+ BAD_TRAP(0x6f) ! 6F undefined
+ BAD_TRAP(0x70) ! 70 undefined
+ BAD_TRAP(0x71) ! 71 undefined
+ BAD_TRAP(0x72) ! 72 undefined
+ BAD_TRAP(0x73) ! 73 undefined
+ BAD_TRAP(0x74) ! 74 undefined
+ BAD_TRAP(0x75) ! 75 undefined
+ BAD_TRAP(0x76) ! 76 undefined
+ BAD_TRAP(0x77) ! 77 undefined
+ BAD_TRAP(0x78) ! 78 undefined
+ BAD_TRAP(0x79) ! 79 undefined
+ BAD_TRAP(0x7a) ! 7A undefined
+ BAD_TRAP(0x7b) ! 7B undefined
/*
This is a sad patch to make sure that we know where the
@@ -184,13 +257,15 @@ SYM(trap_table):
SYM(_ERC32_MEC_Timer_Control_Mirror):
- BAD_TRAP; BAD_TRAP; ! 7C - 7D undefined
+ BAD_TRAP(0x7C) ! 7C undefined
+ BAD_TRAP(0x7D) ! 7D undefined
SYM(CLOCK_SPEED):
+TRAP_SYM(0x7e):
.word 0x0a, 0, 0, 0 ! 7E (10 MHz default)
- BAD_TRAP; ! 7F undefined
+ BAD_TRAP(0x7F) ! 7F undefined
/*
* Software traps
@@ -201,12 +276,17 @@ SYM(CLOCK_SPEED):
* installed before.
*/
+TRAP_SYM(0x80):
TRAP( 0x80, SYM(syscall) ); ! 80 halt syscall SW trap
- SOFT_TRAP; SOFT_TRAP; ! 81 - 82
+ SOFT_TRAP(0x81) ! 81
+ SOFT_TRAP(0x82) ! 82
+TRAP_SYM(0x83):
TRAP( 0x83, SYM(window_flush_trap_handler) ); ! 83 flush windows SW trap
-
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 84 - 87
- SOFT_TRAP; ! 88
+ SOFT_TRAP(0x84) ! 84
+ SOFT_TRAP(0x85) ! 85
+ SOFT_TRAP(0x86) ! 86
+ SOFT_TRAP(0x87) ! 87
+ SOFT_TRAP(0x88) ! 88
/*
* SW Trap 9-15 Reserved for Operating System
@@ -214,44 +294,133 @@ SYM(CLOCK_SPEED):
* SPARC_SWTRAP_IRQDIS
* SPARC_SWTRAP_IRQEN
*/
+TRAP_SYM(0x89):
IRQDIS_TRAP(SYM(syscall_irqdis)); ! 89 IRQ Disable syscall trap
+TRAP_SYM(0x8a):
IRQEN_TRAP(SYM(syscall_irqen)); ! 8A IRQ Enable syscall trap
#if defined(SPARC_USE_SYNCHRONOUS_FP_SWITCH)
+TRAP_SYM(0x8b):
IRQDIS_TRAP(SYM(syscall_irqdis_fp)); ! 8B IRQ disable
! and set PSR[EF] syscall trap
#else
- SOFT_TRAP; ! 8B
+ SOFT_TRAP(0x8b) ! 8B
#endif
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 8C - 8F
-
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 90 - 93
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 94 - 97
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 98 - 9B
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! 9C - 9F
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! A0 - A3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! A4 - A7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! A8 - AB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! AC - AF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! B0 - B3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! B4 - B7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! B8 - BB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! BC - BF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! C0 - C3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! C4 - C7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! C8 - CB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! CC - CF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! D0 - D3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! D4 - D7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! D8 - DB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! DC - DF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! E0 - E3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! E4 - E7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! E8 - EB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! EC - EF
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! F0 - F3
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! F4 - F7
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! F8 - FB
- SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; SOFT_TRAP; ! FC - FF
+ SOFT_TRAP(0x8c) ! 8C
+ SOFT_TRAP(0x8d) ! 8D
+ SOFT_TRAP(0x8e) ! 8E
+ SOFT_TRAP(0x8f) ! 8F
+ SOFT_TRAP(0x90) ! 90
+ SOFT_TRAP(0x91) ! 91
+ SOFT_TRAP(0x92) ! 92
+ SOFT_TRAP(0x93) ! 93
+ SOFT_TRAP(0x94) ! 94
+ SOFT_TRAP(0x95) ! 95
+ SOFT_TRAP(0x96) ! 96
+ SOFT_TRAP(0x97) ! 97
+ SOFT_TRAP(0x98) ! 98
+ SOFT_TRAP(0x99) ! 99
+ SOFT_TRAP(0x9a) ! 9A
+ SOFT_TRAP(0x9b) ! 9B
+ SOFT_TRAP(0x9c) ! 9C
+ SOFT_TRAP(0x9d) ! 9D
+ SOFT_TRAP(0x9e) ! 9E
+ SOFT_TRAP(0x9f) ! 9F
+ SOFT_TRAP(0xa0) ! a0
+ SOFT_TRAP(0xa1) ! a1
+ SOFT_TRAP(0xa2) ! a2
+ SOFT_TRAP(0xa3) ! a3
+ SOFT_TRAP(0xa4) ! a4
+ SOFT_TRAP(0xa5) ! a5
+ SOFT_TRAP(0xa6) ! a6
+ SOFT_TRAP(0xa7) ! a7
+ SOFT_TRAP(0xa8) ! a8
+ SOFT_TRAP(0xa9) ! a9
+ SOFT_TRAP(0xaa) ! aA
+ SOFT_TRAP(0xab) ! aB
+ SOFT_TRAP(0xac) ! aC
+ SOFT_TRAP(0xad) ! aD
+ SOFT_TRAP(0xae) ! aE
+ SOFT_TRAP(0xaf) ! aF
+ SOFT_TRAP(0xb0) ! b0
+ SOFT_TRAP(0xb1) ! b1
+ SOFT_TRAP(0xb2) ! b2
+ SOFT_TRAP(0xb3) ! b3
+ SOFT_TRAP(0xb4) ! b4
+ SOFT_TRAP(0xb5) ! b5
+ SOFT_TRAP(0xb6) ! b6
+ SOFT_TRAP(0xb7) ! b7
+ SOFT_TRAP(0xb8) ! b8
+ SOFT_TRAP(0xb9) ! b9
+ SOFT_TRAP(0xba) ! bA
+ SOFT_TRAP(0xbb) ! bB
+ SOFT_TRAP(0xbc) ! bC
+ SOFT_TRAP(0xbd) ! bD
+ SOFT_TRAP(0xbe) ! bE
+ SOFT_TRAP(0xbf) ! bF
+ SOFT_TRAP(0xc0) ! c0
+ SOFT_TRAP(0xc1) ! c1
+ SOFT_TRAP(0xc2) ! c2
+ SOFT_TRAP(0xc3) ! c3
+ SOFT_TRAP(0xc4) ! c4
+ SOFT_TRAP(0xc5) ! c5
+ SOFT_TRAP(0xc6) ! c6
+ SOFT_TRAP(0xc7) ! c7
+ SOFT_TRAP(0xc8) ! c8
+ SOFT_TRAP(0xc9) ! c9
+ SOFT_TRAP(0xca) ! cA
+ SOFT_TRAP(0xcb) ! cB
+ SOFT_TRAP(0xcc) ! cC
+ SOFT_TRAP(0xcd) ! cD
+ SOFT_TRAP(0xce) ! cE
+ SOFT_TRAP(0xcf) ! cF
+ SOFT_TRAP(0xd0) ! d0
+ SOFT_TRAP(0xd1) ! d1
+ SOFT_TRAP(0xd2) ! d2
+ SOFT_TRAP(0xd3) ! d3
+ SOFT_TRAP(0xd4) ! d4
+ SOFT_TRAP(0xd5) ! d5
+ SOFT_TRAP(0xd6) ! d6
+ SOFT_TRAP(0xd7) ! d7
+ SOFT_TRAP(0xd8) ! d8
+ SOFT_TRAP(0xd9) ! d9
+ SOFT_TRAP(0xda) ! dA
+ SOFT_TRAP(0xdb) ! dB
+ SOFT_TRAP(0xdc) ! dC
+ SOFT_TRAP(0xdd) ! dD
+ SOFT_TRAP(0xde) ! dE
+ SOFT_TRAP(0xdf) ! dF
+ SOFT_TRAP(0xe0) ! e0
+ SOFT_TRAP(0xe1) ! e1
+ SOFT_TRAP(0xe2) ! e2
+ SOFT_TRAP(0xe3) ! e3
+ SOFT_TRAP(0xe4) ! e4
+ SOFT_TRAP(0xe5) ! e5
+ SOFT_TRAP(0xe6) ! e6
+ SOFT_TRAP(0xe7) ! e7
+ SOFT_TRAP(0xe8) ! e8
+ SOFT_TRAP(0xe9) ! e9
+ SOFT_TRAP(0xea) ! eA
+ SOFT_TRAP(0xeb) ! eB
+ SOFT_TRAP(0xec) ! eC
+ SOFT_TRAP(0xed) ! eD
+ SOFT_TRAP(0xee) ! eE
+ SOFT_TRAP(0xef) ! eF
+ SOFT_TRAP(0xf0) ! f0
+ SOFT_TRAP(0xf1) ! f1
+ SOFT_TRAP(0xf2) ! f2
+ SOFT_TRAP(0xf3) ! f3
+ SOFT_TRAP(0xf4) ! f4
+ SOFT_TRAP(0xf5) ! f5
+ SOFT_TRAP(0xf6) ! f6
+ SOFT_TRAP(0xf7) ! f7
+ SOFT_TRAP(0xf8) ! f8
+ SOFT_TRAP(0xf9) ! f9
+ SOFT_TRAP(0xfa) ! fA
+ SOFT_TRAP(0xfb) ! fB
+ SOFT_TRAP(0xfc) ! fC
+ SOFT_TRAP(0xfd) ! fD
+ SOFT_TRAP(0xfe) ! fE
+ SOFT_TRAP(0xff) ! fF
/*
* This is the hard reset code.