- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S
r321 r429 5 5 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory 6 6 * Toyohashi Univ. of Technology, JAPAN 7 * Copyright (C) 2006-201 7by Embedded and Real-Time Systems Laboratory7 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * … … 70 70 * 割込み要因を取得する. 71 71 */ 72 #ifdef GIC_PL390_ERRATA /* GIC 390 Errata 801120への対策 */ 73 ldr r1, =GICC_HPPIR 74 ldr r0, [r1] 75 #endif /* GIC_PL390_ERRATA */ 72 76 ldr r1, =GICC_IAR 73 77 ldr r3, [r1] 74 75 /*76 * 割込み番号を求める.77 */78 78 lsl r4, r3, #22 /* 下位10ビットを取り出す */ 79 79 lsr r4, r4, #22 80 80 81 /* 82 * 割込み要求をクリアする. 83 */ 84 and r0, r4, #31 85 mov r2, #1 86 lsl r0, r2, r0 87 ldr r2, =GICD_ICPENDR(0) 88 lsr r1, r4, #5 89 str r0, [r2,r1,lsl #2] 81 #ifdef GIC_PL390_ERRATA /* GIC 390 Errata 733075への対策 */ 82 movw r0, #1023 83 cmp r4, r0 84 beq irc_begin_int_errata_1 85 movw r0, #1022 86 cmp r4, r0 87 beq irc_begin_int_errata_1 88 cmp r3, #0 89 bne irc_begin_int_errata_2 90 ldr r1, =GICD_ISACTIVER(0) /* 割込み要求があるかチェック */ 91 ldr r0, [r1] 92 tst r0, #0x01 93 movweq r4, #1024 /* 無効な割込みとみなす */ 94 ALABEL(irc_begin_int_errata_1) 95 ldr r1, =GICD_IPRIORITYR(0) /* 割込み優先度レジスタ0に書き込み */ 96 ldr r0, [r1] 97 str r0, [r1] 98 asm_data_sync_barrier r0 99 ALABEL(irc_begin_int_errata_2) 100 #endif /* GIC_PL390_ERRATA */ 90 101 91 102 /* … … 107 118 108 119 /* 109 * 割込み番号を返値としてリターンする.120 * r4に割込み番号を入れた状態でリターンする. 110 121 */ 111 122 bx lr
Note:
See TracChangeset
for help on using the changeset viewer.