笔者使用的是正点原子的RK3588开发板(ATK-DLRK3588),ATK-DLRK3588开发板调试串口的默认波特率是1500000(1.5M),本文讲一下如何修改调试串口的波特率,譬如将调试串口的波特率修改为115200,这个是比较通用的波特率。
一共需要修改3个地方,接下来一一介绍。
1.修改ddrbin文件
这里说的ddrbin文件指的是RK提供的闭源DDR初始化镜像,该镜像并不单独烧录,而是将其打包进MiniLoaderAll.bin镜像中,MiniLoaderAll.bin是运行在U-Boot之前的一段Loader代码,这段代码是有输出打印信息的。
首先,查看<SDK_PATH>/rkbin/RKBOOT/RK3588MINIALL.ini文件,确定RK3588平台所使用的ddrbin文件,如下所示:
从该文件可知,RK3588平台使用的ddrbin文件是:
<SDK_PATH>/rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.13.bin
进入rkbin/tools/目录,打开ddrbin_param.txt文件:
cd rkbin/tools/
vi ddrbin_param.txt
找到“uart baudrate”变量,该变量用于指定调试串口的波特率,譬如将波特率设置为115200:
uart baudrate=115200
修改完成后保存退出!
接着执行如下命令:
./ddrbin_tool rk3588 ddrbin_param.txt \
../bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.13.bin
2.修改u-boot
回到SDK根目录下,打开u-boot/configs/rk3588_defconfig文件:
vi u-boot/configs/rk3588_defconfig
找到CONFIG_BAUDRATE,将其修改为115200:
CONFIG_BAUDRATE=115200
修改完成后保存退出!
3.修改内核
如果是Android SDK,打开kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588-android.dtsi文件,如果是Linux SDK,则打开kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi文件:
# Android SDK
vi kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588-android.dtsi
# Linux SDK
vi kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi
找到fiq-debugger节点,将“rockchip,baudrate”属性的值修改为115200:
rockchip,baudrate = <115200>;
修改完成后保存退出!
4.编译测试
以上修改完成后,需要重新编译u-boot和Linux内核。
如果是Android SDK,执行如下命令:
source build/envsetup.sh
lunch ATK_DLRK3588-userdebug
make installclean
./build.sh -UKA -J12
将编译生成的MiniLoaderAll.bin、uboot.img以及boot.img烧录到开发板上进行测试。
如果是Linux SDK,执行如下命令(此前已完整编译过整个SDK):
./build.sh alientek_rk3588_defconfig
./build.sh kernel
./build.sh clean:loader
./build.sh uboot
将编译生成的MiniLoaderAll.bin、uboot.img以及boot.img烧录到开发板上进行测试。