全志芯片Tina Linux 修改 UART 引脚、UART端口 (2)

时间:2022-11-02 12:05:38

场景二:使用UART3,需要从UART0改为UART3(PB6,PB7)

  1. 修改sys_config.fex(BOOT0与Uboot的串口)

sys_config.fex 的路径是 device/config/chips/t113/configs/evb1/sys_config.fex 中的 uart_debug_port

修改前:

[uart_para]
uart_debug_port = 0
uart_debug_tx   = port:PF02<3><1><default><default>
uart_debug_rx   = port:PF04<3><1><default><default>

修改后

[uart_para]
uart_debug_port = 3
uart_debug_tx   = port:PB06<7><1><default><default>
uart_debug_rx   = port:PB07<7><1><default><default>
  1. 修改设备树(Linux使用的串口输出)

路径:device/config/chips/t113/configs/evb1/board.dts

修改前

uart3_pins_a: uart3_pins@0 {
	pins = "PC6", "PC7";
	function = "uart0";
	drive-strength = <10>;
	allwinner,muxsel = <4>;
	bias-pull-up;
};

uart3_pins_b: uart3_pins@1 {
	pins = "PC6", "PC7";
	function = "gpio_in";
};

&uart0 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart0_pins_a>;
	pinctrl-1 = <&uart0_pins_b>; 
	status = "okay"; 
};

&uart3 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart3_pins_a>;
	pinctrl-1 = <&uart3_pins_b>;
	status = "disabled"; 
};

修改后

uart3_pins_a: uart3_pins@0 {
	pins = "PB6", "PB7";
	function = "uart0";
	drive-strength = <10>;
	allwinner,muxsel = <7>;
	bias-pull-up;
};

uart3_pins_b: uart3_pins@1 {
	pins = "PB6", "PB7";
	function = "gpio_in";
};

&uart0 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart0_pins_a>;
	pinctrl-1 = <&uart0_pins_b>; 
	status = "disabled";                               # 关闭UART0
};

&uart3 {
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&uart3_pins_a>;
	pinctrl-1 = <&uart3_pins_b>;
	status = "okay";                                   # 开启UART3
};
  1. 修改UBOOT CONSOLE INDEX

路径:brandy/brandy-2.0/u-boot-2018/configs/sun8iw20p1_defconfig 增加下列内容

CONFIG_SPECIFY_CONSOLE_INDEX=y
CONFIG_CONS_INDEX=4                            # UART 3+1 = 4 
  1. 修改启动bootargs

路径:device/config/chips/t113/configs/evb1/env.cfg

修改前

earlyprintk=sunxi-uart,0x02500000
initcall_debug=0
console=ttyS0,115200

修改后 earlyprintk=sunxi-uart,0x02500000 需要修改为 UART3 的地址,查阅手册可知为 0x02500C00 全志芯片Tina Linux 修改 UART 引脚、UART端口 (2)

earlyprintk=sunxi-uart,0x02500C00
initcall_debug=0
console=ttyS3,115200

注意 ARM 平台还需要设置Kernel,如下:

make kernel_menuconfig 找到 Kernel low-level debugging functions,修改寄存器地址

全志芯片Tina Linux 修改 UART 引脚、UART端口 (2)

RISC-V 不需要此操作

原贴链接:https://bbs.aw-ol.com/topic/1673/