• Aarch64 / Aarch32切换问题

    hi, experts:

    正在学习ARMv8 manual.

    关于Aarch64/Aarch32,有几个问题:

    假定一个ARMv8 SOC实现了4个EL:EL0 / EL1 / EL2 / EL3

    1. Secure State下:从EL3 Aarch64切换到Secure下的EL1 Aarch64

        Target EL是EL1

        SPSR_EL3[3:2] :defined target EL

        那么target EL1的execution…

  • AArch64 x30和LR有什么区别

    The X30 general-purpose register is used as the procedure call link register. <ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile>

    如上,X30用作link register. 那么X30和LR是什么区别,在AArch64模式下是否是同一个寄存器。

  • GICv2在non-secure环境的初始化问题

    大家好,我正在做Cortex-A7上的一个project,因为一些原因,主要代码都是跑在svn_ns状态下的。在初始化GIC时遇到了一些问题:

    原本我的GIC驱动是跑在svn_s状态下,全部中断都属于Group 0,一切都没问题。现在一些原因需要让它跑在svn_ns下,查阅资料后发现为了可以在non secure状态下enable一个中断,需要把这个中断设置成Group 1,否则各种对应这个中断的设置会被忽略掉,于是我把所有的中断通过secure monitor 都设置成了Group 1。至于Priority设置…

  • L2cache禁止,为什么cpu运行会比恒miss要慢?

    按以下流程测L2cache,发现一个现象,请教一下大家。

    芯片是xilinx的zynq,L2 size = 512K。

    程序本身加载到0x100000。

    关闭所有中断。

    使能L1和L2。

    把0xfc000000开始的512K数据lock到L2中。

    反复读写0x140000开始的64K内存。这样,L2虽使能,但却恒定miss,程序能跑890遍/秒。

    跑一段时间后,执行DisableL2Cache。程序能跑865遍/秒。

    为什么,L2 enable时,即使恒定miss,也比L2 disable 快一些?

  • Secure write与Secure寄存器的关系

    在ARMv7中,对于Security Extension我有个疑惑,以下均是我自己的理解,如果有误还望指出:

    一些通过Coprosessor访问的寄存器有些是Banked,也就是说从Secure world和Non-secure world访问这些寄存器时实际上访问到的是两个不同的寄存器。然而还有一些寄存器有类似于"In a system that uses security, this register is writable only by Secure write"这样的限制。Monitor…

  • 什么是PoU和PoC?

    在cortex a7上看到PoC和PoU的概念如下:

    PoC: the PoC is the point at which all blocks, for example, cores, DSPs, or DMA engines, that canaccess memory are guaranteed to see the same copy of a memory location.

    PoU: the PoU for a core is the point at which the instruction…

  • 如何理解Cortex-A57只包含GIC CPU Interface?

    hi, experts:

    CA57 TRM说:

    它只包含GIC CPU Interface。

    请教2个问题:

    1. CA57的SOC,需要另外集成GIC-400 IP吗?

    2. GIC-400里的GIC CPU Interface会和CA57的各个Core对应的GIC CPU Interface连接吗?

    best wishes,

  • 如何界定A53和A57系统中,inner和outer cache?

    我们一般默认L1cache为inner cache,L2cache为outer cache。

    没有看到很明确的说明,L1,2cache分别属于inner还是outer?

    请专家解释下可以根据什么信息明确这点,谢谢!