TI中文支持网
TI专业的中文技术问题搜集分享网站

[FAQ] TDA4VM: PSDK QNX:修改 ARM SCR_EL3 EA 位

Part Number:TDA4VM

问:如何修改与 TI SDK QNX 版本一起使用的 SPL/SBL 引导映像以控制 SCR_EL3 EA 位?

Cherry Zhou:

答:

概述:

对于 SBL 引导流程,TI Processor SDK QNX(从 SDK 7.3 开始)已将 ARM SCR_EL3 EA 位设置为 0 值。   可以按照 TI SDK QNX 版本文档中的说明为 SBL 引导流程修改 ARM SCR_EL3 EA 位。

对于 SPL 引导流程,ARM SCR_EL3 EA 位默认设置为高电平。   在 QNX 上使用 SPL 引导流程时,为了调试目的或为了需要在 QNX 上生成 SIGBUS 的驱动程序,可以将 ARM SCRL_EL3 EA 位设置为低电平。

针对 SBL 引导流程控制 SCR_EL3 EA 位

有关修改 ARM SCR_EL3 EA 位的步骤,请参考 SDK 发布文档。  以下链接适用于 SDK 7.3。

8.3. 如何处理当前异常级别的异常 – Processor SDK QNX J721E

针对 SPL 引导流程控制 SCR_EL3 EA 位 (uboot)

发布文档将进行更新,以包含与下面的内容类似的内容。

对于 SPL 引导流程,需要使用更新的 Arm Trusted Firmware (ATF) 重新编译 Uboot tispl.bin 二进制文件。  编译 Uboot + ATF 二进制文件的步骤如下:

1) 下载并安装需要 Uboot 二进制文件的 Linux SDK。例如,SDK 7.3 版本的链接为 PROCESSOR-SDK-LINUX-J721E_07.03.00.05 | 德州仪器 TI.com.cn。

 

2) 在编译窗口中设置环境变量,这对以下步骤中的编译是必需的:

export PSDKLA_PATH=<PATH to PSDK Linux Installation>
export CROSS_COMPILE=${PSDKLA_PATH}/linux-devkit/sysroots/x86_64-arago-linux/usr/bin/aarch64-none-linux-gnu-

3) 修改 arm-trusted-firmware,以便在 SCR_EL3 EA 位设置为 0 时进行编译

按如下方式编辑该文件:${PSDKLA_PATH}/board-support/trusted-firmware-a-2.4/plat/ti/k3/common/plat_common.mk

将HANDLE_EA_EL3_FIRST := 1
修改为HANDLE_EA_EL3_FIRST :0

 4) 使用这些新设置重新编译 Arm Trusted Firmware,以生成更新的 bl31.bin

export CROSS_COMPILE=${PSDKRA_PATH}/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu//bin/aarch64-none-linux-gnu-
export GCC_LINUX_ARM_ROOT=${PSDKRA_PATH}/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/
cd ${PSDKLA_PATH}/board-support/trusted-firmware-a-2.4
make -s -j32 PLAT=k3 TARGET_BOARD=generic SPD=opteed

 5) 备份旧的 bl31.bin 并使用新生成的映像进行覆盖。

cd ${PSDKLA_PATH}
cp ./board-support/prebuilt-images/bl31.bin ./board-support/prebuilt-images/bl31.bin.prebuilt
cp ./board-support/trusted-firmware-a-2.4/build/k3/generic/release/bl31.bin ./board-support/prebuilt-images/bl31.bin

 6) 按以下方式重新编译 uboot,这将采用更新的 bl31.bin 并生成 tispl.bin

cd ${PSDKLA_PATH}
make u-boot_clean; make u-boot

 7) 将 ${PSDKLA_PATH}/ board-support/u-boot_build/a72/tispl.bin 复制到引导介质中。如果使用 SD 引导,这将是 SD 卡的根目录。

 

示例测试:  读取未启用的模块的地址,例如 0x28000000

在 EA 位设置为 0 的情况下使用 tispl.bin:

在 EA 位设置为 1 的情况下使用 tispl.bin:

赞(0)
未经允许不得转载:TI中文支持网 » [FAQ] TDA4VM: PSDK QNX:修改 ARM SCR_EL3 EA 位
分享到: 更多 (0)