UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Observer sonnart
Observer
961 次查看
注册日期: ‎09-05-2018

ZYNQ 7000 linux内核设备树如何配置EMIO的UART

转到解答

环境:pentalinux和bsp都是2017.7

UART0和UART1都是通过EMIO扩展的。

Image 2.png

生成BOOT.bin后,在uboot下,串口可以输入、输出。进入到内核中,停留在登陆的地方,键盘没响应。但是可以正常输出(拔插网线,屏幕会有打印),就是输入没有任何响应。

Image 3.png

内核的设备树串口PIN配置都是MIO的。

内核的设备树串口配置如下:

pinctrl_uart1_default: uart1-default {
mux {
groups = "uart1_10_grp";
function = "uart1";
};
 
conf {
groups = "uart1_10_grp";
slew-rate = <0>;
io-standard = <1>;
};
 
conf-rx {
pins = "MIO49";
bias-high-impedance;
};
 
conf-tx {
pins = "MIO48";
bias-disable;
};
};

 

问题:

1、内核设备树配置的串口PIN是MIO,vivado配置的是EMIO,为什么内核启动还可以输出?

2、内核设备树对于EMIO的UART设备如何配置?

 

在此先谢过!

 

 

 

0 项奖励
1 个已接受解答

已接受的解答
Xilinx Employee
Xilinx Employee
909 次查看
注册日期: ‎03-27-2013

回复: ZYNQ 7000 linux内核设备树如何配置EMIO的UART

转到解答

像串口的话比较简单,在EMIO中是通过PL直接往外对接的,理论上和用MIO差别不大。

在FSBL阶段已经完成配置了,一般不需要在kernel阶段对此做特别的配置。

双uart的话建议在aliases中指定优先的打印输出,我这边有个比较老版本的example如下:

aliases {
ethernet0 = &gem0;
serial0 = &uart0;
serial1 = &uart1;
spi0 = &qspi;
};

另外建议在SDK用standalone的简单代码测试下同样硬件设计的输入输出,保证硬件侧没有问题。

Best Regards,
Jason
-----------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
-----------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
4 条回复4
Xilinx Employee
Xilinx Employee
910 次查看
注册日期: ‎03-27-2013

回复: ZYNQ 7000 linux内核设备树如何配置EMIO的UART

转到解答

像串口的话比较简单,在EMIO中是通过PL直接往外对接的,理论上和用MIO差别不大。

在FSBL阶段已经完成配置了,一般不需要在kernel阶段对此做特别的配置。

双uart的话建议在aliases中指定优先的打印输出,我这边有个比较老版本的example如下:

aliases {
ethernet0 = &gem0;
serial0 = &uart0;
serial1 = &uart1;
spi0 = &qspi;
};

另外建议在SDK用standalone的简单代码测试下同样硬件设计的输入输出,保证硬件侧没有问题。

Best Regards,
Jason
-----------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
-----------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
Observer sonnart
Observer
903 次查看
注册日期: ‎09-05-2018

回复: ZYNQ 7000 linux内核设备树如何配置EMIO的UART

转到解答

非常感谢热心的回答。

在UBOOT下是可以输入和输出的。

我是用的内核arch/arm/dts/zynq-zc706.dts编译的dtb文件

我在dts中添加了uart1的配置,还是无法输入。

在dts中,必须要配置UART的MIO管脚,如果不配置的话,内核会自动配置UART0为50、51,UART1为48、49

设备树文件和屏幕打印信息请参考附件。

 

0 项奖励
Observer sonnart
Observer
857 次查看
注册日期: ‎09-05-2018

回复: ZYNQ 7000 linux内核设备树如何配置EMIO的UART

转到解答

确实不需要配置。使用zedboard的dts,设备做了增删,可以输入了。第二个网卡也是EMIO的,也不需要配置管脚吧?

0 项奖励
Xilinx Employee
Xilinx Employee
848 次查看
注册日期: ‎03-27-2013

回复: ZYNQ 7000 linux内核设备树如何配置EMIO的UART

转到解答

GEM的话,我的理解管脚也不需要在DTS中配。

但是PHY的类型可能和使用MIO时不同,这个可能要在DTS中体现。

如果有需要的话,你可以详细描述下你的问题,新起一个帖子讨论下。

Best Regards,
Jason
-----------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
-----------------------------------------------------------------------------------------------
0 项奖励