找回密码
 注册
关于网站域名变更的通知
查看: 168|回复: 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上运行,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

该用户从未签到

2#
发表于 2022-8-30 14:13 | 只看该作者
这个测试是用来测试CPU的最大功耗的,基本上就是使pipeline全开,包括dual issue, NEON, debug都跑起来。 因为只是个CPU本身的功耗,本来是不需要其他logic来支持的。& W5 V- E) |7 q1 [

  e) _( r+ Q$ L7 p: Z; ^如果是Multicore的话, 刚开始的时候 代码控制只有CPU0往下走,其他CPU处于standy 状态(由WFI进入), 为了测 Multi-core全速运行的功耗,必须将其他的core也唤醒,所以问题2里面提到的 TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED是仿真环境的interrupt激励的触发方式,仿真环境可以通过写这些地址,让其产生一个IRQ/FIQ给其他CPU以唤醒他们。) g* v7 J6 y9 Y+ K

该用户从未签到

3#
发表于 2022-8-30 14:57 | 只看该作者
再看看别人是怎么说的. a  ]; E- m) w: `

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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