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

该用户从未签到

4#
发表于 2022-8-30 15:24 | 只看该作者
这个问题解决了没有?

该用户从未签到

3#
发表于 2022-8-30 14:57 | 只看该作者
再看看别人是怎么说的
& e6 s( y' p- G/ ]/ B2 J) J: G

该用户从未签到

2#
发表于 2022-8-30 14:13 | 只看该作者
这个测试是用来测试CPU的最大功耗的,基本上就是使pipeline全开,包括dual issue, NEON, debug都跑起来。 因为只是个CPU本身的功耗,本来是不需要其他logic来支持的。8 A1 c. ?$ V& E3 y* I2 J' z& {. u
( x; `2 m6 b. N- H
如果是Multicore的话, 刚开始的时候 代码控制只有CPU0往下走,其他CPU处于standy 状态(由WFI进入), 为了测 Multi-core全速运行的功耗,必须将其他的core也唤醒,所以问题2里面提到的 TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED是仿真环境的interrupt激励的触发方式,仿真环境可以通过写这些地址,让其产生一个IRQ/FIQ给其他CPU以唤醒他们。
1 {; N0 ~! d! g0 \) }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:41 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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