SoC 扩展验证

本记录延续较早 SoC 基线。55 项台账 保留原始退出条件。已实现软件、实际软件证据和物理验收为不同状态。硬件未连接,全部物理结果保持 not_executed。

已资格化软件源码为 commit 98270512ea2ff7eefe8ff79720018e582be3a949,tree 8d3e69d3179d7b0d2382c5fd074c970dfc9348d9。所有正式执行使用干净 canonical checkout,并核对源码输入未变。后续文档提交记录该源码,不声称重新执行软件。

实际软件验证

范围

完整观察执行

Native

199 项 CTest;177 个 GoogleTest/GoogleMock 程序、3252 个用例;零失败、零跳过

配置与工具

458 个配置、585 个工具、351 个 CI 工具测试;完整发现与执行

ARM 平台矩阵

121 个链接镜像,含全部 105 个 provider 装配;六个预期拒绝用例

Cortex-M runtime

104 个 runtime 变体、4359 个实际 ARM 对象

Cache 与双世界参考

12 个 cache 编译 profile;实际 U575 配对镜像和 15 个 mutation 检查

Arch/启动工具

七个完整模块共 133 个测试;包含上述 15 个配对镜像 mutation

源码 SDK

59 个边界测试、258 条实际子命令、13 个 ARM consumer 及其 map;负路径保留预期非零返回码

静态分析

Cppcheck 2.13 与 clang-tidy 14 分别检查全部 358 个自有 translation unit

外部示例

代码 3de8523811b00da8bd887abf53e61eedbaf5161e pin 至本 SDK:8 个 CTest、43 个 Google 用例、44 个工具测试、20 个 ARM 镜像;十个未绑定 HIL 计划

这些范围存在重叠,不得相加为独立测试总数。Source SDK 测试有意创建不可发布开发夹具,以执行失败边界。独立打包的干净 SDK 在候选封存前需另行实际校验。

GitHub CI run 38256744920 针对精确源码成功完成:29 个成功 job,一次普通分支条件文档部署跳过。Debug、Release、ASan/UBSan、TSan 分别执行全部 199 个 CTest 和 3252 个 Google 用例。产物目录是 API 观察,不声称已下载并独立校验所有远程归档。

八个无签名软件候选通过封存及平台完整打包校验;每个候选的六类必需资格均绑定实际 run-a ELF 和配置。十六次独立构建使用 32 条断网容器命令,八组 ELF/BIN 对均逐字节一致。两份 map 和原始日志全部保留。源码绑定结果索引 记录精确候选身份、独立审查和持久归档引用。

最终闭包检查发现 102 个报告引用指向已清理 SDK 夹具路径。仅从已保留、摘要相同的产物恢复 1,871,287 bytes;原始报告和资格没有重写,首次闭包失败仍保留。八个完整闭包随后通过原始检查器。归档 Native 可执行文件和测试源码也可审计;Native binary 摘要明确在归档时绑定,不冒充执行时签名。

精确候选镜像成本

以下为 GNU Arm 14.3.rel1 参考镜像记录,测量来自实际链接 ELF 和配置。RAM 包含 2048-byte MSP 预留,八个镜像的 libc heap 均为零。这些值描述所选参考固件,不是产品负载、运行栈峰值、中断延迟或 WCET。结果索引分别保留 Flash LOAD、地址跨度、各域 RAM 和原始预算报告。

候选

Flash 地址跨度(bytes)

含 MSP 的预留 RAM(bytes)

h743-baremetal-empty

2440

2104

h743-baremetal-uart

8708

2360

h743-freertos-empty

4828

3032

h743-freertos-uart

11100

3284

u575-baremetal-empty

2124

2112

u575-baremetal-uart

8364

2368

u575-freertos-empty

4548

3040

u575-freertos-uart

10804

3292

已实现范围

层

新增行为

精确边界

Arch

调用者拥有的 Cortex-M7 Cache 转换控制

冷态特权入口、已核验 Cache 几何、显式所有权和有界清理;其他内核拒绝此控制操作

Arch

Cortex-M33 NonSecure 范围权限观察

真实 CMSE 检查;观察不 pin 存储、不复制数据、不授权任意外设

G474

静态 EXTI 事件提供者

两条选定软件夹具 line、有界 ring、pending-bit 隔离、溢出顺序和保留清理;PCB 接线及电气未资格化

H743

固定 HSI32/HSI64 启动并选择 Cache

四个冷 profile;独立 divider、timer、Cache 所有权;并非运行中变频

H743

USART3 经 DMA1/DMAMUX 有限 TX

仅 AXI SRAM;显式 buffer 借用、线上完成、取消和隔离;RX 保持 IRQ bytes

U575

精确 Secure/NonSecure 软件参考

