前面介绍了如何在 Tina 中添加新的板子及切换存储类型,本节介绍如何修改板子串口配置。
1、修改调试串口
Tina 调试串口 配置在 device/config/chips/t113/configs/evbemmc/sys_config.fex
文件中,可以修改 uart_para
变量来指定调试串口。
;----------------------------------------------------------------------------------
;uart configuration
;uart_debug_port |Boot串口控制器编号 |
;uart_debug_tx |Boot串口发送的GPIO配置|
;uart_debug_rx |Boot串口接收的GPIO配置 |
;----------------------------------------------------------------------------------
[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_debug_port
和 uart_debug_tx
、uart_debug_rx
。
T113-S3 uart0 可选引脚:
- UART0_TX: PF02/PE02
- UART0_RX: PF04/PE03
其中 PF02/PF04 是复用功能引脚,在 Function3 上。
更多配置说明可在 Tina_Linux_配置_开发指南.pdf
中找到。
2、修改 u-boot 配置
u-boot 配置文件名在 device/config/chips/t113/configs/evbemmc/BoardConfig.mk 文件中,可以修改 LICHEE_BRANDY_DEFCONF
变量来指定 u-boot 配置文件。
修改 lichee/brandy-2.0/u-boot-2018/configs/sun20iw1p1_defconfig
文件,添加
CONFIG_BAUDRATE=115200
CONFIG_SPECIFY_CONSOLE_INDEX=y
CONFIG_CONS_INDEX=1
CONFIG_SYS_NS16550=y
其中 CONFIG_CONS_INDEX
为串口号 +1
,这里我们使用的是 uart0,所以设置为 1。
3、修改 kernel 配置
- 修改设备树
device/config/chips/t113/configs/evbemmc/board.dts
文件,修改调试串口配置。
修改前:
&uart0 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart0_pins_a>;
pinctrl-1 = <&uart0_pins_b>;
status = "okay";
};
&uart1 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart1_pins_a>;
pinctrl-1 = <&uart1_pins_b>;
status = "disabled";
};
&uart2 {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart2_pins_a>;
pinctrl-1 = <&uart2_pins_b>;
status = "disabled";
};
&uart3 {
compatible = "allwinner,sun20iw1-dsp-uart";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart3_pins_a>;
pinctrl-1 = <&uart3_pins_a>;
status = "disabled";
};
可以根据硬件连接的实际情况设置 status
为 "okay"
或 "disable"
。
- 修改 uart 对应的 pin 配置
根据板子实际使用的调试串口修改 pin 脚配置,这里我们使用的是 uart0,所以修改uart0_pins_a
和uart0_pins_b
。
修改前:
uart0_pins_a: uart0_pins@0 { /* For mangopi board */
pins = "PE2", "PE3";
function = "uart0";
drive-strength = <10>;
bias-pull-up;
};
uart0_pins_b: uart0_pins@1 { /* For mangopi board */
pins = "PE2", "PE3";
function = "gpio_in";
};
修改为:
uart0_pins_a: uart0_pins@0 { /* For mangopi board */
pins = "PF2", "PF4";
function = "uart0";
drive-strength = <10>;
bias-pull-up;
};
uart0_pins_b: uart0_pins@1 { /* For mangopi board */
pins = "PF2", "PF4";
function = "gpio_in";
};
同时需要保证 uart0_pins
的引脚配置在内核设备树中未与其他配置冲突。
4、修改启动 bootargs
修改 device/config/chips/t113/configs/evbemmc/env.cfg
文件
#kernel command arguments
earlyprintk=sunxi-uart,0x02500000
initcall_debug=0
console=ttyS0,115200
earlyprintk=sunxi-uart,0x02500000 如需要修改为其他 uart 的地址,可查阅手册获取。
uart 地址可以在文件 t113-s3_user_manual.pdf
中找到。
修改完成后使用 muboot 命令重新编译并打包。
debug UART base address 修改
make kernel_menuconfig 找到 Kernel low-level debugging functions,修改寄存器地址
$ make kernel_menuconfig
[*] Kernel low-level debugging functions (read help!)
(0x02500C00) Physical base address of debug UART
(0xf2500C00) Virtual base address of debug UART
或直接修改 device/config/chips/t113/configs/evbemmc/linux-5.4/config-5.4
文件中
CONFIG_DEBUG_UART_PHYS=0x02500000
CONFIG_DEBUG_UART_VIRT=0xf2500000
ARM 平台需要修改该项,RISC-V 平台则不需要修改该项。
完成存储类型及串口切换后,重新编译、打包、烧录即可。
标签:uart0,S3,debug,修改,uart,T113,串口,pins From: https://blog.csdn.net/flyingcys/article/details/144312858