rk3399调试串口改为普通串口步骤

本文参考了https://blog.csdn.net/l721368/article/details/83145985,感谢该博主

1.问题

 我们产品平台为RK3399,工程样机买的核心板,但是核心板只预留了UART0和UART4,还有1个android的调试口,但是我们业务上需要3个业务口,所以需要将rk3399默认的调试口(UART2)改为普通串口

2.修改步骤

(1)配置内核文件

Device Drivers > [*] Staging drivers  ---> Android  ---> [ ] FIQ Mode Serial Debugger

配置完成之后如下图:

rk3399调试串口改为普通串口步骤

(2)修改文件kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi

rk3399调试串口改为普通串口步骤

rk3399调试串口改为普通串口步骤

(3)修改启动参数文件parameter.txt

CMDLINE参数去掉androidboot.baseband=N/A,添加console=NULL,不加这一句启动时会卡住,比原来启动时间延时一分钟多

androidboot.console=ttyFIQ0 改为androidboot.console=NULL

如下图:

rk3399调试串口改为普通串口步骤

(4)修改设备文件权限

修改文件device/rockchip/common/ueventd.rockchip.rc

在/dev/ttyS4                0666   system     system

下面增加一行

/dev/ttyS2                0666   system     system

rk3399调试串口改为普通串口步骤

(5)如果调试串口直接作为普通串口使用,最好把uboot也改了,因为在uboot启动过程中串口如果有数据过来的话,会进入命令行,系统就起不来了。这里就不写修改方法了,rk3399原来用的uart2c,我现在使用了uart2b,就绕过了这个问题。

rk3399调试串口改为普通串口步骤

(6)编译

 

3.遗留问题

(1)绕过了UART2C,使用了UART2B做为普通串口,这里还是想用UART2C做为普通串口

(2)RK3399从UART0~4一共有五个串口,除去默认调试口UART2,还有4个,但是核心板中UART1和UART3和以太网功能复用了,以太网是个很常用的功能,所以这里的IO冲突我怀疑有别的解决办法,如果后期还需要UART资源,再来研究

rk3399调试串口改为普通串口步骤