hi3519v101 uart1无法打开

一、问题描述

在调试hi3519V101 RS485的时候,用到UART1 串口,在内核中已经有了这个设备号/dev/ttyAMA1, 但是在程序中 open 这个设备时,无法打开。

二、原因分析

首先了解到HI3519的串口挂载到AMBA总线上,设备描述符已经出现,应该驱动是有的,但是使用命令: cat /proc/tty/driver/ttyAMA 显示:

~ # cat /proc/tty/driver/ttyAMA

serinfo:1.0 driver revision:

0: uart:PL011 rev2 mmio:0x12100000 irq:36 tx:912 rx:28 RTS|CTS|DTR|DSR|CD|RI

无uart1 信息。有可能是没有使能驱动。

进一步查看

 

三、解决方法

修改内核dts 配置,路径:..\Hi3519V101_SDK_V1.0.1.0\osdrv\opensource

\kernel\linux-3.18.y\arch\arm\boot\dts  下的hi3519v101 的配置文件。

打开 hisi-hi3519v101.dtsi 文件

#include

/ {

aliases {

serial0 = &uart0;

serial1 = &uart1;       #添加这一行 uart1

i2c0 = &i2c_bus0;

i2c1 = &i2c_bus1;

 

 

 

 

打开 hisi-hi3519v101-demb.dts 文件

&uart0 {

status = "okay";

};

 

&uart1 {

status = "okay";

};

 

&dual_timer0 {

status = "okay";

};

添加一个uart1 状态,使之OK。

 

同样打开 hisi-hi3519v101-hmp-demb.dts 文件

&uart0 {

status = "okay";

};

 

&uart1 {

status = "okay";

};

 

&dual_timer0 {

status = "okay";

};

添加一个uart1 状态,使之OK。

 

修改好后,编译3519内核,然后烧录到目标板中进行测试。

内核编译命令:

cp arch/arm/configs/hi3519v101_big_little_defconfig .config

 

 

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- clean

 

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- menuconfig

 

make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- uImage

 

四、测试

烧录后内核启动log 如下:

Serial: AMBA PL011 UART driver

12100000.uart: ttyAMA0 at MMIO 0x12100000 (irq = 36, base_baud = 0) is a PL011 rev2

console [ttyAMA0] enabled

12101000.uart: ttyAMA1 at MMIO 0x12101000 (irq = 37, base_baud = 0) is a PL011 rev2

SCSI subsystem initialized

 

命令查看状态:

cat /proc/tty/driver/ttyAMA

 /home/ko_modify # cat /proc/tty/driver/ttyAMA

serinfo:1.0 driver revision:

0: uart:PL011 rev2 mmio:0x12100000 irq:36 tx:11451 rx:391 RTS|CTS|DTR|DSR|CD|RI

1: uart:PL011 rev2 mmio:0x12101000 irq:37 tx:495 rx:0 RTS|DTR|DSR|CD|RI
 

你可能感兴趣的:(hisi)