|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我这里有ARM给的一个关于cortex-a5的测试代码压缩包a5_validation.tar.gz. 我想把其中的ca5_max_power.s在我自己的soc上运行,
$ W, y- A( W% \, E, T5 v- A! |3 W" A% y) s; Z6 f1 p- ?+ t( \- b
我用的ca5_max_power.s的信息是 y: g, B& R, l
5 ~8 Y( i0 K) n; U6 ?5 U( O; Revision : $Revision: 60190 $
7 t: O5 U/ X% f2 T
3 _3 S% v5 H2 F2 {& ?2 [;% y8 [, b g. a# \" U. }* J
- D- u& X1 Z( K" ~' V2 \
; Release Information : CORTEX-A5-MPCore-r0p1-00rel0
) ^& `( D1 k9 K2 u6 p2 X# d1 C# A
+ x+ L6 ~% R0 o8 \& }! g+ z) b我有两个问题想问一下,
4 y' o5 F) `' D7 L0 b
- U2 L2 X" Y4 ?ca5_max_power.s测试需要soc有一些特别的硬件电路吗?在我自己的cortex-a5 soc上可以运行测试吗?
4 ^2 w- d% ?3 Q
6 L4 N1 M( ?: z+ I& X9 w0 ]- Sca5_max_power.s有调用macro: CPU_WFE_TRIGGER_EVENTI, 定义在validation_macros.hs,
" \; x6 P) `/ N/ c- i2 i6 T
9 s0 z, X5 G7 ] l7 E' F这个macro定义中有用到TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED, 请问这三个地址是什么,
/ l8 n+ M; X1 i7 o6 \$ K3 K: S" f
( q' Y6 D2 X* [2 B测试代码里定义在0xa2000000的偏移上, 请问如果porting到我自己的soc上,这个基地址应该是什么?) ~$ R: t D; V7 A5 [
5 {$ N1 a$ p* v' ^! A' W: t8 Z R0 w
这个macro定义如下:
& A4 U8 k: q; _( Y& }
0 F# T. P/ n+ q& M) O- LLDR r7, =TBVAL_INTSEL# T5 J7 g, W0 n" `% ]$ g% g
8 L1 c0 ?* X' M" d* EMOV r0, #0
6 O) n. d5 Y3 o& H# C! ^6 D
2 d/ I* ^ k5 wSTR r0, [r7]
Z2 r8 j& o+ `+ ?5 H# Q9 Y( T
Y' {1 T/ l+ l: LDSB" B/ m0 ^, l) |4 K$ u( @0 e
4 N: g! ^, |( s: ^. g
; Trigger condition: "All CPU's WFE must be set in order to set EVENTI"
! \9 W4 R7 ~- U% g1 p3 F; R% u/ ], Y, }5 Y% L5 T& z9 l9 c
; NB: depends on the number of CPUs implemented if MP case- ]' P# g/ z! W$ {
* s& r5 B. | u9 D. z2 g5 {" yLDR r7, =TBVAL_INTTRIG' U7 z$ K- v' E" l8 N
, @ S" S2 q& X2 W+ ^" }# x$ M' WLDR r1, =data_cpunb! g% _% a" o6 B/ r, Q, I" C
. w+ |$ L5 a" Z/ z3 }
LDR r0, [r1]6 R0 ~7 d& m0 |! Z. l/ ]3 E! G
3 _" B" m9 b( h1 ?6 Q6 E5 hMOV r1, #16 u1 l0 r1 |! a' Y9 [/ H6 u( }
& C& I1 F/ X( w3 B4 C$ ELSL r1, r0. V. v! k' {8 H0 H* H7 R# V- k
5 m' P" n6 S. b4 B# K9 z! U* P1 _: f5 f
SUB r0, r1, #1
! A$ F* a" {' F0 e1 v* r5 U+ }' e5 c
LSL r0, #4* {7 H# x, K( p/ i5 }0 u3 o
1 x S6 @4 U, o. f* e8 ]# b
STR r0, [r7]
0 U1 j: W' r6 m9 U: z! T4 v; t9 B( K c+ E& q& ^* Y' m. Y, h0 h* t3 N0 [
DSB
/ J. A9 d& k, X0 r, q6 U2 t: q7 k+ u/ F3 B: ]* t W p! u
; EVENTI generation enabled (held until programmed trigger condition is true): G" T( A1 Z; v# x
6 x( P3 j$ ^+ P) g4 p8 P: C4 W+ cLDR r7, =TBVAL_INTSEL' T3 T, D/ ~9 _6 [- t
/ e& T9 A, H% j
MOV r0, #1<<8( l* j! \$ F6 C9 v! ?
5 ~& j( T5 R. D" L' r0 ^
STR r0, [r7]
$ S: j$ k7 \/ h/ R( {" H
/ |$ W; W- p! c( G L aDSB
9 Z4 P, k- d( q( ~5 {/ V; j: c
/ I) x2 q7 L5 T" G1 V% G; Schedule trigger now (delay == 0 cycle); o" W( r/ q1 `6 {
J5 G7 y W# M/ I$ m# @7 bLDR r7, =TBVAL_INTSCHED
. K2 J4 E: @! @0 `0 d9 R o" L; E% |4 X: u- Y
MOV r0, #0. D. d$ u7 m% ]; e
3 r8 s% x3 G' M1 G) S _STR r0, [r7]% S6 h& {7 s9 g# q8 F
; F y( ^5 `, G
DSB& j3 |8 m; S' p8 C' _4 V% m
" G6 A) j# u3 x! D- J
|
|