这是一篇 2017 年的旧文。
因为想用 一块 ARM 板卡来做 kernel ramdump/crash-utility 的 demo,要在u-boot阶段来 dump 内存,而该板卡的 u-boot 版本是 2009,没有支持 ubifs 和 tftpput 等命令,所以产生了升级其 u-boot 到版本 2017.01 的动机。这篇 log 记录了升级过程。
项目需要在一个 4 核的 SoC(System on a Chip) 处理器上面运行 Linux 和 VxWorks 两个操作系统: core-0/2/3 运行 Linux OS, core-1 运行 VxWorks OS; core-0/2/3 Linux OS 由中国团队开发,core-1 VxWorks OS 由国外团队开发。先启动 Linux OS, 由 Linux OS 启动 VxWorks OS。因为 VxWorks OS 开发进展较慢,我们决定现在 core-1 启动另外一个 Linux OS 来 derisk, 提前验证 Linux OS AMP 的启动方案, 验证 Linux Kernel remoteproc driver, RPMsg/Virtio driver 等。后来这套运行两个 Linux OS 的 AMP 方案还差点用到产品上面,这是后话。下图是系统框图:
项目需要实现 AMP 系统,在一个 4 核的 SoC(System on a Chip) 处理器上面运行 Linux 和 VxWorks 两个操作系统: core-0/2/3 运行 Linux OS, core-1 运行 VxWorks OS, 如下图所示:
CPLD 是嵌入式板卡常用的一种可编程器件,其通过并行总线,SPI 或者 I2C 与 OBC(On Board Controller) 相连,用于扩展 GPIO(LED灯,中断,报警)或者低速 IO 总线(如 SPI/I2C 总线的 PLL 时钟、EEPROM 和温感芯片等,UART 等)。OBC 通过 CPLD fireware 提供寄存器访问控制 CPLD 所接各种外设。 下图是某板卡 cpld hw block diagram, 使用 SPI bus 连接 OBC, 其中 I2C bush 用于 cpld program 其自带 nor flash。