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

相关推荐
渡我白衣1 小时前
深入理解 Transformer:Transformer 究竟是什么?
java·linux·开发语言·c++·人工智能·深度学习·transformer
anew___3 小时前
GPIO 输入输出——按键、LED 与蜂鸣器
单片机·嵌入式硬件
xu_wenming8 小时前
嵌入式软件架构中的6种解耦艺术
c语言·驱动开发·嵌入式硬件·架构
sramdram8 小时前
国产32位mcu微控制器高速风筒方案
单片机·嵌入式硬件·32位mcu·mcu微控制器·国产32位mcu
单片机仿真设计8 小时前
【proteus仿真】基于STM32单片机直流电机控制设计(仿真图+程序)
stm32·单片机·嵌入式硬件·proteus·毕设
光电的一只菜鸡8 小时前
ubuntu之坑(二十)——VMware虚拟机系统无法正常进入如何处理
linux·运维·ubuntu
天空'之城8 小时前
单片机基础核心知识点汇总(十八)
单片机·嵌入式硬件
luiyarch9 小时前
汽车电子ISO 26262功能安全系列(第17期):系统集成与测试——验证系统级安全机制
嵌入式硬件·安全·车载系统·汽车
你住过的屋檐10 小时前
【Nginx】linux上安装nginx
linux·运维·nginx
宵时待雨10 小时前
linux笔记归纳17:传输层协议UDP
linux·笔记·udp