找回密码
 注册
关于网站域名变更的通知
查看: 144|回复: 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上运行,+ {# D" M8 O/ Y$ ?
. C6 i6 K1 |( s0 f+ X9 s% R
我用的ca5_max_power.s的信息是
1 G" E& }3 \( b& m- d( J+ z0 K+ E3 V2 u, ~* o' F# P
; Revision : $Revision: 60190 $
: H0 d6 z/ a: a- {& y
! D. N1 |6 G( R" H;. _- t1 H2 n% U5 |: w0 H+ K: W2 f( \
8 s( V0 H$ b4 i7 P8 B+ e
; Release Information : CORTEX-A5-MPCore-r0p1-00rel0
/ x  |0 D8 v: A9 {8 X" ^- Y: L# L+ f
我有两个问题想问一下,( k8 @$ ]8 Y* j! I' u

1 d9 j' Z5 l9 o5 e$ ?, ?7 y3 t% Sca5_max_power.s测试需要soc有一些特别的硬件电路吗?在我自己的cortex-a5 soc上可以运行测试吗?7 y* L8 t7 j/ q4 n

5 t( W6 z9 [! @) }0 ica5_max_power.s有调用macro: CPU_WFE_TRIGGER_EVENTI, 定义在validation_macros.hs,
( L7 [% ]" y' @$ `# E: `5 g4 M
3 R6 Z$ T; m- x: q0 G' g这个macro定义中有用到TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED, 请问这三个地址是什么,$ V, Z+ D0 ?2 O
' C/ h, w* `3 o" p5 U4 E5 P
测试代码里定义在0xa2000000的偏移上, 请问如果porting到我自己的soc上,这个基地址应该是什么?
9 y. B; F2 q& j$ `4 C2 d
& q& r2 x* ^1 D. u% B$ L# o这个macro定义如下:
) f: J# D7 ?# ^0 W9 }* a" E- j; o" M7 W  n& P2 F7 f" [3 m1 o
LDR r7, =TBVAL_INTSEL
$ x8 {: f' s- t% g. |- a+ i9 T
; Z* y6 ?( n" P8 }. k3 T/ RMOV     r0, #00 {7 S) u4 G+ k3 }1 L

. ?" U) ?5 w" w5 |+ WSTR     r0, [r7]
! Q, U5 R0 R" T
1 N5 g$ w) D6 jDSB
2 P$ j1 o( x8 {5 g. r4 o: K
" O) Y; f- e( a9 r9 d; Trigger condition: "All CPU's WFE must be set in order to set EVENTI") ], j: G& v/ O3 g' g$ `
" O* c0 H1 D' G, T6 Y+ P
; NB: depends on the number of CPUs implemented if MP case
$ m: Z( E  w  Y9 P3 P" r) e7 e  o) }7 S
LDR     r7, =TBVAL_INTTRIG
' Y3 N  p( ]' E' w8 ^+ g$ N% {2 ~$ C- l' y- z2 J# E- }9 z) f
LDR     r1, =data_cpunb! C/ r  `3 P5 \  j$ s+ }
$ w1 Z, L% s  p/ u0 o3 v" _* }% h
LDR     r0, [r1]8 t6 h( f5 @5 W' J7 B6 J

& ~% P$ s  @0 c/ C" [) PMOV     r1, #1
. a" T4 e- k2 A8 e
, i5 J+ l; q' |- t+ S8 RLSL     r1, r0
) f- X! f* }: S3 y" z7 ~# `- |" ~! @3 k/ Y6 W/ }
SUB     r0, r1, #1& q& U' u: }; e, d  G
6 _. E# `" r2 [
LSL     r0, #4
! Y! z/ F/ X& [, W: I9 q! E1 d
- E. b" k' g! i* j0 D6 V' y6 w$ DSTR     r0, [r7]) i' G5 {: ~/ p% V& L% X
2 Z& C% w* q" Q9 u( O
DSB
2 d% H7 y' Q* c$ |# q
! ]  c3 s6 s& E- o  }8 W3 `! |4 q; EVENTI generation enabled (held until programmed trigger condition is true)
$ Z) [: l% k/ c7 h2 O; q/ u" o$ O2 M8 X4 I$ e$ L: P
LDR     r7, =TBVAL_INTSEL- s* S, z- i- d, `
* r* K7 x8 @1 x  B1 B& e0 T
MOV     r0, #1<<8* P# B4 s4 D/ x) h& E

& V9 p, G4 t/ C3 Z! f2 O, y1 DSTR     r0, [r7]2 _, v7 [( j/ R+ s; m  v/ t: ?

6 Z9 _1 ^+ e" B% G7 N2 G' {( CDSB
: ?9 I7 Q+ M+ Z
4 E; J* z* c: _! P; _; Schedule trigger now (delay == 0 cycle)
; l: P: w8 s$ j7 J6 T# C
+ |2 v! _/ ~0 L$ B0 B( [LDR     r7, =TBVAL_INTSCHED
3 r" _. l8 I3 l9 `- W: ]6 R" C
7 i. N+ c$ u! v& d! R/ ~( w4 pMOV     r0, #0
9 U+ A5 Y' b8 |! Y0 h0 C" B$ C* I& h) Q/ L7 `6 q/ b8 g
STR     r0, [r7]
0 G+ ~. H6 N! _8 u8 j9 q% F9 \" ]; }/ a. g
DSB
: B1 a4 Z+ U1 X
8 c1 A  j- m  R* ?" o2 f

该用户从未签到

2#
发表于 2022-8-30 14:13 | 只看该作者
这个测试是用来测试CPU的最大功耗的,基本上就是使pipeline全开,包括dual issue, NEON, debug都跑起来。 因为只是个CPU本身的功耗,本来是不需要其他logic来支持的。
0 l5 D7 U( v  P3 ~. q8 ~0 `
* m" j( L) r7 m3 A如果是Multicore的话, 刚开始的时候 代码控制只有CPU0往下走,其他CPU处于standy 状态(由WFI进入), 为了测 Multi-core全速运行的功耗,必须将其他的core也唤醒,所以问题2里面提到的 TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED是仿真环境的interrupt激励的触发方式,仿真环境可以通过写这些地址,让其产生一个IRQ/FIQ给其他CPU以唤醒他们。
  s9 J- H$ S6 D' m

该用户从未签到

3#
发表于 2022-8-30 14:57 | 只看该作者
再看看别人是怎么说的1 Y, d2 O* J! Q# i

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-9 06:41 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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