一、拿到新板子后要改的核心文件
按重要性和改动频率从高到低排列:
1. Device Tree (DTS) — 最核心,几乎必改
位置: sysdrv/source/kernel/arch/arm/boot/dts/
这是硬件描述文件,PCB 上每个外设都要在这里声明。你需要:
| 需求 | 做法 |
|---|---|
| GPIO 复用(哪个引脚做什么) | 改 pinctrl 节点 |
| 新增/换用 SPI/I2C/UART/PWM | 在 dts 里使能对应控制器,配引脚 |
| 换摄像头 sensor | 改 rockchip-cif + sensor 节点,更新 RK_CAMERA_SENSOR_IQFILES |
| 改网口 / WiFi 模块 | 配 gmac / sdio 节点 |
| 换屏幕 | 改 display / backlight / panel 节点 |
| 改 DDR 类型或频率 | 见下文 DDR 部分 |
推荐做法: 拷贝一个最接近你硬件的 .dts(比如 rv1106g-luckfox-pico-pro-max.dts),改成你板子的名字,然后:
- 删掉你板上没有的外设
- 加上你板上有但 Luckfox 没有的外设
- 检查所有 GPIO 引脚号是否匹配 PCB 原理图
然后在对应 BoardConfig .mk 里把 RK_KERNEL_DTS 指向你的新 .dts。
2. BoardConfig.mk — 每块板子一个配置文件
位置: project/cfg/BoardConfig_IPC/
存放位置,把你的配置拷贝一份,改成你自己的名字:
cp BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk \
BoardConfig-SPI_NAND-Buildroot-RV1106_My_Company_Board-IPC.mk
需要修改的关键项:
RK_KERNEL_DTS → 指向你的新 dts
RK_PARTITION_CMD_IN_ENV → 按 flash 大小调整分区
RK_CAMERA_SENSOR_IQFILES → 换成你用的 sensor
LF_WIFI_SSID / LF_WIFI_PSK → 公司 WiFi
RK_POST_OVERLAY → 你的自定义 overlay
最后 ln -sf 到 .BoardConfig.mk。
3. U-Boot Defconfig — 一般不动,除非换了启动介质
位置: sysdrv/source/uboot/u-boot/configs/luckfox_rv1106_uboot_defconfig
Luckfox 的 U-Boot 配置已经适配了 RV1106,大多数情况下直接用。需要改的情况:
- 换了 SPI NAND / SPI NOR / eMMC / SD 卡启动 → 换
RK_UBOOT_DEFCONFIG_FRAGMENT - 换了 DDR 频率 → 改
RKBOOT/*.ini里选的 DDR bin - 需要在 U-Boot 阶段加驱动(比如网卡)→ 改 defconfig
4. DDR 配置 — 换 RAM 芯片才需要动
位置: sysdrv/source/uboot/rkbin/
DDR 是 Rockchip 提供的闭源二进制 .bin。Luckfox 默认使用 rv1106_ddr_924MHz_v1.15.bin。
如果你公司板子换了 DDR 颗粒(比如 DDR3→DDR4、或改了频率),需要用 tools/ddrbin_param.txt + tools/ddrbin_tool 生成新的 DDR bin,然后修改 RKBOOT/RV1106MINIALL.ini 指向新 bin。
5. Kernel Defconfig — 加驱动才需要动
位置: sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig
默认已经启用了常用的驱动。你如果需要:
- 新的 USB 设备驱动 →
make menuconfig或直接改 defconfig - 额外的网络协议 / 文件系统
- 开启/关闭某些内核特性
二、新板 bring-up 的标准流程
1. PCB 工程师给原理图
↓
2. 选一个最接近的 Luckfox dts 拷贝为 xxx-my-board.dts
↓
3. 根据原理图改 pinctrl(GPIO复用)、regulator(电源)、
i2c/spi/uart/pwm 等外设节点
↓
4. 编译内核:./build.sh kernel → 出 dtb
↓
5. 如果能进系统了,逐个验证外设:
- 串口 → dmesg | grep tty
- 网络 → ifconfig, ping
- 摄像头 → v4l2-ctl --list-devices
- 屏幕 → 看背光、fb 设备
↓
6. 调 ISP(摄像头画质),需要 IQ 文件调优
↓
7. 固件打包:./build.sh firmware
↓
8. 烧录验证
三、总结对照表
| 你要做什么 | 改哪个文件 |
|---|---|
| 改 GPIO / 外设 | .dts (kernel) |
| 换 flash / 调分区 | BoardConfig.mk |
| 换摄像头 sensor | .dts + RK_CAMERA_SENSOR_IQFILES |
| 换 WiFi 模块 | .dts + kernel defconfig |
| 改主机名/密码 | overlay 或 defconfig |
| 换 DDR 颗粒 | rkbin/ DDR bin + INI |
| 加内核驱动 | kernel defconfig |
| 换启动方式 | U-Boot defconfig |