当前位置: 首页 > news >正文

【Loongson/LS2H】HDMI 显示从 PMON 到 Linux 内核完整打通(配置 + 驱动 + 排查全流程)

【Loongson/LS2H】HDMI 显示从 PMON 到 Linux 内核完整打通(配置 + 驱动 + 排查全流程)

一、问题背景

在龙芯平台开发过程中,经常遇到这样的问题:

  • ✅ PMON 阶段 HDMI 正常显示
  • ❌ Linux 内核启动后 HDMI 黑屏
  • ❌ rootfs 阶段无任何显示

这说明:

硬件正常,但内核显示链路没有正确建立

本文将从配置、驱动、设备树(如涉及)、调试方法几个方面,完整梳理 HDMI 显示打通流程。


二、显示链路整体原理

1. 启动阶段显示流程

PMON → 内核 → rootfs
阶段显示来源
PMON固件初始化 HDMI
内核DRM / FB 驱动重新初始化
rootfsfbcon / kms 接管

⚠️ 关键点:

内核不会继承 PMON 的显示状态,必须重新初始化硬件


三、内核显示方案选择

在 LS2H / Loongson 平台,主要有两种方案:

1. simplefb(临时方案)

CONFIG_FB_SIMPLE=y

特点:

  • 依赖 PMON framebuffer
  • 不真正初始化 HDMI
  • 仅用于“能亮”

👉 适合调试早期阶段


2. DRM(推荐方案)

CONFIG_DRM_LSDC=y

特点:

  • 真正驱动显示控制器
  • 支持分辨率切换
  • 可用于 GUI / Wayland / X11

👉最终必须使用 DRM


四、最小可用内核配置(关键)

1. DRM 核心

CONFIG_DRM=yCONFIG_DRM_KMS_HELPER=yCONFIG_DRM_FBDEV_EMULATION=y

2. Loongson 显示驱动(核心)

CONFIG_DRM_LOONGSON_VGA=yCONFIG_DRM_LSDC=yCONFIG_DRM_LSDC_PCI_DRIVER=y

⚠️ 必须是:

=y

不能是:

=m

否则会出现:

  • 内核阶段黑屏
  • rootfs 才加载模块

3. framebuffer 兜底

CONFIG_FB=yCONFIG_FB_SIMPLE=yCONFIG_FRAMEBUFFER_CONSOLE=y

作用:

  • 提供 early console
  • 防止驱动异常时完全黑屏

五、必须关闭的无关配置(重点避坑)

1. PC/服务器显卡驱动

# CONFIG_DRM_AMD is not set# CONFIG_DRM_RADEON is not set# CONFIG_DRM_NOUVEAU is not set# CONFIG_DRM_AST is not set# CONFIG_DRM_SMI is not set

2. HDMI bridge(ARM平台)

# CONFIG_DRM_DW_HDMI is not set# CONFIG_DRM_RCAR_DW_HDMI is not set# CONFIG_DRM_SII902X is not set# CONFIG_DRM_TI_TFP410 is not set

3. Panel(LCD用)

# CONFIG_DRM_PANEL_SIMPLE is not set

4. USB 显卡

# CONFIG_DRM_UDL is not set

5. TinyDRM

# CONFIG_DRM_TINYDRM is not set

六、设备树(DT)说明

⚠️ Loongson 特点

  • 多数 Loongson 平台:

    • ❌ 不依赖设备树控制 HDMI
    • ✔ 使用平台驱动(PCI / 固定寄存器)

👉 因此:

HDMI 通常不需要额外 DT 配置


如果是 DT 平台(扩展说明)

需要:

hdmi@xxx { compatible = "..."; status = "okay"; };

但 LS2H 一般无需配置


七、启动参数(boot.cfg)

推荐参数

append"console=tty0"

或强制分辨率:

append"video=HDMI-A-1:1024x768"

八、常见问题排查


1. 编译时报错(寄存器未定义)

LS2H_DC_REG_BASE undeclared

原因:

  • 未开启 SoC 支持
  • 头文件未包含

解决:

CONFIG_MACH_LOONGSON=y

2. 内核黑屏

排查:

dmesg|grep-idrm

情况1:只有 simplefb

simple-framebuffer

👉 说明:

  • DRM 未生效
  • 只是 PMON 继承

情况2:lsdc 初始化成功

lsdc drm initialized

👉 正常


3. HDMI 无信号

检查:

  • 驱动是否加载
  • 分辨率是否支持
  • 时钟是否初始化

九、推荐调试流程(工程实践)

Step 1:验证 simplefb

CONFIG_FB_SIMPLE=y

👉 确认硬件 OK


Step 2:启用 DRM

CONFIG_DRM_LSDC=y

Step 3:关闭冗余驱动

👉 逐步精简


Step 4:验证日志

dmesg|grep-E"drm|fb"

十、最终最小配置总结

