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