瑞芯微Rockchip开发者社区
直播中

雅博电子科技

12年用户 548经验值
擅长:2223
私信 关注
[问答]

如何将RK3288开发板的调试串口uart1改成uart3呢

如何将RK3288开发板的调试串口uart1改成uart3呢?有哪些具体步骤?

回帖(1)

黄乃康

2022-3-3 15:36:24
Platform: ROCKCHIP

Chip: RK3288

OS: Android7.1.2

Kernel: 4.4.143

第一次接触底层开发,收到一个任务:将调试串口uart1 改成 uart3;RK3288与普通设备不一样,它将debug uart和普通uart区分开来,提供了fiq debugger功能,
debug uart的初始化集成到了fiq debugger代码中完成,不过uart的初始化
方法还是遵循linux的uart初始化标准,包括tty driver分配,注册, ops的设置等.

具体改动如下:

U-boot修改



  • build.sh里的UBOOT_DEFCONFIG=rk3288_secure_defconfig
    到对应的rk3288_secure_defconfig(u-boot/configs)文件进行设置


CONFIG_SYS_EXTRA_OPTIONS="RKCHIP_RK3288,PRODUCT_MID,NORMAL_WORLD,SECOND_LEVEL_BOOTLOADER,UART_NUM=UART_CH3"
CONFIG_ARM=y
CONFIG_ROCKCHIP_ARCH32=y
CONFIG_PLAT_RK32XX=y
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set

2.u-boot/include/configs/rk_default_config.h

/* rk serial module */
#define        CONFIG_RK_UART
#ifndef CONFIG_UART_NUM
#define CONFIG_UART_NUM                        UART_CH3
#endif

Kernel修改

1.build.sh里KERNEL_DEFCONFIG=rockchip_defconfig
到对应的rockchip_defconfig(kernel/arch/arm/configs)文件进行修改

CONFIG_ARM_KERNMEM_PERMS=y
CONFIG_RK_DEBUG_UART=3/*add*/

2.build.sh里KERNEL_DTS=videobox-hp
到对应设备树文件videobox-hp.dts(kernel/arch/arm/boot/dts/rk3288)如果该文件里面没有fiq-debugger就到该文件里包含的设备文件去查找fiq-debugger,找到后对其修改

/dts-v1/;
#include "rk3288-evb.dtsi"
#include "rk3288-android.dtsi"

修改1

        fiq-debugger {
                compatible = "rockchip,fiq-debugger";
                interrupts = ;
                rockchip,serial-id = <3>;/*改为串口3*/
                rockchip,wake-irq = <0>;
                rockchip,irq-mode-enable = <0>;  /* If enable uart uses irq instead of fiq */
                rockchip,baudrate = <115200>;  /* Only 115200 and 1500000 */
                pinctrl-names = "default";
                pinctrl-0 = <&uart3_xfer>;/*改为串口3*/
                status="okay";
        };
      

修改2:chosen 下 将原来的地址修改为你要的串口地址;查看rk3288.dtsi中uart3为0xff1b0000

        chosen {
                bootargs = "earlycon=uart8250,mmio32,0xff1b0000 vmalloc=496M";
        };

修改3:将某普通串口改为调试串口,需在板级设备树文件将其串口关闭,同样见build.sh里的设备树文件

&uart3 {
        status = "disabled";
};

修改后编译验证即可;验证过可行。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分