固定 Flash/RAM 归属、受限 NonSecure MPU、真实 CMSE gateway、同步有界 broker 和实际配对镜像

SDK

必需私有实现闭包

删除必需源码/头后重新计算 manifest 仍无法通过校验

自动化

完整依赖初始化与编译器上下文

SDK 依赖来自声明 lock;静态分析必须保留实际 translation unit 的 defines 和 forced includes

公共设备架构仍为静态类型化工厂与不可变多态接口。Factory 获取不分配、不启动硬件、不加锁。新模式扩展选中的私有 provider 和配置事实,不增加运行时 registry、隐式 worker 或必需 OS 层。

H743 DMA 借用 request 和 payload 到 acquire-observed SETTLED。启用 Cache 时,调用者须独占完整对齐 cache line;provider 不向外取整触及相邻分配,也不分配 bounce buffer。取消和超时不撤销借用,无法撤回硬件引用时保留隔离中的存储。

U575 参考只接纳固定 TZEN=1 boot profile 和不可变的非特权 NonSecure Thread,没有 NS 中断、RTOS 或并发 DMA。改变归属前先清零并验证未来 NS RAM,再检查最终保护状态,经实际编译器 CMSE 序列进入。同步 gateway 复制有界输入并在发布前检查输出。它不实现通用异步跨域借用、任意 userspace 任务、产品认证或安全升级。见完整合同。

证据规则

行为变更的普通 commit hooks 执行完整 GoogleTest/GoogleMock、配置和工具测试。正式资格另外绑定干净 canonical commit/tree、实际 compiler 输入、原始命令输出、配置和链接产物。失败尝试保留为失败;源码改变后需要新的源码绑定执行。

验证发现 H743 ARM 启动测试缺少生成头输入、CPU 配置测试固定虚拟环境路径、串口噪声测试不受控调度假设,以及静态分析丢失 forced-include 上下文。Sanitizer 还发现主机模型寄存器 mask 宽度转换和依赖信号的终止观察者。回归保留真实编译器警告和生产非返回循环;观察者必须不依赖循环中的信号投递点。GCC 13/LP64 sanitizer 主机还要求 U575 生产时钟和 MPU mask 在位操作前明确 32-bit operand。独立比较在归一化 __FILE__ 后发现被测旧/新 translation unit 的 ARM 已分配 section 相同;这是限定范围的代码和存储比较,不是实测 cycles 或所有编译器保证。回归及最终状态归入交付索引,关闭这些问题不能用 suppression 或跳过测试替代。

离线候选覆盖 H743/U575 维护中的八个公开组合:empty/IRQ-UART 与裸机/FreeRTOS。各自要求两次全新断网构建和实际 ELF/BIN 字节比较,并保留两份 map 及日志。H743 cache/DMA 夹具和 U575 配对参考具有各自 ARM 证据,不属于八个单镜像候选。无签名软件候选不是产品发布或物理资格。

持久证据

本地归档为 /workspace/nexus-soc-delivery-98270512/platform-evidence.tar.gz:1,269,027,807 bytes,SHA-256 3aae3a6b96701ce1a042cb4e43078d00d59ba5460ebc4816fa68e2fe4a8fe41c。内嵌 delivery-manifest.json 和外部清单描述 216,230 项,含 173,376 个普通文件。原始 raw path 和记录字节不变。在 platform/ 下解析最终执行根;其他根和嵌套 Native/source 归档有显式成员映射。结果索引绑定归档、清单和校验回执。独立流式审查从保留归档字节检查每个外层成员、八个候选 payload 闭包、三个嵌套 Native/source 归档及精确源码身份,没有完整解包或原始根回退。

将八个候选复制到独立全新目录并禁止访问原始 evidence、SDK、OCI、ARM 工具根后,均实际通过校验,原始路径读取尝试为零。这验证打包证据闭包;重建仍需提供记录的外部 OCI 和 GNU Arm 工具链,二进制未嵌入。此本地归档不是已发布 GitHub Release asset 或已签名产品发布。

剩余验收

SOC-28 至 SOC-32 和 SOC-36 是精确的部分参考,原始硬件、外设、隔离退出条件保持开放。SOC-33 bootloader/运行态交接、SOC-34 动态变频、SOC-35 连续计时 deep STOP 未实现。SOC-37 至 SOC-55 提供 station、准入、采集和结果校验工具;物理执行等待设备。

固定时钟不建立 DVFS,普通 WFI/tickless idle 不建立 deep STOP。主机模型和链接 ARM 镜像不建立电气、硅片 DMA/cache 一致性、TrustZone 隔离、中断延迟、实测功耗或 WCET。应用、PCB 专有政策与恢复由外部工程负责。