换Log输出的UART口
一 查看uboot配置
以ad102p_nand_5.10_defconfig编译配置为例
bhu@bhu-PC:~/work/build$ grep -nr "uboot" configs/ad102p_nand_5.10_defconfig
3:APP_uboot_toolchain_dir=../tools/toolchains/mips-xburst2-gcc1210-glibc238
4:APP_uboot_dir=../bootloader/uboot-x2000
5:APP_uboot_config=ad102p_base_xImage_sfc_nand //uboot配置
在bootloader/uboot-x2000目录下的boards.cfg文件查看uboot配置
bhu@bhu-PC:~/work/build$ grep -nr "ad102p_base_xImage_sfc_nand" ../bootloader/uboot-x2000/boards.cfg
944:ad102p_base_xImage_sfc_nand mips xburst2 ad100_base ingenic ad100 ad100_base:AD102P_DDR,SPL_SFC_NAND,MTD_SFCNAND,SPL_OS_BOOT,SPL_PARAMS_FIXER,RMEM_MB=18
二 修改uboot配置
可以看到使用的配置是ad100_base, 后面可以设置打印uart口,格式为SYS_UART_INDEX=x,不添加默认使用ad100_base.h位于bootloader/uboot-x2000/include/configs
#ifndef __AD100_BASE_H__
#define __AD100_BASE_H__
#define CONFIG_ROOTFS_SQUASHFS
#define CONFIG_ROOTFS2_SQUASHFS
#define CONFIG_ARG_QUIET //去掉这个可以打开所有系统打印信息
#define CONFIG_SPL_SERIAL_SUPPORT
#include "ad100_base_common.h" //实际配置
#endif /* __AD100_BASE_H__ */
实际配置在同一目录下,可以对uart口及波特率进行修改,这里uart口的设置优先级小于前面boards.cfg文件里面设置的
/*
* uart setting
*/
#ifndef CONFIG_SYS_UART_INDEX
#define CONFIG_SYS_UART_INDEX 2 //uart口
#endif
#ifndef CONFIG_BAUDRATE
#define CONFIG_BAUDRATE 3000000 //波特率
#endif
/* boot args uart rate
*/ //默认只支持了115200和3000000,需要其他的请在这里添加
#if CONFIG_BAUDRATE == 115200
#define ARG_CONSOLE_RATE "115200n8"
#elif CONFIG_BAUDRATE == 3000000
#define ARG_CONSOLE_RATE "3000000n8"
#else
#error "please add more define here"
#endif
三 问题排查
若无串口输出,确保硬件正确,uart和io对应的上的情况
3.1 kernel设备树检查是否添加对应uart
以ad102p_nand_5.10_defconfig 为例查看使用的dts文件
bhu@bhu-PC:~/work/build$ grep -nr "kernel" configs/ad102p_nand_5.10_defconfig
6:APP_kernel_dir=../kernel/kernel
7:APP_kernel_config=ad102p_module_base_linux_sfc_nand_defconfig //kernel配置
9:# APP_kernel_dtb is not set
配置文件位于kernel/kernel/arch/mips/configs目录下
bhu@bhu-PC:~/work/build$ grep -nr ".dts" ../kernel/kernel/arch/mips/configs/ad102p_module_base_linux_sfc_nand_defconfig
246:CONFIG_DT_AD100_MODULE_BASE_DTS_FILE="ad102p_module_base.dts"
dts 文件位于kernel/kernel/module_drivers/dts-stage,可以添加需要的uart,格式参考已经添加过的
kernel可以添加的uart参考同级目录下的ad100-pinctrl.dtsi文件,以uart1为例,支持pc2-3,或者作为蓝牙通信的uart口添加流控, pc2-5
3.2 kernel配置了uart
参考3.1找到kernel使用的dts文件, 若下面图中的框中部分没有被注释,就会用uart0,波特率115200,一般配置不会打开这里 .