【rk3506】U-Boot串口时钟未配置,导致串口彻底失效

问题描述

这个坑我踩得特别隐蔽,足足排查了很久!

RK3506这类瑞芯微SoC的时钟树管控非常严格:设备树里串口节点status已经设为okay、引脚pinctrl配置也完全正确,但串口就是完全没有数据输出,打印空白、无法通信。

核心原因

U-Boot设备树中没有显式配置串口时钟、时钟频率和门控时钟源。

如果uart3节点缺失assigned-clocks、assigned-clock-rates配置,或是没有绑定正确的clocks时钟源,底层CLK驱动初始化时,会判定串口时钟频率为0、时钟源无效,直接无法使能串口外设。

简单来说,时钟源彻底断供,串口硬件逻辑电路完全处于静默状态,哪怕引脚和状态配置再正确,也完全无法工作。

给大家贴出我最终调试通过的完整设备树配置,uboot阶段串口时钟频率必须手动配置,缺一不可:

powershell 复制代码
&uart3 {
	status = "okay";
	pinctrl-names = "default";
	clock-frequency = <24000000>; // uboot下一定要配置串口时钟频率
	pinctrl-0 = <&rm_io10_uart3_tx &rm_io11_uart3_rx>;
};

在调试U-Boot功能、打印日志、串口交互时,如果遇到串口不工作,优先排查时钟配置,不要盲目排查引脚和驱动逻辑,这是瑞芯微平台极易忽略的关键细节!

相关推荐
小李不想当小白8 分钟前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb
新晨单片机设计42 分钟前
S004R-基于STM32单片机智能门禁系统(密码、指纹、人脸、刷卡、蓝牙)【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件·proteus
是翎1 小时前
2026 Agent Eval 全景图:从“会做”到“值得部署”
人工智能·驱动开发·深度学习·开源协议·imagen
桀人1 小时前
MCU系统架构——总线——统一编址
stm32·单片机·嵌入式硬件
天天喝旺仔1 小时前
Linux 性能排查实战:用 perf、strace 与火焰图定位 CPU、内存与 IO 瓶颈
linux·性能优化·运维开发
LuminousCPP1 小时前
Linux系统编程(二):从目录树到命令执行|路径、环境变量、alias 与文件操作入门
linux·经验分享·笔记
第十人i1 小时前
Linux 系统初始化配置清单:新服务器快速部署
linux·服务器
LongRunning1 小时前
【Linux】RK3568-OpenCV+YOLO(七)
linux
j7~2 小时前
【Linux】三十八.C++ 手写 HTTP 服务器:裸 socket + fork 多进程,从 HTTP 报文解析到浏览器打开网页
linux·网络·网络协议·学习·http·网络编程
可乐鸡翅好好吃2 小时前
通讯协议--硬件模拟和软件模拟
stm32·嵌入式硬件