source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/target/gr_peach_gcc/target_support.S@ 352

Last change on this file since 352 was 352, checked in by coas-nagasima, 6 years ago

arm向けASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain;charset=UTF-8
File size: 5.0 KB
Line 
1/*
2 * TOPPERS/ASP Kernel
3 * Toyohashi Open Platform for Embedded Real-Time Systems/
4 * Advanced Standard Profile Kernel
5 *
6 * Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7 * Toyohashi Univ. of Technology, JAPAN
8 * Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
9 * Graduate School of Information Science, Nagoya Univ., JAPAN
10 *
11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
16 * スコード中に含まれていること.
17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
20 * の無保証規定を掲載すること.
21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
23 * と.
24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
25 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
27 * 報告すること.
28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
32 * 免責すること.
33 *
34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
38 * の責任を負わない.
39 *
40 * $Id$
41 */
42
43/*
44 * カーネルのターゲット依存部のアセンブリ言語部(GR-PEACH用)
45 */
46
47#define TOPPERS_MACRO_ONLY
48#define TOPPERS_ASM_MACRO
49#define UINT_C(val) (val) /* uint_t型の定数を作るマクロ */
50#define ULONG_C(val) (val) /* ulong_t型の定数を作るマクロ */
51#define CAST(type, val) (val) /* 型キャストを行うマクロ */
52#include "kernel_impl.h"
53#include "core_pl310.h"
54#include "core_asm.inc"
55
56/*
57 * 低レベルのターゲットシステム依存の初期化
58 *
59 * スタートアップモジュールの中で,メモリ初期化の前に呼び出される.
60 */
61 ATEXT
62 AALIGN(2)
63 AGLOBAL(hardware_init_hook)
64ALABEL(hardware_init_hook)
65 /*
66 * 内蔵RAMへのアクセス/書込み許可
67 */
68 ldr r2, =(RZA1_SYSCR3)
69 ldr r0, =0x0f
70 strb r0, [r2] /* 内蔵保持用RAMのページ0~3への書込み許可 */
71 ldrb r0, [r2] /* ダミーリード */
72
73 /*
74 * クロック関係の初期化
75 *
76 * 以下の設定とする.
77 * 入力周波数:13.33MHz,CKIO:66.67MHz
78 * CPUクロック(Iφ):400.00MHz
79 * 画像処理クロック(Gφ):266.67MHz
80 * 内部バスクロック(Bφ):133.33MHz
81 * 周辺クロック1(P1φ):66.67MHz
82 * 周辺クロック0(P0φ):33.33MHz
83 */
84
85 /*
86 * L2キャッシュのスタンバイモードをイネーブル(周波数変更時に必要)
87 */
88 ldr r2, =(PL310_POWER_CTRL)
89 ldr r0, [r2]
90 orr r0, r0, #0x01 /* スタンバイモードに */
91 str r0, [r2]
92
93ALABEL(set_frqcr)
94 /*
95 * CPUクロックを「×1倍」に(400MHz)
96 */
97 ldr r2, =(RZA1_FRQCR)
98 ldr r0, =0x1035
99 strh r0, [r2]
100 ldrh r1, [r2]
101 cmp r0, r1
102 bne set_frqcr
103
104#ifdef TOPPERS_RZA1H
105 /*
106 * 画像処理クロックを「×2/3」に(266.67MHz)
107 */
108ALABEL(set_frqcr2)
109 ldr r2, =(RZA1_FRQCR2)
110 ldr r0, =0x0001
111 strh r0, [r2]
112 ldrh r1, [r2]
113 cmp r0, r1
114 bne set_frqcr2
115#endif /* TOPPERS_RZA1H */
116
117 /*
118 * ソフトウェアスタンバイ復帰中でなくなるまで待つ
119 */
120wait_isbusy:
121 ldr r2, =(RZA1_CPUSTS)
122 ldrb r0, [r2]
123 tst r0, #0x10
124 bne wait_isbusy
125
126 /*
127 * L2キャッシュのスタンバイモードをディスエーブル
128 */
129 ldr r2, =(PL310_POWER_CTRL)
130 ldr r0, [r2]
131 bfc r0, #0, #1 /* スタンバイモードをディスエーブル */
132 str r0, [r2]
133 bx lr
Note: See TracBrowser for help on using the repository browser.