定制 Rockchip RK3588 或 RK3566 板子的分步检查清单:先电源和 DDR、调试串口与 Maskrom 恢复、启动链、设备树、以太网与 PCIe 的坑、显示,以及量产前要定下来的事情。
围绕 RK3588 或 RK3566 做的定制板,比它所参考的开发板有多得多的出错方式,而且这些故障会互相遮蔽:DDR 电源边缘不稳,看起来像内核 bug;以太网延迟设错,看起来像驱动问题。解决办法是自底向上逐层证明,下一层没稳之前,不去调试上一层。这是我们使用的顺序。
Rockchip 芯片从 Boot ROM 启动链开始就通过调试串口打印信息,默认波特率是 1500000,很多终端软件的下拉菜单里没有这个选项,要手动设置。完全没有输出,说明是电源、时钟、复位或启动介质的问题,不是软件。读最开始的几行:它会告诉你加载器有没有找到 DDR,以及找到了什么。
第一级加载器用厂商提供的二进制文件初始化 DRAM,里面包含针对内存类型和速度的训练参数。板子在 DDR 训练时停住,或者启动后随机崩溃,通常是硬件余量问题:电源噪声、不好的分支走线,或者参考布局本不会有的时序。让处理器满负荷、板子发热的情况下跑几个小时内存测试。没测干净之前不要往下走,否则后面所有现象看起来都像是别的原因。
Rockchip 芯片的 Boot ROM 里有恢复模式 Maskrom:找不到有效启动镜像时,或者你按住启动引脚强制进入时,可以通过 USB 访问。在这个模式下,主机工具可以通过 USB 加载加载器并写存储,所以存储损坏永远不等于板子报废。把进入方式设计进去,写明技术人员怎样进入,并在量产烧录里也使用它。
启动链是 Boot ROM,然后是带 DDR 初始化的第一级加载器,再是 U-Boot,最后是内核。要尽早在厂商 BSP 和主线之间做选择:厂商 BSP 在厂商内核上提供完整的硬件加速器;主线对这些芯片的支持已经大幅增长,但并非每个模块都完整。依赖硬件视频、NPU 或 ISP 摄像头通路的产品,通常从厂商 BSP 出发;需要长期维护、只用到 CPU、存储、网络和显示的产品,往往可以用主线。要在开始第一个外设工作之前做出决定,并从第一天起把设备树和构建配置放进版本管理。
这是高性能处理器,发热时会降频。要在外壳里、在环境温度上限下,让 CPU、GPU 和 NPU 同时满负荷,观察时钟的变化。一块在实验台上自由空气里表现很好的板子,放进密闭外壳后可能降到一半速度。要有意识地设置温控区和动态调频策略,并在输入端测功耗,而不是只看处理器温度。
这些芯片上的 NPU 相当可观(RK3588 约 6 TOPS,RK3566 只有它的一小部分),让一个模型在上面跑起来,需要用厂商工具包转换,并检查哪些算子被支持。要给量化和在你自己数据上的精度验证留出时间。NPU 并不是对任何模型都免费的加速。
我们设计过 Rockchip 平台的硬件,包括一块多版本的 RK3128 主板及其显示驱动板,并在 Linux 和 Android 下点亮 Rockchip 应用处理器。如果你希望由一支团队完成板子的设计、点亮和产品化,请看我们的 Linux BSP 与驱动服务和通用点亮指南。
联系我们获取定制化解决方案和报价