Linux

撰写于 2026
  • SoC 板级 Bring-up 工程手册

    2026年07月30日 在 Linux

    从硬件三要素,到用证据逼出根因。 这份手册是我在 RK3568、RK3588 上做过 GMAC、显示(LVDS/MIPI/HDMI)、USB、PCIe 等多个模块的 bring-up 之后,回头总结出来的一套东西。它已经脱离了任何单一模块,是我下次面对一颗陌生 SoC、一个陌生外设时,脑子里第一时间会浮现的操作主线。 我把以前拆散写过的几篇笔记(电源/时钟/复位、硬件分层架构、dts 三级节点、显示 SOP)全部融进了这条主线——因为它们本来就是同一条脉络上被拆下来的零件。 一、先讲两条底层认 …

    更多

  • 不靠猜:如何用 TRM 推导出 PCIe 模块的问题

    2026年07月29日 在 Linux

    这是我在 RK3588 上做 PCIe 3.0 bring-up 时的一段真实调试经过。调试的结果是硬件出问题,对我来说,这比把模块调通更有意义,因此出错时自己被倒逼反复的死抠每一个路径上遇到的技术细节,直到完成,比起轻松的调通,其实我对rk3588的pcie模块理解得更深。重要的是:整个过程里,我每一步都拿得出证据,说清楚"卡在哪、为什么卡、下一条路该往哪走"。 这篇文章的前 70% 是第一人称的时间线复盘(我怎么一步步逼近根因、走过哪些弯路),后 30% 是我从这次经历 …

    更多

撰写于 2025
  • Rockchip显示子系统关键概念解析

    2025年08月18日 在 Linux

    DTS中"帧率"的计算公式 一个模式mode的帧率原来并不是直接以一个字段的形式写到timing里的,而是靠时钟去计算 计算公式如下: $$ \begin{aligned} \text{Htotal} &= (\text{hsync\_len} + \text{hfront\_porch} + \text{hback\_porch} + \text{hactive}) \\ \text{Vtotal} &= (\text{vsync\_len} + …

    更多

  • LCDs(lvds) on RK3568 Bring-Up 数据流研究

    2025年08月18日 在 Linux

    背景知识 参考:SoC 板级 Bring-up 工程手册(其中「底层验证」一节即由显示接口调试 SOP 提炼而来) 参考:Rockchip显示子系统关键概念解析 举例: 以lvds为例 数据流-(硬件的视角) 好了,这一步就是要确定硬件是怎么接的,我们直接梳理整个数据流的图形 1. 数据从内存->vop 不论是从外设进来的,还是emmc上的, 都要搬进内存.所以数据流的起点是内存. 这里从内存给到vop里配置的那个具体的vp.在dts里配置vop的代码如下: …

    更多

  • How-to: RK3568下强制HDMI的配置

    2025年08月18日 在 Linux

    How-to:hdmi keep connected no matter what 原理图: 检测: 不是用gpio控制的 不管是设置hpd-state还是force_hpd;都是不起作用 display-timings 也不行 接下来就得考虑改变cmdline了…这是唯一可用的方式 解决办法(成功) 打开kernel/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c 修改函数dw_hdmi_phy_read_hpd 修改为如下: enum …

    更多

  • GMAC Bring Up Work Flow

    2025年07月25日 在 Linux

    1. 从原理图判断是哪一个GMAC 从sdk提供的默认dts里就能够发现, gmac有两个, gmac0和gmac1. 1.1 此刻去找硬件工程师给的原理图,搜索一下gmac, 看看他用的是gmac1还是gmac0 具体如何确定,还得看原理图里使用的引脚, 跟dts里的哪一个gmac node的配置比较相似. 具体文件是在kernel/arch/arm64/boot/dts/rockchip/rk3568-pinctrl.dtsi. 在制作bsp(上一流程)的时候,就有分层了,这份dtsi属于最 …

    更多