找回密码
 注册
关于网站域名变更的通知
查看: 169|回复: 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上运行,
1 G5 C2 K% v: t  i% Q% K0 u
6 c/ E* L5 l) U, P% r0 a! W  J我用的ca5_max_power.s的信息是, R( B# `4 M6 F: i, r" y

9 H0 j. _+ D9 F: s  ]7 P; Revision : $Revision: 60190 $
" V& E5 M2 T7 b, @8 Q
5 i- r* M8 ^8 K$ O4 p/ ^! L, c;
- d9 E& r. m4 c  ~
. Z/ ]& e3 U3 G7 ~2 v' Z; Release Information : CORTEX-A5-MPCore-r0p1-00rel0
4 m  k' D8 x, B. ~; n$ y& t; Q' D6 n$ u4 o: v  A8 i; n) {* l
我有两个问题想问一下,: @! F" }4 l5 \2 y1 [& \
: p5 E9 E' h: R/ A% p6 F  {
ca5_max_power.s测试需要soc有一些特别的硬件电路吗?在我自己的cortex-a5 soc上可以运行测试吗?0 Q2 \, V8 V7 e% L: |" ~
2 E/ m! T3 {/ K
ca5_max_power.s有调用macro: CPU_WFE_TRIGGER_EVENTI, 定义在validation_macros.hs,
0 ^1 M1 ]# ]  A! {
. _# r$ G( B( j& v0 E! K- Z这个macro定义中有用到TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED, 请问这三个地址是什么,0 _! M/ }* k+ {& j1 j: s/ u1 Z
/ A. t! M2 T, i
测试代码里定义在0xa2000000的偏移上, 请问如果porting到我自己的soc上,这个基地址应该是什么?% x; `+ z$ c9 Z6 z
# o- U. g$ O+ c- n% ~4 F" Q6 Z
这个macro定义如下:# o- f* b9 i9 J  c
2 ^0 l% B- t+ J2 h4 F3 g8 T
LDR r7, =TBVAL_INTSEL& f1 v; x+ X5 g1 j9 j

+ ]# _9 w; r. t& U9 X" s1 jMOV     r0, #0
2 V8 ~3 [9 e4 a
6 J- m: _1 {5 x. A5 o3 b* e! o) r4 }STR     r0, [r7]
- |' E) ], L# y1 c8 }# T
5 f" `0 f; v7 H9 \, oDSB
% k4 V  L, S& l- R4 r5 M5 e& X4 }) t4 o4 k+ `6 w- t* N
; Trigger condition: "All CPU's WFE must be set in order to set EVENTI". U3 |% U9 }5 K/ _

0 }4 s/ s. w0 }0 C+ T2 C% \; NB: depends on the number of CPUs implemented if MP case# r+ z; \) T. J5 a+ N$ T8 G# M4 \

5 h2 S: P; T  ]! c5 L8 ^+ BLDR     r7, =TBVAL_INTTRIG
0 G$ O" {5 A8 n6 l5 o& x5 d% R+ i4 x4 Z4 ?. D& |* H2 {. m9 E7 J
LDR     r1, =data_cpunb2 Y& u7 ~" _6 m6 @# m

; C5 K; n- ]5 b7 dLDR     r0, [r1]
9 a6 B1 p: i& M7 l9 L
& _* x. R  U7 S3 I4 {4 H+ j8 sMOV     r1, #19 D$ U; G- u! v; _
5 X  `+ k2 s+ x2 g- W
LSL     r1, r0
* q; g: t% Q& f) {; |4 J* u0 w5 H6 [. q- R; q5 ~+ L; H
SUB     r0, r1, #1
4 g. }3 a5 U2 P' x' d/ x$ a, m% \% r
LSL     r0, #43 |, F4 S2 }: x9 f9 k: \* P% y
3 D0 `$ U, N; P7 z; w5 `+ f2 n; v% w
STR     r0, [r7]: `" Y2 c# O4 z8 }
/ ]- p0 g9 O8 d
DSB" H' V6 b- s( I5 R9 b+ w
+ u, x  O; _" R5 x2 Z1 c& r& o
; EVENTI generation enabled (held until programmed trigger condition is true)
7 f2 X6 X4 i6 F4 R7 }
# o  M7 A9 \8 r2 q- X! ELDR     r7, =TBVAL_INTSEL- g! I0 p% i3 y$ }' A; w4 K: q
1 F3 `; Y9 P7 P; \- U7 K* W; q
MOV     r0, #1<<8
% z) ~1 h& y. [1 F3 D) i5 S; e- n! s8 S% i' \8 W' U% `7 A; L4 M# U
STR     r0, [r7]. r, m' w9 B5 v# `+ {) J) u
! l5 G2 c1 C+ {
DSB
, ?5 j) @5 h  ^) d
/ U  [5 T5 @; ^5 E6 m& f; Schedule trigger now (delay == 0 cycle)
/ N2 E( f4 p0 ?" j! R/ A. X. ?. _* K2 k) l; U
LDR     r7, =TBVAL_INTSCHED
4 A. r' t0 l6 C2 @# Z. Y' _
7 H* S: e6 h: [8 K* lMOV     r0, #03 w! T, c, b1 H* J8 G
* k! W4 v+ K& j% y" i9 q! B
STR     r0, [r7]
0 l: d( r( v5 w: s9 x# h/ ?; x* J5 `+ l; G5 \$ n! B7 g
DSB
6 B: L2 N7 Q% i) b% R; U6 I8 }
- V& h5 x2 {+ O3 T0 y8 f

该用户从未签到

2#
发表于 2022-8-30 14:13 | 只看该作者
这个测试是用来测试CPU的最大功耗的,基本上就是使pipeline全开,包括dual issue, NEON, debug都跑起来。 因为只是个CPU本身的功耗,本来是不需要其他logic来支持的。
. e$ a" a5 Q1 A0 H$ j% f1 s/ C  C. H* Y; L* n0 X& O8 J
如果是Multicore的话, 刚开始的时候 代码控制只有CPU0往下走,其他CPU处于standy 状态(由WFI进入), 为了测 Multi-core全速运行的功耗,必须将其他的core也唤醒,所以问题2里面提到的 TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED是仿真环境的interrupt激励的触发方式,仿真环境可以通过写这些地址,让其产生一个IRQ/FIQ给其他CPU以唤醒他们。
2 I; h4 f& X7 T! P2 G9 D

该用户从未签到

3#
发表于 2022-8-30 14:57 | 只看该作者
再看看别人是怎么说的$ ^7 [" x" @7 n! ^' l

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 20:45 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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