3. 产线刷写总体流程设计
在 NVIDIA DRIVE 产线中,刷写不是一次孤立的“烧录动作”,而是一条从板卡上电到下线测试的完整工艺链。它同时受三方面约束:一是 SoC 与 MCU 的启动时序,二是镜像完整性与安全启动链,三是产线节拍与工位划分。流程设计的核心目标,是让每一块板卡在可追溯、可判定、可复位的条件下,稳定地完成“进入刷写模式—写入镜像—校验—激活—下线测试”的全过程。
一、端到端流程的六个阶段
从工程视角看,DRIVE 板卡的产线刷写可拆为六个阶段,每个阶段都有明确的进入条件与退出判据。
1. 上电与基础自检。板卡进入工位后,先由治具提供稳定的 12V/24V 供电与散热条件。此时 BootROM 执行最小自检,串口或调试口输出启动日志。产线需要确认的关键点是:供电电压在允许窗口内、SoC 复位释放正常、eFuse 未被误写、调试串口可读。若板卡无法进入 BootROM 或日志无输出,应直接判为硬件异常,不进入刷写流程。
2. 进入刷写模式。DRIVE 平台通常通过 Recovery 模式或 USB/以太网刷写通道进入刷写态。以 Recovery 为例,治具拉低特定 GPIO 或通过按键组合使 SoC 在复位时采样到 Recovery 电平,BootROM 随后枚举为可被主机识别的设备。产线脚本应在此阶段完成设备枚举检测,例如等待 lsusb 出现 NVIDIA 设备,或通过 tegrarcm/flash.sh 的探测接口确认通道可用。若枚举失败,需检查 Recovery 电平、线缆与 USB 控制器,而不是反复重试刷写。
3. 镜像传输。镜像通常由 BSP、内核、设备树、根文件系统、安全固件与 MCU 固件组成。传输阶段将镜像按分区写入 eMMC/UFS 或 QSPI。产线应使用与版本绑定的镜像包,并在刷写前记录镜像版本号、校验和与签名信息。传输过程中要监控写入速率与重传次数,异常重传往往意味着存储介质或链路问题。
4. 校验。写入完成后必须做回读校验。常见做法是对每个分区计算哈希并与镜像清单比对,或使用刷写工具自带的 verify 选项。校验不通过时,不能简单重刷,而应先判断是镜像损坏、存储坏块还是传输链路问题。对于安全启动场景,还需验证签名链是否完整。
5. 激活与首次启动。校验通过后,板卡退出 Recovery 模式并复位,进入正常启动流程。此时 BootROM 依次加载 BL、UEFI、内核与根文件系统。产线应观察启动日志是否到达用户空间,关键服务是否拉起,以及安全启动是否放行。首次启动可能触发分区扩容、密钥注入或校准数据写入,这些动作必须在流程中预留时间窗口。
6. 下线测试(EOL)。激活成功后进入 EOL 工位,执行功能与接口测试,例如 CAN 通信、以太网、摄像头链路、GPIO、存储读写与温度传感器。EOL 通过后,板卡才被标记为可出货。
二、工位划分与节拍设计
流程确定后,必须把它落到工位上。产线通常按“上电自检—刷写校验—激活首启—EOL 测试”划分四个工位。这样划分的理由是:刷写与校验耗时最长,且需要独占 USB/以太网通道;激活与首启需要等待系统启动,可与刷写工位并行;EOL 测试需要连接外部负载与仪器,放在最后可避免反复插拔。
节拍设计上,假设单板刷写镜像约 8GB,写入速率 80MB/s,则传输约 100 秒;校验回读约 60 秒;激活首启约 40 秒;EOL 约 90 秒。若四工位串行,单板节拍约 290 秒。若把刷写与校验放在同一工位、激活与 EOL 放在后续工位,并通过缓存区解耦,则整线节拍可压缩到约 150~180 秒。这里的数值是示例估算,实际应以产线实测为准。
三、流程中的关键控制点
第一,镜像版本绑定。刷写前必须确认镜像包版本与工单一致,并把版本号、校验和写入板卡的可追溯区域。第二,失败隔离。校验或激活失败时,不能直接重刷,应先记录失败分区、错误码与日志,再决定是重试、换介质还是判废。第三,安全启动。若产线启用了安全启动,镜像必须签名,且 eFuse 中的密钥哈希要与签名链匹配,否则激活阶段会被 BootROM 拒绝。第四,断电保护。刷写过程中断电可能导致分区不完整,流程应支持从断点恢复或整片重刷。
四、一个可执行的刷写工位检查表示例
| 检查项 | 判据 | 记录方式 |
|---|---|---|
| 供电电压 | 12V ±5% | 治具自动记录 |
| BootROM 日志 | 串口有输出且无异常复位 | 日志文件 |
| Recovery 枚举 | 主机识别到 NVIDIA 设备 | 脚本返回值 |
| 镜像版本 | 与工单版本一致 | 版本号写入追溯区 |
| 分区校验 | 哈希与清单一致 | 校验报告 |
| 首启状态 | 到达用户空间且关键服务运行 | 启动日志 |
| EOL 结果 | 全部测试项通过 | 测试报告 |