|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我这里有ARM给的一个关于cortex-a5的测试代码压缩包a5_validation.tar.gz. 我想把其中的ca5_max_power.s在我自己的soc上运行,7 g/ n# r% ?9 n
$ m9 p# S G" X2 d; o
我用的ca5_max_power.s的信息是; U( W5 J- y: Q5 Z5 R* }; {3 Z
" X3 z! ]; u0 F- y. V# N; Revision : $Revision: 60190 $6 ]4 H5 R" i6 V
' l2 c9 j6 l6 J. v) x, Q
;
* R! d) l$ Z$ m, Y% }) ]1 g2 P2 k- R$ ?" e9 ` K" S
; Release Information : CORTEX-A5-MPCore-r0p1-00rel0
( x2 D0 ` k+ L& `/ _/ \# V
8 V5 a! ^2 o `5 _' J( R我有两个问题想问一下,
$ R& a3 N3 G/ S' k6 K0 r& A( Q' u. e" Q0 g! q' W- w4 |
ca5_max_power.s测试需要soc有一些特别的硬件电路吗?在我自己的cortex-a5 soc上可以运行测试吗?
; p( }, `$ i9 H, e+ O
U% E2 c4 z5 [, nca5_max_power.s有调用macro: CPU_WFE_TRIGGER_EVENTI, 定义在validation_macros.hs,
/ @3 ?8 K: ]- n: d# h; n) J3 N' R) i3 z5 v5 v% c
这个macro定义中有用到TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED, 请问这三个地址是什么,
! H. i: j$ ?4 W0 y4 G: `- B- d
1 z0 V: N6 _" p4 S: l测试代码里定义在0xa2000000的偏移上, 请问如果porting到我自己的soc上,这个基地址应该是什么?& u+ z, o4 V- V$ @
; m$ i% l+ w; J6 v( {1 V
这个macro定义如下:
# b0 p$ S4 a. F
2 ~9 ?$ `$ a/ q' w6 X8 ALDR r7, =TBVAL_INTSEL
" J( C# u: L3 s4 m6 J9 U3 q, E, H( l. g c3 L
MOV r0, #0/ Z# z8 @5 [/ L [+ |
7 A7 q4 a% B! M9 I L/ d' USTR r0, [r7]
`7 u, u/ q' E: F' j6 Y, X/ A8 E: m& V! i. D6 L z
DSB
6 J: Z$ Q) r: g
+ T7 P1 k! y4 q+ D; Trigger condition: "All CPU's WFE must be set in order to set EVENTI"; q* k2 C# p, y, Q2 b ]( k
' J- ^+ p* @* L' H5 q' \0 K; NB: depends on the number of CPUs implemented if MP case7 B) k: w* L/ j5 {# @8 O/ w, N
2 k5 e9 Q$ _! t v5 o% I3 k
LDR r7, =TBVAL_INTTRIG
' \- g; \* Q( H2 |" Q
4 K$ r& r x& JLDR r1, =data_cpunb
# c# f! q! g6 k7 ]: O, F2 i" H. b2 g$ A
LDR r0, [r1]& P# R% ?& \6 ?! Z
+ o% ?7 z; k2 e) t3 g
MOV r1, #1
6 }. D! G* P. v# C l5 `1 J) f& @: ^! ?
N* r# w; R* y4 GLSL r1, r0! o9 c5 H) b. q3 k6 F V* ~) r3 s. c
+ S9 a" v: R" }0 z5 t0 x) pSUB r0, r1, #1# {6 c% e j" x' }3 N+ v+ i
2 I4 Z/ ?+ Q+ a t- Q. R$ s5 _
LSL r0, #4
- m" ] ?2 _7 u' l1 W. c/ v2 b( S1 {' N$ Q# c* ?! O% J
STR r0, [r7]- U( G; \6 A+ D9 r" H
- ~' y" T4 l- L! l% b
DSB
( P+ _ Y& Y- B; Z7 ], Q6 W( u) S) K( u0 V! P$ o* C
; EVENTI generation enabled (held until programmed trigger condition is true)! @/ G% |/ j+ h
* V# L& m* R8 Y+ L6 ?( g- LLDR r7, =TBVAL_INTSEL
! T! ^0 v) Q/ d8 _5 q8 @9 M( \( c0 O! I+ @: n/ S4 O
MOV r0, #1<<8( t. Z8 P: Z Q# E
9 x# n# i. f6 u USTR r0, [r7]" T$ u% m, J% d; d E' p+ O! V* I
, W' }5 W" d% D @; L- A
DSB# U" `; H0 R6 R7 P! D* k: C
6 a9 x* V2 P6 j9 G& B @3 m
; Schedule trigger now (delay == 0 cycle)
% ~( o/ P. T& d0 p
6 P P/ [8 h+ Y" @; [LDR r7, =TBVAL_INTSCHED3 q+ _. O% X# O2 }
% d+ A6 K: v# t W m! SMOV r0, #0
; ` w5 H0 j/ q! F
7 u4 i3 m+ E! y+ j3 X, LSTR r0, [r7]! F: |; `2 ?4 I" ]1 @. f7 I
8 ~; |& D* ?+ L6 x& ~DSB5 ?& k& P7 |: ] g0 ^3 H
3 ?; w# }1 b3 {( z. [1 i1 j |
|