串口配置没有生效的问题(主要是uart1)
收藏回复举报
串口配置没有生效的问题(主要是uart1)
t('forum.solved') 已解决
发表于2026-02-04 13:23:29
0 查看

首先通过查询,得到Atlas200 I的ID

cke_1236.png

然后,解压Ascend310B-source,修改Ascend310B-source/dtb/dts/hi1910b/hi1910BL/下的文件hi1910B-asic-M150-B51.dts。,新增并修改内容如下:

uart1: uart@82220000 {
                compatible = "arm,pl011", "arm,primecell";
                reg = < 0x00 0x82220000 0x00 0x1000 >;
                interrupts = < 0x00 0xaa 0x04 >;
                current-speed = < 0x1c200 >;
                arm,primecell-periphid = <0x00241011>;
                clocks = <&refclk150M>;
                clock-names = "apb_pclk";
                pinctrl-names = "default", "idle";
                pinctrl-0 = <&uart1_tx_pmx_func &uart1_rx_pmx_func>;
                pinctrl-1 = <&uart1_tx_pmx_idle &uart1_rx_pmx_idle>;
        };

        uart2: uart@82230000 {
                compatible = "arm,pl011", "arm,primecell";
                reg = < 0x00 0x82230000 0x00 0x1000 >;
                interrupts = < 0x00 0xab 0x04 >;
                current-speed = < 0x1c200 >;
                arm,primecell-periphid = <0x00241011>;
                clocks = <&refclk150M>;
                clock-names = "apb_pclk";
                pinctrl-names = "default", "idle";
                pinctrl-0 = <&uart2_tx_pmx_func &uart2_rx_pmx_func >;
                pinctrl-1 = <&uart2_tx_pmx_idle &uart2_rx_pmx_idle >;
        };
        
        uart3: uart@82240000 {
                compatible = "arm,pl011", "arm,primecell";
                reg = < 0x00 0x82240000 0x00 0x1000 >;
                interrupts = < 0x00 0xac 0x04 >;
                current-speed = < 0x1c200 >;
                arm,primecell-periphid = <0x00241011>;
                clocks = <&refclk150M>;
                clock-names = "apb_pclk";
                pinctrl-names = "default", "idle";
                pinctrl-0 = <&uart3_tx_pmx_func &uart3_rx_pmx_func>;
                pinctrl-1 = <&uart3_tx_pmx_idle &uart3_rx_pmx_idle>;
        };

        uart6: uart@82250000 {
                compatible = "arm,pl011", "arm,primecell";
                reg = < 0x00 0x82250000 0x00 0x1000 >;
                interrupts = < 0x00 0xad 0x04 >;
                current-speed = < 0x1c200 >;
                arm,primecell-periphid = <0x00241011>;
                clocks = <&refclk150M>;
                clock-names = "apb_pclk";
                pinctrl-names = "default", "idle";
                pinctrl-0 = <&uart6_tx_pmx_func &uart6_rx_pmx_func >;
                pinctrl-1 = <&uart6_tx_pmx_idle &uart6_rx_pmx_idle >;
        };

同时,修改Ascend310B-source/dtb/dts/hi1910b/hi1910BL/product/hi1910B-pinctrl-M100-B51.dtsi下的,新增并修改内容如下:

uart1_tx_pmx_func: uart1_tx_pmx_func {
			pinctrl-single,pins = <0x38    0x0>;  
		};
		uart1_tx_pmx_idle: uart1_tx_pmx_idle {
			pinctrl-single,pins = <0x38    0x0>;  
		};
		uart1_rx_pmx_func: uart1_rx_pmx_func {
			pinctrl-single,pins = <0x3C    0x0>; 
		};
		uart1_rx_pmx_idle: uart1_rx_pmx_idle {
			pinctrl-single,pins = <0x3C    0x0>; 
		};

		uart2_tx_pmx_func: uart2_tx_pmx_func {
			pinctrl-single,pins = <0x40    0x0>;
		};

		uart2_tx_pmx_idle: uart2_tx_pmx_idle {
			pinctrl-single,pins = <0x40    0x0>;
		};

		uart2_rx_pmx_func: uart2_rx_pmx_func {
			pinctrl-single,pins = <0x44    0x0>;
		};

		uart2_rx_pmx_idle: uart2_rx_pmx_idle {
			pinctrl-single,pins = <0x44    0x0>;
		};
		
		uart3_tx_pmx_func: uart3_tx_pmx_func {
			pinctrl-single,pins = <0x50    0x0>;  
		};
		uart3_tx_pmx_idle: uart3_tx_pmx_idle {
			pinctrl-single,pins = <0x50    0x0>;  
		};
		uart3_rx_pmx_func:uart3_rx_pmx_func {
			pinctrl-single,pins = <0x54    0x0>; 
		};
		uart3_rx_pmx_idle: uart3_rx_pmx_idle {
			pinctrl-single,pins = <0x54    0x0>; 
		};
		
		uart6_tx_pmx_func: uart6_tx_pmx_func {
			pinctrl-single,pins = <0x5C    0x2>;  
		};
		uart6_tx_pmx_idle: uart6_tx_pmx_idle {
			pinctrl-single,pins = <0x5C    0x2>;  
		};
		uart6_rx_pmx_func: uart6_rx_pmx_func {
			pinctrl-single,pins = <0x58    0x2>; 
		};
		uart6_rx_pmx_idle: uart6_rx_pmx_idle {
			pinctrl-single,pins = <0x58    0x2>; 
		};
	};

修改后,进行编译、导入到Atals200I,生效。最后reboot后,检查:

dmesg | grep -i 'tty\|serial'

结果显示如下:

cke_119321.png

可以看到,uart1没有生效。

请问是哪里出问题呢?应该如何解决呢?

我要发帖子