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 |
外部示例 |
代码 |
这些范围存在重叠,不得相加为独立测试总数。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 专有政策与恢复由外部工程负责。