CONFIG_DRM=yCONFIG_DRM_KMS_HELPER=yCONFIG_DRM_FBDEV_EMULATION=yCONFIG_DRM_LOONGSON_VGA=yCONFIG_DRM_LSDC=yCONFIG_DRM_LSDC_PCI_DRIVER=yCONFIG_FB=yCONFIG_FB_SIMPLE=yCONFIG_FRAMEBUFFER_CONSOLE=y

十一、总结

HDMI 显示问题本质是:

❌ 内核没有正确接管显示控制器
✅ 正确配置 DRM + LS2H 驱动即可解决


十二、一句话经验总结

PMON 能亮 ≠ 内核能亮
内核必须重新初始化 HDMI 硬件


十三、实践建议

  • 以 defconfig 为基础,不要在污染配置上修
  • DRM 驱动必须内建(=y)
  • 逐步裁剪,避免一次性删除

十四、LSDC 显示驱动源码解析(核心)

在前文中我们已经完成了 HDMI 的配置与点亮,但如果想彻底掌握显示问题定位能力,必须理解:

👉内核驱动到底是如何把 HDMI 点亮的?

本章以drivers/gpu/drm/lsdc/为核心,对 LSDC 驱动进行源码级解析。


一、驱动整体结构

LSDC(Loongson Display Controller)驱动属于 DRM 子系统,其结构如下:

drivers/gpu/drm/lsdc/ ├── lsdc_drv.c // 驱动入口 ├── lsdc_kms.c // KMS核心 ├── lsdc_output.c // 输出(HDMI/VGA) ├── lsdc_pll.c // 像素时钟 ├── lsdc_irq.c // 中断 ├── lsdc_regs.h // 寄存器定义

二、驱动初始化流程

1. 驱动入口(probe)

staticintlsdc_pci_probe(structpci_dev*pdev,...)

主要做三件事:

✔ 1)映射寄存器

mmio=pci_iomap(pdev,0
http://www.jsqmd.com/news/607980/

相关文章:

  • 用 Microsoft Agent Framework 构建 SubAgent(Multi-Agent)角
  • 黄褐斑过来人实测!BFBY美白修护面膜适配多肤质,淡斑修护双在线 - 资讯焦点
  • 用 Python + OpenCascade 自动生成 3D CAD 模型,并导出 SolidWorks 可打开的 STEP 文件
  • AI Agent Harness模型微调数据管控
  • 2026金平区新房全屋定制选型指南:满足这3个硬指标才算靠谱 - 精选优质企业推荐榜
  • Insights into Imaging 河北医科大学第二医院:基于MRI的瘤内异质性量化用于肝内肿块型胆管癌分级
  • 2026年亲测有效:本地生活GEO品牌推荐复盘
  • 如何快速入门Node.js C++插件开发:node-addon-examples实战教程
  • 鸿蒙物联网开发教程-第十章 HarmonyOS物联网综合项目设计1
  • 2026年排插有哪些品牌?市场热门品牌推荐 - 品牌排行榜
  • 行业竞争激烈时如何做好SEO优化_网站的技术优化对SEO来说很重要吗
  • 2026四平靠谱铝门窗、系统门窗品牌盘点:兼顾性能与本地服务 - 资讯焦点
  • 华为AP有线口除了供电还能干啥?解锁‘瘦AP’变身小型接入交换机的高阶玩法
  • 【限时技术解禁】.NET 9未公开Edge Preview特性:Hardware Intrinsics for NEON加速、实时信号处理模块源码级剖析
  • TPFanCtrl2:ThinkPad双风扇控制的终极解决方案与完整配置指南
  • [特殊字符]教资面试倒计时!这份“通关三件套”资料包,帮你省下80%瞎忙活的时间!
  • 2026铁岭铝门窗、系统门窗品牌排行:适配东北气候的靠谱之选 - 资讯焦点
  • ubuntu使用中的问题
  • 即时通讯安全篇(十六):对称加密 vs 非对称加密?一文搞懂
  • 开源试验机械AI试验机测评:品质、实力与性价比的务实之选 - 品牌推荐大师1
  • 监控和管理Linux进程知识问答
  • 一维数组 - remember
  • 2026年六家geo公司推荐 深度拆解技术壁垒并甄选年度标杆 - 博客湾
  • 如何通过可视化学习快速掌握RISC-V?专业仿真平台全解析
  • CppJieba中文分词实战指南:从环境搭建到企业级应用
  • 2026 河北企业数字化转型服务商标杆:隆尧县数字化转型企业商会
  • Reciprocal节点]原理解析与实际应用
  • 2026广州AIGC影视广告公司推荐榜(综合实力榜) - 资讯焦点
  • 智能车竞赛新手避坑指南:用MT9V03X摄像头搞定直道、弯道与十字路口识别
  • 如何实现微信聊天记录的永久保存与智能分析