找回密码
 注册
关于网站域名变更的通知
查看: 172|回复: 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上运行,
5 V! f8 r9 Y; h+ t# J. b0 y% K  r5 ]" v- W5 G
我用的ca5_max_power.s的信息是
8 h: b( v4 b9 A4 U* }# J
- t3 i. p* e- u# H4 s) @/ v; Revision : $Revision: 60190 $! c' H5 r( m4 c
+ s3 i; O+ Y4 p# ^% Y; h
;
" s; s' o$ C/ P( T% ~, v, ?9 g
! E  }3 r) o  O' x5 O6 ^9 P% D; Release Information : CORTEX-A5-MPCore-r0p1-00rel0
! a1 y2 |  y+ M' C6 q
, d" ?: `& M1 m我有两个问题想问一下,% B$ @: @: y! s; ~# M

- q/ L. S/ f9 b# s$ aca5_max_power.s测试需要soc有一些特别的硬件电路吗?在我自己的cortex-a5 soc上可以运行测试吗?
3 H% ^) B* m* B9 u2 U- B
' K8 }" p7 m, H/ A7 ~2 X3 x0 Jca5_max_power.s有调用macro: CPU_WFE_TRIGGER_EVENTI, 定义在validation_macros.hs,
* ^9 {6 p% H( ?
- `; D& Y8 `' T这个macro定义中有用到TBVAL_INTSEL, TBVAL_INTTRIG和TBVAL_INTSCHED, 请问这三个地址是什么,
* Z* ~3 p$ M( T5 H& u+ }4 A2 |" @  S  N& X# D5 p4 Y5 z
测试代码里定义在0xa2000000的偏移上, 请问如果porting到我自己的soc上,这个基地址应该是什么?% U% }- z7 q7 n9 @8 Y
& K2 R5 p8 J8 W0 |
这个macro定义如下:' K" F% |; l8 t( y& d7 P
2 G$ a) B1 l" x# A* @) i* U: a6 n8 r
LDR r7, =TBVAL_INTSEL
+ }4 _3 n( F9 h2 m
7 H: i4 a1 D3 MMOV     r0, #04 s4 V$ V$ ^5 q# e: Y8 p  ^
6 c9 W. p% ^2 ^, w2 ~7 }
STR     r0, [r7]
% ?  p+ g- J- H. u: ]7 K( D5 b$ H0 @" M5 r0 |7 d( n8 p
DSB1 P( ^, d* Q. ^5 m

5 D2 B3 n& a7 S" @2 R. b; Trigger condition: "All CPU's WFE must be set in order to set EVENTI"; A: I7 s5 l( E. X; Y' t: v

7 y- o1 ^+ J! l" v" X0 U; NB: depends on the number of CPUs implemented if MP case9 Q3 c8 K4 Y7 s* z

2 v$ }4 L5 z0 S+ s# XLDR     r7, =TBVAL_INTTRIG
1 c# C2 W9 ^9 b1 |
* B7 X! R: u+ z' o9 F- i/ v% [LDR     r1, =data_cpunb
7 C  s* E1 C  j$ F* C3 |) V$ ^) V2 Q7 T" P6 f  u4 d$ j
LDR     r0, [r1]
( ~; _9 ?* z0 a+ L
0 Q/ M4 a$ l* s8 I9 e/ [! ~MOV     r1, #1
. F! u, [- c8 Y: C
" v/ Q: n0 H3 x) R2 SLSL     r1, r0
" ?6 C/ `- N6 v  u% n" N" A0 R. [6 D* t7 r6 F# J( f
SUB     r0, r1, #1
- x' l  r+ w+ W( X5 Y  F1 }* J
2 P  y5 T0 @0 H  l# |6 x: rLSL     r0, #4) B3 V- L: ~7 M4 y. E

9 H% |% s7 z8 t+ l, b$ T6 rSTR     r0, [r7]
: a3 L1 Q9 X* M# I" ]
* h% a; S) N& u+ x+ qDSB
1 N5 s: y3 c" ~
, L7 m5 q8 B+ _8 Q; EVENTI generation enabled (held until programmed trigger condition is true)
$ h! @; Z' Q. e. q
6 Z1 `/ C$ S/ Z& j& v; _) i* j: uLDR     r7, =TBVAL_INTSEL( R4 o; M6 V# u- a
6 p. m; W" A: `. B8 q4 r
MOV     r0, #1<<8
; Y6 q3 q( e9 z" P* z/ m
7 r3 Y- s9 Z% i/ d2 i& K' E1 k5 WSTR     r0, [r7]6 J* n. ?$ V( p2 g4 ], G- G

9 u) H( D0 h1 @9 {6 N4 ]9 \! iDSB
1 W; f3 G/ [5 o6 P
) m' q( g( Q' B+ B0 O; Schedule trigger now (delay == 0 cycle)& j/ P0 n" y! h% C! f( S8 T- @

/ W5 P8 L+ m- }. \LDR     r7, =TBVAL_INTSCHED' C+ o" ~; ~, Q2 I1 i

  r8 z; P" O1 v% X( L+ QMOV     r0, #0
# P+ a( o6 r2 E# [5 S& t( z% Q4 `: z3 ?
STR     r0, [r7]
/ X4 b1 O+ Q% m8 c$ P, y5 r  C- D; f" I& W: o/ h* r, F: o
DSB, O) Y; r1 u" _; O6 K2 O; f* [; [
, b6 |3 A( d" a6 l7 k8 A7 m! A

该用户从未签到

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

该用户从未签到

3#
发表于 2022-8-30 14:57 | 只看该作者
再看看别人是怎么说的
, q6 C/ |  h3 _, E' y

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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