1、以太网卡移植问题
本人使用板子以太网phy为RTL8211F,修改以太网卡对应设备树之后,报错:
[ 74.661026] rk_gmac-dwmac fe2a0000.ethernet eth1: no phy found SIOCSIFFLAGS: No such device
[ 74.661101] rk_gmac-dwmac fe2a0000.ethernet eth1: stmmac_open: Cannot attach to PHY (error: -19)
已解决。
解决方法:
由于本人使用的板子上有两路以太网口,一路正常,另外一路RTL8211F不正常,排除驱动问题,将目标锁定在设备树配置上。通过与硬件图比对,发现问题是snps,reset-gpio配错了,硬件用的GPIO2_D6,DTS中配成了gpio3 RK_PA2,修正后问题解决。
&gmac1 {
phy-mode = "rgmii";
clock_in_out = "output";
snps,reset-gpio = <&gpio3 RK_PA2 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
/* Reset time is 20ms, 100ms for rtl8211f */
snps,reset-delays-us = <0 75000 100000>;
assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
assigned-clock-rates = <0>, <125000000>;
pinctrl-names = "default";
pinctrl-0 = <&gmac1m1_miim
&gmac1m1_tx_bus2
&gmac1m1_rx_bus2
&gmac1m1_rgmii_clk
&gmac1m1_rgmii_bus>;
tx_delay = <0x26>;
rx_delay = <0x00>;
phy-handle = <&rgmii_phy1>;
status = "okay";
};
2、串口收发问题
由于目前外接的串口板还没有,所以直接从核心板中4路串口分别引出tx、rx和地,使用板子系统内装minicom + ttl转USB方式,进行测试,发现其中一路串口出现板子只能接收不能发送的问题。
部分解决。
解决方法:检查了板子接线,确保串口管脚焊接正常;检查设备树该路串口管脚,确保该串口管脚没有其他设备用到;最后采用了自己编写的串口收发程序,发现能够正常收发,但确实minicom就存在只能收不能发的问题,待后续有时间再排查。
3、SPI 设备移植问题
用到了SPI Flash芯片,编译时一直报Warning (spi_bus_reg): /spi@fe300000/spiflash: SPI bus unit address format error, expected "0"
已解决。
解决方法:
设备树中查看fe300000对应是哪一路spi,然后看该路下挂的spi对应设备树,发现该路spi下挂的w25q128少写了地址,添加后,不警告。
w25q128@0 {
compatible = "jedec,spi-no