我正在试图弄清楚除了core0之外的核心如何启动四核心所有者h5。 C_RST_CTRL寄存器(a.k.a CPU2复位控制寄存器)底部有4位,表示它们是4个复位控制。 lsbit是另外三个零,意味着将这些版本设置为在其他内核上重置,但我没有看到发生这种情况(没有运行代码我在地址零处运行),同时归零lsbit确实停止core0暗示它是一个重置控件。所以我假设某处有时钟门,但我找不到它们。
在H5文档中没有记录的prcm寄存器,但是在旧版的allwinner的sunxi wiki页面上确实显示了真正的PLL设置,但cpu使能寄存器仅标记为A31和cpu0寄存器没有设置,这意味着这不是你如何为这个芯片启用包括0的任何cpu。
我错过了什么?
答案 0 :(得分:3)
对于纯裸机解决方案,请查看https://github.com/apritzel/arm-trusted-firmware.git的plat / sun50iw1p1目录中的sunxi_cpu_ops.c
您需要停用各种电源钳和时钟门。
或者,包括Arm Trusted Firmware代码并通过SMC调用启用核心:
ldr x2,=entry_point
mov x1,#corenumber
mov x0,#0x03
movk x0,#0x8400,lsl #16
smc #0
我现在已经证实这适用于H5。
答案 1 :(得分:1)
C_CPU_STATUS STANDBY_WFI = 0x0E是否表示辅助核心位于WFI中?
不是答案,我没有足够的代表发表评论,但我自己也开始做同样的练习。
顺便说一句,你是如何将代码放在地址0的?那不是BROM吗?我打算玩RVBARADDR寄存器。