找回密码
 注册
关于网站域名变更的通知
查看: 138|回复: 3
打印 上一主题 下一主题

ca5_max_power.s测试需要soc有一些特别的硬件电路吗?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-30 13:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
我这里有ARM给的一个关于cortex-a5的测试代码压缩包a5_validation.tar.gz. 我想把其中的ca5_max_power.s在我自己的soc上运行,
" }: I. d, z# H/ u+ C2 _* k' X- F$ g# {  `# r
我用的ca5_max_power.s的信息是
+ ?; d) ~4 L) ~2 {
3 t0 [( \; S5 i$ X. O' }- z3 x* P; Revision : $Revision: 60190 $0 t% s3 |) ~/ Y  z9 X& z+ w! T7 {

: h; A3 k! z* Y. H$ k! |. _1 C;
& w( R2 ~! l. c- s
' j3 o0 h" Q! B1 m( R5 d  e) A# {; Release Information : CORTEX-A5-MPCore-r0p1-00rel0+ T+ \4 Z! S7 K
0 w7 l& q2 P$ i& H( i: a; b* y5 r
我有两个问题想问一下,# m1 D9 L7 i$ A: g" H9 v0 s+ q6 O
8 U3 m1 D/ f; q) l# E. |" G; P
ca5_max_power.s测试需要soc有一些特别的硬件电路吗?在我自己的cortex-a5 soc上可以运行测试吗?: w; J, e. o0 f7 i: b

' S9 |) ~, G2 d% fca5_max_power.s有调用macro: CPU_WFE_TRIGGER_EVENTI, 定义在validation_macros.hs,
, [$ K+ R2 l6 H! S6 m9 n( |/ S1 o
6 h$ J! ~$ w0 C' `这个macro定义中有用到TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED, 请问这三个地址是什么,
1 h* {" |2 l! s6 v( r) _! m$ |. h; {, o5 ~; h6 R7 N
测试代码里定义在0xa2000000的偏移上, 请问如果porting到我自己的soc上,这个基地址应该是什么?
2 ?% j' k/ d9 ^
( `" b1 X: }6 X) v1 F6 \这个macro定义如下:
, P1 E' a, x; {( n
; Z. o& G( G! zLDR r7, =TBVAL_INTSEL0 |) W7 d( a* D2 Q! |. F

" u$ B" R# \& p% O1 e, v4 Z/ bMOV     r0, #0  [* y& [- _' e( x& b

9 m4 j9 h! T* ^0 g4 Q9 ]STR     r0, [r7]
. I( I9 Q. G) [2 y% ?  V- Z, E* B; T
DSB- U" K# S7 ~0 {3 X

+ n* F( X# [9 Q; Trigger condition: "All CPU's WFE must be set in order to set EVENTI"2 S% ?, L7 C( R

4 \6 ?2 ?# @/ a- }$ j. p; NB: depends on the number of CPUs implemented if MP case
3 \! D: e+ ?2 f+ k' p" Z, M& s- F+ T, B
LDR     r7, =TBVAL_INTTRIG
( r! R' k3 Q/ u! |
! K  P/ n3 U: |& qLDR     r1, =data_cpunb0 I- S) u, ?, G4 x5 i

# d% ~9 \/ P, |& u: `. V! v! L& Q- [LDR     r0, [r1]: @: j% v* U1 J: G

! T6 q/ B: F8 F1 \5 N1 U/ fMOV     r1, #1
; t7 @  {7 ^) u" E2 O1 s8 H: j/ Y' @9 ~. s  D% u
LSL     r1, r00 b5 T9 H, K$ L: T7 I

7 t# g, e' G& j0 f9 i5 B( K7 qSUB     r0, r1, #1
' y! Q) D8 j' u( l+ b! v. L+ u4 J" `0 Y& C
LSL     r0, #4
( Z: @- }: x- q6 n3 w: p0 U) t/ m% _" n, I' g- G
STR     r0, [r7]
+ Z0 X6 Z7 i7 i( c/ a1 _: E; k0 @0 _. N3 l
DSB3 r" N7 t& v' n' E( f
2 }4 A$ @, T6 y+ S! _
; EVENTI generation enabled (held until programmed trigger condition is true)7 T8 K2 ^" h8 M6 \
& n: c( n8 M+ G" b. H  l1 t$ _; {" v
LDR     r7, =TBVAL_INTSEL! s$ g/ p2 d( G7 H: u

! m6 R' {' |# S3 ^# j$ D7 ]MOV     r0, #1<<8/ H! R$ x, l% X; o5 V

) z5 m; l9 I2 M) Y) Y5 gSTR     r0, [r7]
1 w; d1 L4 f  \! q( v
% r0 q! k# A: x3 a0 K0 lDSB
  U2 k4 I1 P0 q! Q3 ~# s8 p; I; J, X2 t, [8 k
; Schedule trigger now (delay == 0 cycle)* Q8 h9 V, Q$ o) P# \' w+ U

, l. o9 B* [3 ]LDR     r7, =TBVAL_INTSCHED! j8 n0 p. i4 `. T+ C+ R
# \1 M  |, _  e- y5 {7 d
MOV     r0, #0
2 |) f5 M: x! u* t
% T1 z/ ~0 b+ x- n5 d2 LSTR     r0, [r7]: J9 s4 J8 \  b
* G* [( q9 |& a6 E" w
DSB
; o2 z2 F" k- d  M$ o
) E- J1 Y/ R! W" `7 d( B7 x

该用户从未签到

2#
发表于 2022-8-30 14:13 | 只看该作者
这个测试是用来测试CPU的最大功耗的,基本上就是使pipeline全开,包括dual issue, NEON, debug都跑起来。 因为只是个CPU本身的功耗,本来是不需要其他logic来支持的。
/ ]- x( u! d0 Y1 s0 h
: f% M  i4 V- h7 P1 i" J如果是Multicore的话, 刚开始的时候 代码控制只有CPU0往下走,其他CPU处于standy 状态(由WFI进入), 为了测 Multi-core全速运行的功耗,必须将其他的core也唤醒,所以问题2里面提到的 TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED是仿真环境的interrupt激励的触发方式,仿真环境可以通过写这些地址,让其产生一个IRQ/FIQ给其他CPU以唤醒他们。
3 n' B4 S* I7 a# o7 u8 x

该用户从未签到

3#
发表于 2022-8-30 14:57 | 只看该作者
再看看别人是怎么说的
  A2 I$ I* S6 K. s! _# P

该用户从未签到

4#
发表于 2022-8-30 15:24 | 只看该作者
这个问题解决了没有?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-13 16:45 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表