[公告] 嵌入式启动时间工具 — 在 LS1043A‑RD 的 PBL/PBI 上启用 EL1 安全计时器 收件人: NXP Community - Layerscape / LS1043A Forum 发件人: Matt Chang<
[email protected]> 日期: 2026-02-07 11:28(台北,格林威治标准时间+ 08:00)仓库:https://github.com/mattchang-engr/embedded-boot-time-instrumentation 原始碼授權類型: Apache-2.0(有通知) 嗨,恩智浦社区、 摘要 该项目 在恩智浦LS1043A‑RDB的PBL/PBI阶段 (U-B oot之前)启用EL1安全物理计时器,因此您可以用微秒级的分辨率测量真正的端到端启动延迟。 我正在分享一个小而有针对性的存储库,该存储库演示了如何在启动流程 中 最早的可编程点 —— PBI ——开始计时,因此测量涵盖了RESET、RCW 负载、PLL 锁定、时钟切换以及 U‑Boot 之前发生的一切。它面向固件开发人员、嵌入式学习者以及希望获得可重复的早期启动仪器的 Layerscape 用户。 仓库中有什么 一份 GitHub 友好型 自述文件 , 包含自上而下的启动图和简洁 的 ALTCBAR 深度介绍 两个 PBI 写入 您需要 (1) 打开备用 CCSR 窗口和 (2) 启用计数器 简短的 验证片段 来自 UART,显示分阶段时间和完全启动示例(~7.947 秒) 目标: LS1043A‑RDB(IFC 或非 启动)• Ubuntu 20.04 • LSDK 21.08(FlexBuild)• U‑Boot 2021.04 SoC 步进(来自启动日志): LS1043AE Rev1.0 (0x87920010) 系统视图(最早启用点) T0:系统RESET/端口 | v PBL:从 IFC 或非 读取 PBL,加载 RCW | v 时钟PLL 锁定 + 时钟切换 | v PBI 阶段(最早的可编程点) 1) 写入 ALTCBAR(ACS=0,默认窗口) 2) 写入 CNTCR(ACS=1,交替窗口) -> EL1 定时器启动 | v 系统就绪(RESET 完成;SoC 已发布) | v U-Boot(控制台初始化-> 主板检查-> 启动完成) | v Linux 启动(内核/用户空间) 核心方法(两条 PBI 线路) 1) 对 ALTCBAR 进行编程(定义备用 CCSR 基 @ 0x0200_0000) 报头:0x0957_0158 (ACS=0, BYTE_CNT=4, CONT=1, SYS_ADDR=0x01570158) 数据: 0x0000_0200 (ALTCBAR = 0x0000_0200) 2) 启用 CNTCR(EL1 安全系统计数器 @ 0x02B0_0000) 报头:0x89B0_0000 (ACS=1,BYTE_CNT=4,CONT=1,SYS_ADDR=0x00B0_0000) 数据:0x0100_0000(字节交换,因此寄存器读取 0x0000_0001-> EN/CNTCLKEN=1) 为什么要使用 ALTCBAR? ALTCBAR 设置备用 CCSR 基数 (0x0200_0000),因此 ACS=1 针对 0x0200_0000..0x02FF_FFFF 窗口。 由于 CNTCR 位于 0x02B0_0000,因此只有在对 ALTCBAR 进行编程并使用 ACS=1 后才能访问它。 在此阶段,必须将 CNTCR 的 BYTEn 有效负载 字节交换 ;写入 0x0100_0000 ,这样寄存器就变成 0x0000_0001。 验证快照(UART) U-Boot 2021.04-dirty(Mar 12 2024 - 11:51:50 +0800) SoC:LS1043AE Rev1.0 (0x87920010) 项目:PBI 开始 u-boot 控制台初始化:757 毫秒 项目:u-boot 检查板完成时间:820 毫秒 项目:u-boot 启动过程已完成:1270 毫秒 ... [ 6.673863] 随机:crng 启动完成 TinyLinux 登录:root 成功的示例:总启动时间 ≥ 7.947 秒 (U‑Boot 阶段 + Linux 启动阶段)。 常见陷阱(快速) 端位: 写入 BYTEn=0x0000_0001 (而不是 0x0100_0000)会使定时器 关闭。 错误窗口: 在 ACS=0 或在 ALTCBAR 进入 错误地址范围之前写入 CNTCR。 链接& 许可证 仓库:https://github.com/mattchang-engr/embedded-boot-time-instrumentation 原始碼授權類型: Apache-2.0 (附注) 没有重新分发任何专有材料;正式文件请查阅供应商网站。 如果您有反馈意见、其他 Layerscape 部件的测量结果或启动源变体(QSPI/SD),我很乐意听取您的意见--欢迎提出问题和提交报告。 致以最崇高的敬意, Matt Chang GitHub: https://github.com/mattchang-engr 电子邮件:
[email protected] Re: [Announcement] embedded-boot-time-instrumentation — Enable EL1 Secure Timer at PBL/PBI on LS1043 有趣的项目。也是一个方便的工具。