Ignore:
Timestamp:
Jun 8, 2018, 11:24:32 AM (6 years ago)
Author:
nmir-saito
Message:

set svn:mime-type to files

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ssp_aarch64/trunk/arm64_gcc/gic_support.S

    • Property svn:mime-type set to text/plain; charset=utf-8
    r353 r356  
    66 *             Nagoya Municipal Industrial Research Institute, JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 */
    5338
    5439/*
    55  *  プロセッサ依存モジュール アセンブリ言語部(GIC)
     40 *  プロセッサ依存モジュール アセンブリ言語部(GIC)
    5641 */
    5742
    5843#define TOPPERS_MACRO_ONLY
    59 #define UINT_C(val)     (val)           /* uint_t型の定数を作るマクロ */
    60 #define ULONG_C(val)    (val)           /* ulong_t型の定数を作るマクロ */
    61 #define CAST(type, val) (val)           /* 型キャストを行うマクロ */
     44#define UINT_C(val)     (val)           /* uint_t型の定数を作るマクロ */
     45#define ULONG_C(val)    (val)           /* ulong_t型の定数を作るマクロ */
     46#define CAST(type, val) (val)           /* 型キャストを行うマクロ */
    6247
    6348#define GIC_REG(base, offset)   ((base) + (offset))
     
    6651
    6752/*
    68  *  例外å
    69 ¥å£ã®GIC操作
    70  *    x22: 例外番号(0..7)
     53 *  例外入口のGIC操作
     54 *    x22: 例外番号(0..7)
    7155 */
    7256    .text
     
    7458    .global gic_exc_entry
    7559gic_exc_entry:
    76     mov    x0, sp             // 割込み優å
    77 ˆåº¦ãƒžã‚¹ã‚¯ã®ä¿å­˜
     60    mov    x0, sp             // 割込み優先度マスクの保存
    7861    ldr    x9, =GICC_PMR
    7962    ldr    x9, [x9]
    8063    str    x9, [x0, #0]
    8164
    82     str    x22, [x0, #8]      // 例外番号の保存
     65    str    x22, [x0, #8]      // 例外番号の保存
    8366
    84     mov    x1, x22            // 引数をセットして call_exc_handler 呼び出し
     67    mov    x1, x22            // 引数をセットして call_exc_handler 呼び出し
    8568    ldr    x30, =gic_ret_int
    8669    b      call_exc_handler
    8770
    8871/*
    89  *  割込みå
    90 ¥å£ã®GIC操作
     72 *  割込み入口のGIC操作
    9173 */
    9274    .text
     
    9678    mov    x0,    sp
    9779    /*
    98      * 割込みコントローラ操作
     80     * 割込みコントローラ操作
    9981     */
    100     ldr    x9, =GICC_IAR      //  割込み要因を保存
     82    ldr    x9, =GICC_IAR      //  割込み要因を保存
    10183    ldr    w9, [x9]
    10284    str    w9, [x0, #8]
    10385
    104     ldr    x10, =GICC_RPR     //  割込み要因の優å
    105 ˆåº¦ã‚’割込み優å
    106 ˆåº¦ãƒžã‚¹ã‚¯ã«ã‚»ãƒƒãƒˆ
     86    ldr    x10, =GICC_RPR     //  割込み要因の優先度を割込み優先度マスクにセット
    10787    ldr    w10, [x10]
    10888
    10989    ldr    x11, =GICC_PMR
    110     ldr    w12, [x11]         //  割込み発生前のマスクの値を取り出しておく
     90    ldr    w12, [x11]         //  割込み発生前のマスクの値を取り出しておく
    11191    str    w10, [x11]
    11292
    113     dsb    sy                 // 割込み優å
    114 ˆåº¦ãƒžã‚¹ã‚¯ãŒã‚»ãƒƒãƒˆã•ã‚Œã‚‹ã®ã‚’å¾
    115 ã¤
     93    dsb    sy                 // 割込み優先度マスクがセットされるのを待つ
    11694
    117     str    w12, [x0, #0]      //  割込み発生前の優å
    118 ˆåº¦ãƒžã‚¹ã‚¯ã‚’保存
    119     ldr    x11, =GICC_EOIR    //  EOIの発行
     95    str    w12, [x0, #0]      //  割込み発生前の優先度マスクを保存
     96    ldr    x11, =GICC_EOIR    //  EOIの発行
    12097    str    w9, [x11]
    12198
    122     mov    w0, w9             // 引数をセットして call_int_handler 呼び出し
     99    mov    w0, w9             // 引数をセットして call_int_handler 呼び出し
    123100    ldr    x30, =gic_ret_int
    124101    b     call_int_handler
     
    126103
    127104/*
    128  *  割込み出口のGIC操作
     105 *  割込み出口のGIC操作
    129106 */
    130107    .text
     
    132109gic_ret_int:
    133110    mov    x0, sp
    134     ldr    w9, [x0, #0]       // 割込み優å
    135 ˆåº¦ãƒžã‚¹ã‚¯ã‚’å
    136 ƒã«æˆ»ã™
     111    ldr    w9, [x0, #0]       // 割込み優先度マスクを元に戻す
    137112    ldr    x10, =GICC_PMR
    138113    str    w9, [x10]
    139114
    140     dsb    sy                 // 割込み優å
    141 ˆåº¦ãƒžã‚¹ã‚¯ãŒã‚»ãƒƒãƒˆã•ã‚Œã‚‹ã®ã‚’å¾
    142 ã¤
     115    dsb    sy                 // 割込み優先度マスクがセットされるのを待つ
    143116
    144117    b      ret_int
Note: See TracChangeset for help on using the changeset viewer.