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

相关推荐
HideF6 小时前
Linux
linux·服务器·网络
吠品6 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
Chery11407 小时前
高速ADC与精密DAC怎么选?DP9230D与DP8532D应用解析
嵌入式硬件·物联网·射频工程
Ruiery8 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
丰锋ff10 小时前
压缩命令笔记
linux
小李不想当小白10 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米11 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip
GeW11 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by2099912 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
尼喃12 小时前
662K/65Z5三脚稳压芯片规格书—PW6566B33/B30引脚功能
嵌入式硬件