AR# 46911

|

EDK 14.1 Zynq-7000 - How do I create a stub for the second CPU core?

描述

How do I create a stub for the second CPU core?

解决方案

The attached tcl script (stub.tcl) creates a stub for the second CPU core. The second CPU core executes a wfe (wait for event) instruction and waits for the first CPU core to wake up.

If the first processor wants to wake up the second core, it just needs to write the desired pc value at location 0xFFFFFFF0 and send a sev (send event) instruction.

Without this, Linux might not boot, since the boot rom has a bug in jtag mode for rev1 of the silicon. Therefore, this step is needed when Linux is being loaded directly into RAM without booting from flash.

Following is the assembly code that the second CPU core executes:

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

附件

文件名 文件大小 File Type
stub.tcl 723 Bytes TCL

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
52540 Zynq-7000 SoC - Frequently Asked Questions N/A N/A

相关答复记录

Answer Number 问答标题 问题版本 已解决问题的版本
47567 Zynq-7000 SoC、引导 — 从 JTAG 引导时,CPU1 的程序计数器 (PC) 指向无效地址 N/A N/A
AR# 46911
日期 03/02/2013
状态 Active
Type 综合文章
器件
People Also Viewed