20250321在荣品的PRO-RK3566开发板的buildroot系统下使用UART1

20250321在荣品的PRO-RK3566开发板的buildroot系统下使用UART1
2025/3/21 17:27


缘起:需要在荣品的PRO-RK3566开发板/产品的buildroot系统下使用UART1。
根据DTS文件,很容易知道UART被被用作AP6256的UART1接口了。直接全部屏蔽掉。

@余顺 我司RK3566的buildroot项目不需要WIFI/BT AP6256,请问如何彻底关闭?
BT用的UART1用作 通讯用。直接关闭AP6256以免潜在的隐患

可以 通过./build.sh kernle-config 查看对应的驱动是否是在内核加载的
要从根源上禁止掉,启动的加载系统的时候是否有insmod bcmdhd.ko,可以找这个etc下的脚本,或wlan 相关的脚本

代码修改的部分:
Z:\source\kernel\arch\arm64\boot\dts\rockchip\rk356x\pro-rk3566.dts

&i2c1 {
    status = "okay";
};

&i2c4 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&i2c4m1_xfer>;

        rtc@51 {
                status = "okay";
                compatible = "rtc,hym8563";
                reg = <0x51>;
        };
};


&usbdrd_dwc3 {
    dr_mode = "host";
    extcon = <&usb2phy0>;
    status = "okay";
};

&uart1 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart1m0_xfer>;
};

&uart3 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&uart3m0_xfer>;
};

&uart6 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&uart6m0_xfer>;
};

&uart7 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&uart7m0_xfer>;
};

&uart9 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&uart9m0_xfer>;
};

&spi1 {
    status = "okay";

    spi1_dev@0 {
        compatible = "rockchip,spidev";
        reg = <0>;
        spi-max-frequency = <12000000>;
        spi-lsb-first;
    };

};


&sdmmc2 {
    max-frequency = <150000000>;
    supports-sdio;
    bus-width = <4>;
    disable-wp;
    cap-sd-highspeed;
    cap-sdio-irq;
    keep-power-in-suspend;
    mmc-pwrseq = <&sdio_pwrseq>;
    non-removable;
    pinctrl-names = "default";
    pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
    sd-uhs-sdr104;
    status = "okay";
};

//&uart1 {
//    status = "okay";
//    pinctrl-names = "default";
//    pinctrl-0 = <&uart1m1_xfer &uart1m1_ctsn>;
//};


//&wireless_bluetooth {
//    uart_rts_gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_LOW>;
//    pinctrl-names = "default", "rts_gpio";
//    pinctrl-0 = <&uart1m1_rtsn>;
//    pinctrl-1 = <&uart1_gpios>;
//    BT,reset_gpio    = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
//    BT,wake_gpio     = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
//    BT,wake_host_irq = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>;
//    status = "okay";
//};

&wireless_wlan {
    pinctrl-names = "default";
    pinctrl-0 = <&wifi_host_wake_irq>;
    WIFI,host_wake_irq = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
};


        
&rk_headset {
        status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&hp_det>;
    headset_gpio = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
    };

&pinctrl {
    rp-pins {
        rp_bat_pins: rp-bat-pins {
            rockchip,pins =
                <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
                <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
        };
    };
    
    
    headphone {
        hp_det: hp-det {
            rockchip,pins = <3 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>;
        };
    };

    
    wireless-wlan {
        wifi_host_wake_irq: wifi-host-wake-irq {
            rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
        };
    };

    //wireless-bluetooth {
    //    uart1_gpios: uart1-gpios {
    //        rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
    //    };
    //};

};

&rk809_codec {
    mic-in-differential;
};


确认GPIO口的状态:
pin 75 (gpio2-11): (MUX UNCLAIMED) gpio2:75
pin 76 (gpio2-12): (MUX UNCLAIMED) (GPIO UNCLAIMED)

