1.问题
我们产品平台为RK3399,工程样机买的核心板,但是核心板只预留了UART0和UART4,还有1个android的调试口,但是我们业务上需要3个业务口,所以需要将rk3399默认的调试口(UART2)改为普通串口
2.修改步骤
(1)配置内核文件
Device Drivers > [*] Staging drivers ---> Android ---> [ ] FIQ Mode Serial Debugger
配置完成之后如下图:
(2)修改文件kernel/arch/arm64/boot/dts/rockchip/rk3399-android.dtsi
(3)修改启动参数文件parameter.txt
CMDLINE参数去掉androidboot.baseband=N/A,添加console=NULL,不加这一句启动时会卡住,比原来启动时间延时一分钟多
androidboot.console=ttyFIQ0 改为androidboot.console=NULL
如下图:
(4)修改设备文件权限
修改文件device/rockchip/common/ueventd.rockchip.rc
在/dev/ttyS4 0666 system system
下面增加一行
/dev/ttyS2 0666 system system
(5)如果调试串口直接作为普通串口使用,最好把uboot也改了,因为在uboot启动过程中串口如果有数据过来的话,会进入命令行,系统就起不来了。这里就不写修改方法了,rk3399原来用的uart2c,我现在使用了uart2b,就绕过了这个问题。
(6)编译
3.遗留问题
(1)绕过了UART2C,使用了UART2B做为普通串口,这里还是想用UART2C做为普通串口
(2)RK3399从UART0~4一共有五个串口,除去默认调试口UART2,还有4个,但是核心板中UART1和UART3和以太网功能复用了,以太网是个很常用的功能,所以这里的IO冲突我怀疑有别的解决办法,如果后期还需要UART资源,再来研究
回贴