Ignore:
Timestamp:
Jul 3, 2020, 7:19:17 PM (4 years ago)
Author:
coas-nagasima
Message:

ASP3, TINET, mbed を更新

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/gic_support.S

    r321 r429  
    55 *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
    66 *                              Toyohashi Univ. of Technology, JAPAN
    7  *  Copyright (C) 2006-2017 by Embedded and Real-Time Systems Laboratory
     7 *  Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory
    88 *              Graduate School of Information Science, Nagoya Univ., JAPAN
    99 *
     
    7070         *  割込み要因を取得する.
    7171         */
     72#ifdef GIC_PL390_ERRATA                 /* GIC 390 Errata 801120への対策 */
     73        ldr             r1, =GICC_HPPIR
     74        ldr             r0, [r1]       
     75#endif /* GIC_PL390_ERRATA */
    7276        ldr             r1, =GICC_IAR
    7377        ldr             r3, [r1]
    74 
    75         /*
    76          *  割込み番号を求める.
    77          */
    7878        lsl             r4, r3, #22                     /* 下位10ビットを取り出す */
    7979        lsr             r4, r4, #22
    8080
    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                                       /* 無効な割込みとみなす */
     94ALABEL(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
     99ALABEL(irc_begin_int_errata_2)
     100#endif /* GIC_PL390_ERRATA */
    90101
    91102        /*
     
    107118
    108119        /*
    109          *  割込み番号を返値としてリターンする.
     120         *  r4に割込み番号を入れた状態でリターンする.
    110121         */
    111122        bx              lr
Note: See TracChangeset for help on using the changeset viewer.