pin 77 (gpio2-13): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-pins
pin 78 (gpio2-14): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-pins
pin 79 (gpio2-15): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-pins
pin 80 (gpio2-16): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-cs0
pin 81 (gpio2-17): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-pins
pin 82 (gpio2-18): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-pins
pin 83 (gpio2-19): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-pins
pin 84 (gpio2-20): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-cs0
pin 85 (gpio2-21): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-cs1
pin 86 (gpio2-22): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-cs1
pin 87 (gpio2-23): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 88 (gpio2-24): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 89 (gpio2-25): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 90 (gpio2-26): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 91 (gpio2-27): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 92 (gpio2-28): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 93 (gpio2-29): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 94 (gpio2-30): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 95 (gpio2-31): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 96 (gpio3-0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 97 (gpio3-1): (MUX UNCLAIMED) gpio3:97
pin 98 (gpio3-2): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 99 (gpio3-3): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 100 (gpio3-4): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 101 (gpio3-5): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 102 (gpio3-6): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-clk
pin 103 (gpio3-7): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-clk
pin 104 (gpio3-8): fe010000.ethernet (GPIO UNCLAIMED) function eth1 group eth1m0-pins
pin 105 (gpio3-9): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rx-bus2
pin 106 (gpio3-10): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rx-bus2
pin 107 (gpio3-11): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rx-bus2
pin 108 (gpio3-12): (MUX UNCLAIMED) gpio3:108
pin 109 (gpio3-13): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-tx-bus2
pin 110 (gpio3-14): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-tx-bus2
pin 111 (gpio3-15): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-tx-bus2
pin 112 (gpio3-16): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-clkinout
pin 113 (gpio3-17): (MUX UNCLAIMED) gpio3:113
pin 114 (gpio3-18): (MUX UNCLAIMED) gpio3:114
pin 115 (gpio3-19): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 116 (gpio3-20): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-miim
pin 117 (gpio3-21): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-miim
pin 118 (gpio3-22): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 119 (gpio3-23): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 120 (gpio3-24): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 121 (gpio3-25): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 122 (gpio3-26): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-cmd
pin 123 (gpio3-27): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-clk
pin 124 (gpio3-28): wireless-wlan (GPIO UNCLAIMED) function wireless-wlan group wifi-host-wake-irq
pin 125 (gpio3-29): sdio-pwrseq gpio3:125 function sdio-pwrseq group wifi-enable-h
pin 126 (gpio3-30): fe650000.serial (GPIO UNCLAIMED) function uart1 group uart1m1-xfer
pin 127 (gpio3-31): fe650000.serial (GPIO UNCLAIMED) function uart1 group uart1m1-xfer


pin 75 (gpio2-11): fe650000.serial gpio2:75 function uart1 group uart1m0-xfer
pin 76 (gpio2-12): fe650000.serial (GPIO UNCLAIMED) function uart1 group uart1m0-xfer

pin 77 (gpio2-13): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-pins
pin 78 (gpio2-14): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-pins
pin 79 (gpio2-15): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-pins
pin 80 (gpio2-16): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-cs0
pin 81 (gpio2-17): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-pins
pin 82 (gpio2-18): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-pins
pin 83 (gpio2-19): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-pins
pin 84 (gpio2-20): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-cs0
pin 85 (gpio2-21): fe630000.spi (GPIO UNCLAIMED) function spi2 group spi2m0-cs1
pin 86 (gpio2-22): fe620000.spi (GPIO UNCLAIMED) function spi1 group spi1m0-cs1
pin 87 (gpio2-23): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 88 (gpio2-24): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 89 (gpio2-25): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 90 (gpio2-26): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 91 (gpio2-27): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 92 (gpio2-28): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 93 (gpio2-29): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 94 (gpio2-30): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 95 (gpio2-31): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 96 (gpio3-0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 97 (gpio3-1): (MUX UNCLAIMED) gpio3:97
pin 98 (gpio3-2): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 99 (gpio3-3): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 100 (gpio3-4): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 101 (gpio3-5): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-bus
pin 102 (gpio3-6): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-clk
pin 103 (gpio3-7): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rgmii-clk
pin 104 (gpio3-8): fe010000.ethernet (GPIO UNCLAIMED) function eth1 group eth1m0-pins
pin 105 (gpio3-9): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rx-bus2
pin 106 (gpio3-10): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rx-bus2
pin 107 (gpio3-11): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-rx-bus2
pin 108 (gpio3-12): (MUX UNCLAIMED) gpio3:108
pin 109 (gpio3-13): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-tx-bus2
pin 110 (gpio3-14): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-tx-bus2
pin 111 (gpio3-15): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-tx-bus2
pin 112 (gpio3-16): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-clkinout
pin 113 (gpio3-17): (MUX UNCLAIMED) gpio3:113
pin 114 (gpio3-18): (MUX UNCLAIMED) gpio3:114
pin 115 (gpio3-19): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 116 (gpio3-20): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-miim
pin 117 (gpio3-21): fe010000.ethernet (GPIO UNCLAIMED) function gmac1 group gmac1m0-miim
pin 118 (gpio3-22): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 119 (gpio3-23): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 120 (gpio3-24): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 121 (gpio3-25): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-bus4
pin 122 (gpio3-26): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-cmd
pin 123 (gpio3-27): fe000000.dwmmc (GPIO UNCLAIMED) function sdmmc2 group sdmmc2m0-clk
pin 124 (gpio3-28): wireless-wlan (GPIO UNCLAIMED) function wireless-wlan group wifi-host-wake-irq
pin 125 (gpio3-29): sdio-pwrseq gpio3:125 function sdio-pwrseq group wifi-enable-h
pin 126 (gpio3-30): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 127 (gpio3-31): (MUX UNCLAIMED) (GPIO UNCLAIMED)


完整的LOG:

串口终端发送:
5aA*E
35 61 41 2A 45 

串口终端接收:
rpDZdocuWIKI


root@rk3566-buildroot:/# 
root@rk3566-buildroot:/# ll
total 112
drwxr-xr-x  24 root root  4096 Aug  4 17:28 ./
drwxr-xr-x  24 root root  4096 Aug  4 17:28 ../
drwxr-xr-x   3 root root  4096 Aug  4 17:03 .cache/
drwx------   3 root root  4096 Aug  4 17:28 .config/
-rw-r--r--   1 root root     0 Aug  4 17:38 .resized
-rw-r--r--   1 root root     0 Mar 12  2025 .skip_fsck
-rw-r--r--   1 root root     0 Aug  4  2017 640x512-at600.mp4
lrwxrwxrwx   1 root root     7 Mar 21  2025 bin -> usr/bin/
-rw-r--r--   1 root root   489 Mar 12  2025 busybox.fragment
lrwxrwxrwx   1 root root     8 Mar 21  2025 data -> userdata/
drwxr-xr-x  15 root root  4940 Aug  4 17:00 dev/
drwxr-xr-x  25 root root  4096 Aug  4 17:38 etc/
drwxr-xr-x   2 root root  4096 Mar 21  2025 info/
lrwxrwxrwx   1 root root     7 Mar 21  2025 lib -> usr/lib/
lrwxrwxrwx   1 root root     3 Mar 21  2025 lib64 -> lib/
lrwxrwxrwx   1 root root    11 Mar 21  2025 linuxrc -> bin/busybox*
drwx------   2 root root 16384 Mar 21  2025 lost+found/
drwxr-xr-x  11 root root  4096 Mar 21  2025 media/
drwxr-xr-x   5 root root  4096 Mar 21  2025 mnt/
drwxr-xr-x   2 root root  4096 Mar 21  2025 oem/
drwxr-xr-x   3 root root  4096 Mar 21  2025 opt/
dr-xr-xr-x 214 root root     0 Aug  4 17:00 proc/
drwxr-xr-x  16 root root  4096 Mar 21  2025 rockchip-test/
drwx------   2 root root  4096 Mar 12  2025 root/
drwxr-xr-x   7 root root  4096 Mar 12  2025 rp_stress_test/
drwxr-xr-x  31 root root  4096 Mar 12  2025 rp_test/
drwxr-xr-x  11 root root   520 Aug  4 17:00 run/
lrwxrwxrwx   1 root root     8 Mar 21  2025 sbin -> usr/sbin/
lrwxrwxrwx   1 root root    10 Mar 21  2025 sdcard -> mnt/sdcard/
dr-xr-xr-x  14 root root     0 Aug  4 17:00 sys/
drwxr-xr-x   3 root root  4096 Mar 21  2025 system/
drwxrwxrwt   6 root root   280 Aug  4 17:00 tmp/
-rwxr-xr-x   1 root root 18608 Aug  4 17:38 uart_test*
lrwxrwxrwx   1 root root     9 Mar 21  2025 udisk -> mnt/udisk/
drwxr-xr-x   3 root root  4096 Aug  4 17:38 userdata/
drwxr-xr-x   8 root root  4096 Mar 21  2025 usr/
drwxr-xr-x   6 root root  4096 Mar 21  2025 var/
lrwxrwxrwx   1 root root     6 Mar 21  2025 vendor -> system/
root@rk3566-buildroot:/# 
root@rk3566-buildroot:/# cd /dev
root@rk3566-buildroot:/dev# 
root@rk3566-buildroot:/dev# ll ttyS*
crw-rw---- 1 root dialout 4, 65 Aug  4 17:00 ttyS1

crw-rw---- 1 root dialout 4, 67 Aug  4 17:00 ttyS3
crw-rw---- 1 root dialout 4, 70 Aug  4 17:00 ttyS6
crw-rw---- 1 root dialout 4, 71 Aug  4 17:00 ttyS7
crw-rw---- 1 root dialout 4, 73 Aug  4 17:00 ttyS9
root@rk3566-buildroot:/dev# 
root@rk3566-buildroot:/dev# root@ok3588:/# ./uart_test /dev/ttyS1 115200 8 0 1^C
root@rk3566-buildroot:/dev# 
root@rk3566-buildroot:/dev# cd /
root@rk3566-buildroot:/# 
root@rk3566-buildroot:/# ./uart_test /dev/ttyS1 115200 8 0 1
[ 3000.629727] of_dma_request_slave_channel: dma-names property of node '/serial@fe650000' missing or empty
Enter data to write (or 'q' to quit): [ 3000.629777] dw-apb-uart fe650000.serial: failed to request DMA, use interrupt mode
Read Thread: Read 5 bytes: 0x35, 0x61, 0x41, 0x2a, 0x45, 
Read Thread: Read 5 bytes: 0x35, 0x61, 0x41, 0x2a, 0x45, 
rp^HDZdocuWIKI
Write Thread: Wrote 14 bytes: rDZdocuWIKI

Enter data to write (or 'q' to quit): 


参考资料:
https://blog.youkuaiyun.com/weixin_42098934/article/details/143893131
RK356x-10:串口(uart)配置与调试


https://zhuanlan.zhihu.com/p/644415360
瑞芯微Core 3566系列:使用UART

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值