描述
如何为第二个CPU核心创建存根?
解
附加的tcl脚本(stub.tcl)为第二个CPU核心创建存根。第二个CPU内核执行wfe(等待事件)指令并等待第一个CPU内核唤醒。
如果第一个处理器想要唤醒第二个内核,则只需要在位置0xFFFFFFF0写入所需的pc值并发送sev(发送事件)指令。
如果没有这个,Linux可能无法启动,因为启动ROM在jtag模式下有一个针对芯片rev1的错误。因此,当Linux直接加载到RAM而不从闪存引导时,需要执行此步骤。
以下是第二个CPU核心执行的汇编代码:
0xFFFFFF00:mvn r0,#15
0xFFFFFF04:mov r1
0xFFFFFF08:str r1,[r0]
0xFFFFFF0C:wfe
0xFFFFFF10:ldr r2,[r0]
0xFFFFFF14:cmp r2,r1
0xFFFFFF18:beq 0xc
0xFFFFFF1C:mov pc
附件
相关附件
名称 | 文件大小 | 文件类型 |
---|---|---|
stub.tcl | 723字节 | TCL |
没有回复内容