0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3588平台串口配置修改指南:切换至串口8

jf_44130326 来源:Linux1024 2026-02-01 16:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、背景与需求说明


嵌入式开发中,串口作为基础调试接口至关重要。本文档针对RK3588平台,详细介绍如何将系统默认串口修改为串口8UART8),包括U-Boot阶段和内核阶段的配置调整。该修改适用于需要使用额外串口进行调试或通信的场景,例如当默认串口被其他功能占用时,需重新映射控制台到串口8

二、修改涉及的关键文件与原理

2.1内核设备树配置(rk3588-linux.dtsi

--- a/kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi@@ -12,7 +12,7 @@aliases {    };    chosen: chosen {-        bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rw rootwait rcupdate.rcu_expedited=1 rcu_nocbs=all mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00800000@0x00800000(uboot)";+        bootargs = "earlycon=uart8250,mmio32,0xfeb50000 console=ttyFIQ0 console=ttyS8,1500000n8 irqchip.gicv3_pseudo_nmi=0 root=PARTUUID=614e0000-0000 rw rootwait rcupdate.rcu_expedited=1 rcu_nocbs=all mtdparts=sfc_nor:0x00040000@0x00180000(vnvm),0x00800000@0x00800000(uboot)";    };

关键修改说明

bootargs中新增console=ttyS8,1500000n8参数

ttyS8表示使用串口8作为控制台

1500000n8定义波特率为1500000,数据位8位,无校验位,1位停止位

earlycon=uart8250,mmio32,0xfeb50000用于早期控制台初始化,指定串口控制器基地址

2.2 U-Boot设备树配置(rk3588-u-boot.dtsi

--- a/u-boot/arch/arm/dts/rk3588-u-boot.dtsi+++ b/u-boot/arch/arm/dts/rk3588-u-boot.dtsi@@ -44,11 +44,26 @@@@ -160,6 +175,14 @@    status = "okay";};+&uart8 {+    clock-frequency = <24000000>;+    u-boot,dm-spl;+    pinctrl-names = "default";+    status = "okay";    +    pinctrl-0 = <&uart8m0_xfer>;+};+&hw_decompress {    u-boot,dm-spl;    status = "okay";@@ -304,6 +327,11 @@

关键修改说明

启用uart8设备节点:

clock-frequency = <24000000>:设置串口时钟频率为24MHz,用于波特率计算

u-boot,dm-spl:标记该串口用于U-Boot SPLSecondary Program Loader)阶段

pinctrl-0 = <&uart8m0_xfer>:指定串口8的引脚复用配置,需确保与硬件设计一致

该配置使U-Boot在启动阶段能够初始化并使用串口8

2.3 U-Boot CLI代码修改(cli.c

--- a/u-boot/common/cli.c+++ b/u-boot/common/cli.c@@-15,6+15,10@@#include#include#include+#include+#include+#include+#includeDECLARE_GLOBAL_DATA_PTR;@@-218,6+222,16@@ err:#ifndefCONFIG_CONSOLE_DISABLE_CLIvoidcli_loop(void){+    structudevice*uart_dev;+    writel(0x00ff00aa,0xfd5f8088);+    if(uclass_get_device_by_seq(UCLASS_SERIAL,8, &uart_dev))+        printf("uart: failed to get devicen");+    else+        printf("uart: got devicen");+    serial_dev_setbrg(uart_dev,1500000);+    +    gd->flags |= GD_FLG_SERIAL_READY;+    gd->cur_serial_dev = uart_dev;#ifdefCONFIG_HUSH_PARSER    parse_file_outer();    /* This point is never reached */

关键修改说明

新增头文件包含:serial.hdm.h等,用于串口设备管理

通过uclass_get_device_by_seq(UCLASS_SERIAL, 8, &uart_dev)获取串口8设备句柄

serial_dev_setbrg(uart_dev, 1500000)设置波特率为1500000

更新全局数据结构gd,标记串口已准备就绪并设置为当前串口设备

三、完整修改步骤与实现流程

3.1内核配置修改流程

1.定位设备树文件

进入内核源码目录:cd kernel/arch/arm64/boot/dts/rockchip/

2.修改bootargs参数

使用文本编辑器打开rk3588-linux.dtsi,在chosen节点中添加console=ttyS8,1500000n8,确保内核启动时使用串口8作为控制台。

3.2 U-Boot配置修改流程

1.定位U-Boot设备树文件

进入U-Boot源码目录:cd u-boot/arch/arm/dts/

2.启用串口8设备节点

打开rk3588-u-boot.dtsi,添加&uart8节点配置,包括时钟频率、引脚控制和状态设置,确保U-Boot阶段能初始化串口8

3.修改CLI代码初始化串口

进入U-Boot源码目录:cd u-boot/common/

打开cli.c,添加串口设备获取、波特率设置及全局数据更新逻辑,确保U-Boot命令行使用串口8

四、硬件连接与引脚配置说明

4.1串口8硬件连接要求

控制器基地址:根据设备树配置,串口8的基地址为0xfeb50000(由earlycon=uart8250,mmio32,0xfeb50000指定)

引脚复用:需确保uart8m0_xfer引脚配置与硬件设计一致,通常包括:

TXD8(发送引脚)

RXD8(接收引脚)

GND(接地)

五、验证与调试方法

5.1 U-Boot阶段验证

1.启动日志检查

连接串口8到调试终端(波特率15000008N1),重启设备后观察U-Boot输出:

若配置正确,U-Boot启动时会输出uart: got device日志

命令行提示符(如=>)应出现在串口8终端

1.串口设备查询

U-Boot命令行中执行:

printenvconsole# 应输出类似 "console=ttyS8,1500000"dev list | grep serial# 应显示串口 8 设备已注册

5.2内核阶段验证

1.内核日志检查

内核启动后,串口8应输出完整的启动日志(dmesg内容),并显示ttyS8设备初始化信息:

[  0.000000]console[ttyS8]enabled[  1.234567]serial8250.8: ttyS8 at MMIO0xfeb50000 (irq =123) is a16550A

1.串口设备测试

在系统中执行:

#检查串口设备是否存在

ls /dev/ttyS8

#测试串口通信(例如向串口8发送数据)

echo "Test Data" > /dev/ttyS8

5.3常见故障排除

无输出问题

a.检查硬件连接是否正确,引脚是否短路或虚接

b.确认串口8的时钟频率(24MHz)与波特率(1500000)计算是否正确

c.检查设备树中的status是否为"okay",确保设备未被禁用

波特率异常

确认serial_dev_setbrgconsole参数中的波特率一致

检查clock-frequency设置是否与硬件时钟匹配

通过以上步骤,可在RK3588平台成功将系统串口修改为串口8,实现U-Boot和内核阶段的串口重定向,满足特定硬件调试与通信需求。重要说明,uboot阶段的并没有完全修改为串口8,如需完全显示log,还需要修改其他,比如ddr.bin文件等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5209

    文章

    20625

    浏览量

    336758
  • 串口
    +关注

    关注

    15

    文章

    1626

    浏览量

    83307
  • RK3588
    +关注

    关注

    8

    文章

    585

    浏览量

    7540
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读

    瑞芯微RK3588开发板RK3588 EVB和RK3588S EVB解读 瑞芯微旗舰芯RK3588系列开发板受到广大开发者伙伴的关注和问询。针对相关的开发板功能、操作
    的头像 发表于 09-22 15:54 2.3w次阅读
    瑞芯微<b class='flag-5'>RK3588</b>开发板<b class='flag-5'>RK3588</b> EVB和<b class='flag-5'>RK3588</b>S EVB解读

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之屏参配置

    RK3588-MIPI屏幕调试笔记:RK3588-MIPI-DSI之屏参配置
    的头像 发表于 06-10 10:36 4823次阅读
    <b class='flag-5'>RK3588</b>-MIPI屏幕调试笔记:<b class='flag-5'>RK3588</b>-MIPI-DSI之屏参<b class='flag-5'>配置</b>

    RK3588-UART

    本文主要讲解如何关于RK3588开发板UART的使用和调试方法,包括UART作为普通串口和控制两种不同使用场景。
    的头像 发表于 06-10 10:38 3252次阅读
    <b class='flag-5'>RK3588</b>-UART

    RK3588 EVB 用户使用指南

    本文档主要介绍 RK3588 EVB 基本功能和硬件特性、多功能硬件配置、软件调试操作使用方法,旨在帮助调试人员更快、更准确地使用 RK3588 EVB,熟悉 RK3588 芯片开发应
    发表于 03-16 16:57

    TB-RK3588开发板Windows上串口调试与Linux主机调试说明

    1、TB-RK3588串口调试说明串口连接使用MicroUSB数据线(需自备)连接TB-RK3588X如下图位置,线缆另一端接电脑端。说明
    发表于 05-31 18:04

    有什么方法可以去修改RK3588默认的串口波特率吗

    开发过程我们一般都需要看串口log协助分析,以便分析对应的bug或者优化系统稳定性等问题,那每个平台串口波特率都有可能有一定的出入,不尽相同,而RK3588默认
    发表于 09-09 17:49

    通过以下代码修改RK3588的默认串口波特率

    开发过程我们一般都需要看串口log协助分析,以便分析对应的bug或者优化系统稳定性等问题,那每个平台串口波特率都有可能有一定的出入,不尽相同,而RK3588默认
    发表于 09-20 16:58

    基于RK3588平台的会议平板即将发布

    瑞芯微与宇视合作推出的会议平板即将发布,据官方测试,这款 RK3588 平板安兔兔跑分可达 55 万。 RK3588性能强大,RK3588平台针对平板瑞芯微有多款高端平板方案,
    的头像 发表于 10-09 16:13 3255次阅读
    基于<b class='flag-5'>RK3588</b><b class='flag-5'>平台</b>的会议平板即将发布

    rk3588rk3588s的区别

    rk3588rk3588s的区别 Rockchip是一家专业的半导体公司,成立于2001年,总部位于中国深圳,主要从事集成电路的设计、开发和销售。他们的热门产品RK3588RK3588
    的头像 发表于 08-15 16:44 2.1w次阅读

    rk3588是什么类型的芯片?

    、低功耗、高集成度等优点,被广泛应用于智能手机、智能家居、人工智能、工业控制等领域。 RK3588采用了积电的7nm制造工艺,核心配置为四个64位的Cortex-A76大核心和四个Cortex-A55
    的头像 发表于 08-15 17:04 8341次阅读

    rk3588参数详解 rk3588芯片参数

    的参数,以便为大家全面了解这款芯片。 1.基本参数 RK3588芯片是一款采用积电TSMC 8纳米工艺制造的SoC,集成了4个高性能的Arm Cortex-A76 CPU核心和4个低功耗
    的头像 发表于 08-21 17:16 4.5w次阅读

    rk3588是armv8吗?rk3588硬件资料

    rk3588是armv8吗?rk3588 硬件资料 RK3588是一款高性能处理器,是Rockchip公司推出的最新芯片。本文将详细介绍RK3588
    的头像 发表于 08-21 17:32 6188次阅读

    Banana Pi BPI-W3 RK3588平台驱动调试篇 [ PCIE篇二 ] - PCIE的开发指南

    Banana Pi BPI-W3 RK3588平台驱动调试篇 [ PCIE篇 ] - PCIE的开发指南(二)
    的头像 发表于 11-02 09:24 2150次阅读
    Banana Pi BPI-W3 <b class='flag-5'>RK3588</b><b class='flag-5'>平台</b>驱动调试篇 [ PCIE篇二 ] - PCIE的开发<b class='flag-5'>指南</b>

    PET_RK3588_P01开发板介绍

    一、PET_RK3588_P01 主板功能 二、PET_RK3588_P01 主板接口位置图 三、PET_RK3588_P01 主板详细参数 四、PET_RK3588_P01 主板硬件
    的头像 发表于 01-16 10:21 2544次阅读
    PET_<b class='flag-5'>RK3588</b>_P01开发板介绍

    北京迅为RK3588平台成功适配“望获”国产OS

    北京迅为RK3588平台成功适配“望获”国产OS
    的头像 发表于 04-09 15:35 1179次阅读
    北京迅为<b class='flag-5'>RK3588</b><b class='flag-5'>平台</b>成功适配“望获”国产OS