跳转至

HdmiTx Debug 说明


REVISION HISTORY

Revision No.
Description
Date
1.00
  • Initial release
  • 12/26/2023
    1.01
  • add vga & update ibopper
  • 12/02/2024
    1.02
  • update doc format
  • 06/09/2025
    1.03
  • add mhera debug register
  • 10/30/2025


    前言

    当前HDMI 规格是1.4的spec, 其中我司内部规格如下:

    • HDMI 的输入源来源于DISP,内部是硬件直连

    • 支持热插拔,并且可以注册callback回传到user mode

    • 只支持 HDMI ver1.4。故最大分辨率只能到4kp@30fps

    • 不支持 HDCP

    • 不支持 I mode输出(隔行输出)

    • 不支持CEC

    其中Video output:

    • 只支持输出8bit的视频,不支持10bit/12bit

    • 输出color domain支持YUV444/RGB444,不支持YUV422,如果是DVI mode只支持RGB444

    • Timing必须与DISP设置的对齐

    • HDMI output是通过硬件直接传到SINK上。无法dump到内存。

    Audio Output:

    • HDMI 硬件直连到AO,需要AO特定Dev在正常输出,HDMI才可以输出音频

    • HDMI 关于Audio属性的配置需与AO的对齐。比如采样率,位深等信息

    • HDMI 音频不可以单独输出,需要和视频一起输出

    • HDMI 音频需要在HDMI mode才可以输出,DVI mode不支持


    1. 常见问题

    1.1 黑屏无信号

    img

    流程 方法 出口条件 下一步 RD所需资料 参考FAQ
    A 找一根可以显示使用的hdmi线对比交叉测试 XX XX
    B 接入对比机切到此分辨率看是否可以显示 XX XX
    C echo getEdid 0 > /proc/mi_modules/mi_hdmi/mi_hdmi0 出口条件1(NG): =>读取值为全0,或读取时串口有报错log
    出口条件2(OK): =>解析Edid数据的正确性,采用HDMI EDID解析
    出口条件1: =>D
    出口条件2: =>F
    读取fail: img
    正常读取: img
    D 量5V信号 出口条件1(NG): =>板级hdmi Port口端量不到5V
    出口条件2(Ok): =>可以正常量到5V电压
    出口条件1: =>硬件进场
    出口条件2: =>E
    HDMI Port口连线pin脚
    img
    E 量Hpd信号 出口条件1(NG): =>Port端量不到Hpd电压信号
    出口条件2(OK): =>Port端可以量到Hpd信号
    出口条件1: =>需理清显示器端问题(比如接对比机测试)
    出口条件2: =>H
    同上
    F cat /proc/mi_modules/mi_disp/mi_disp0(mi_disp1) 出口条件1(NG): =>读取时串口有报错log或状态异常(见右端FAQ
    出口条件2(OK): =>Disp端参数正常
    出口条件1: =>Disp Rd进场
    出口条件2: =>G
    请保留现场找disp RD帮忙 a. 是否一直在丢帧,即dropCnt是否一直在累加
    b. Interface是否为HDMI,timingInfo是否正确,IrqCnt是否在累加
    img
    img
    G echo setMute Off > /proc/mi_modules/mi_hdmi/mi_hdmi0 出口条件1: =>依旧黑屏
    出口条件2: =>黑屏消失有画面出来
    出口条件1: =>H
    出口条件2: =>被mute住,请客户检查配置。
    这里的mute是指画面内容被pattern覆盖,一般是纯黑色,配置是指MI接口有个mute 的开关,检查看是不是误下。
    H cat /proc/mi_modules/mi_hdmi/mi_hdmi0
    cat /proc/mi_modules/mi_hdmi/debug_hal/cfg
    cat /proc/mi_modules/mi_disp/mi_disp0(mi_disp1)
    开启log: echo 7 > /proc/mi_modules/mi_hdmi/debug_level
    echo 0x9b0040 > /proc/mi_modules/mi_hdmi/debug_hal/dbgmg
    提供串口log给RD分析driver flow,尽可能保留现场配合Rd实验。(如果容易复现,尽量在开始复制前就开启log

    1.2 画面异常

    img

    流程 方法 出口条件 下一步 RD所需资料 参考FAQ
    A 接其它显示器测试及用此显示器接其它Tx设备测试 出口条件1: =>其它显示器画面也异常
    出口条件2: =>其它显示器画面ok,此显示器画面异常
    出口条件1: =>B
    出口条件2: =>显示器问题
    B Tiramisu/Muffin/Mochi/Mhera平台:
    开启pattern: riu_w 1150 7 e 或 1160 7 e
    关闭pattern: riu_w 1150 7 1 或 riu_w 1160 7 1
    Takoyaki/ibopper平台:
    开启pattern: riu_w 1128 7 e
    关闭pattern: riu_w 1128 7 1
    出口条件1: =>画面依旧异常
    出口条件2: =>显示彩色竖条纹
    出口条件1: => C
    出口条件2: => Disp RD进场
    请保留现场找disp Sw RD 帮忙 check disp timing设置是否有问题。
    C cat /proc/mi_modules/mi_hdmi/mi_hdmi0
    cat /proc/mi_modules/mi_hdmi/debug_hal/cfg
    cat /proc/mi_modules/mi_disp/debug_hal/cfg
    ibopper: /customer/riu_r 1125;/customer/riu_r 1126
    mhera: /customer/riu_r 1458;/customer/riu_r 1459;/customer/riu_r 145a
    提供串口log给Sw RD分析

    1.3 无声音

    img

    流程 方法 出口条件 下一步 RD所需资料 参考FAQ
    A 换根使用出声音正常的HDMI线 XX XX
    B cat /proc/mi_modules/mi_hdmi/mi_hdmi0 出口条件1(DVI): => cat info中OutputMode为DVI
    出口条件2(HDMI): => cat info中OutputMode为HDMI
    出口条件1: => DVI不支持
    出口条件2: => C
    img
    C cat /proc/mi_modules/mi_ao/mi_ao0 出口条件1: =>读取时串口有报错log或状态异常(见右端FAQ
    出口条件2: =>状态正常(32K单声音hdmi输出见右端FAQ贴图)
    出口条件1: =>Ao Rd 进场
    出口条件2: =>D
    开启AO log echo 7 > /proc/mi_modules/mi_ao/debug_level 并提供串口log给Audio sw RD分析 a. MI If 是否为HDMI
    b. 采样率是否为预期设置,并且FrmCnt是否在累加。
    img
    D echo setMute Off > /proc/mi_modules/mi_hdmi/mi_hdmi0 出口条件1: =>声音有输出
    出口条件2: =>声音依旧无输出
    出口条件1: =>被mute住,请客户按API doc配置。
    出口条件2: =>E
    hdmi doc
    E cat /proc/mi_modules/mi_hdmi/mi_hdmi0
    cat /proc/mi_modules/mi_hdmi/debug_hal/cfg
    ibopper: /customer/riu_r 1125;/customer/riu_r 1126
    mhera: /customer/riu_r 1458;/customer/riu_r 1459;/customer/riu_r 145a
    提供串口log给RD分析

    2. VGA

    1 vga最大timing为1080p@60Hz,format为RGB888,输入源来源于DISP,内部是硬件直连,相当于disp的一个屏。无audio,cec等,不支持edid。

    2 debug方法和上述hdmi画面异常一致,具体不再赘述,下面仅补充vga开启log部分。

        cat /proc/mi_modules/mi_disp/debug_hal/cfg
        cat /proc/mi_modules/mi_disp/mi_disp0(mi_disp1)
    
        Takoyaki/iBopper: /customer/riu_r 1127;/customer/riu_r 1128;/customer/riu_r 1129
        Tiramisu/Muffin/Mochi: /customer/riu_r 145b;/customer/riu_r 1150;/customer/riu_r 1151(/customer/riu_r 1160;/customer/riu_r 1161)
        Mhera: /customer/riu_r 1157;/customer/riu_r 1150;/customer/riu_r 1151(/customer/riu_r 1160;/customer/riu_r 1161)
    
        echo 0x800020f7 > /proc/mi_modules/mi_disp/debug_hal/dbgmg  //开启hal 层log,请在复现问题开启应用前输入。
    

    3. 常用命令汇总

    1. 查看hdmitx mi/mhal配置信息

      cat /proc/mi_modules/mi_hdmi/mi_hdmi0
      cat /proc/mi_modules/mi_hdmi/debug_hal/cfg
      
    2. 查看disp配置信息

      cat /proc/mi_modules/mi_disp/debug_hal/cfg
      cat /proc/mi_modules/mi_disp/mi_disp0(mi_disp1)
      
    3. Dump hdmitx bank

      ibopper: /customer/riu_r 1125;/customer/riu_r 1126
      mhera: /customer/riu_r 1458;/customer/riu_r 1459;/customer/riu_r 145a
      bk1125:
      timing info: width(0x17 - 0x16)  height(0x19-0x18)
      0x01的bit0=<0 dvi,1 hdmi>
      0x01的bit13=<1 mute,0 unmute>
      
    4. Mute与解mute

      echo setMute On > /proc/mi_modules/mi_hdmi/mi_hdmi0
      echo setMute Off > /proc/mi_modules/mi_hdmi/mi_hdmi0
      
    5. 查看Audio配置信息

      cat /proc/mi_modules/mi_ao/mi_ao0
      
    6. 强制设置hdmi/dvi mode

      echo setHdmiMode hdmi > /proc/mi_modules/mi_hdmi/mi_hdmi0
      echo setHdmiMode dvi > /proc/mi_modules/mi_hdmi/mi_hdmi0
      
    7. Get Edid

      //block0
      echo getEdid 0 > /proc/mi_modules/mi_hdmi/mi_hdmi0
      //block1
      echo getEdid 1 > /proc/mi_modules/mi_hdmi/mi_hdmi0
      
    8. Parse Edid

      echo parseEdid > /proc/mi_modules/mi_hdmi/mi_hdmi0