HdmiTx Debug 说明¶
REVISION HISTORY¶
| Revision No. | Description |
Date |
|---|---|---|
| 1.00 | 12/26/2023 | |
| 1.01 | 12/02/2024 | |
| 1.02 | 06/09/2025 | |
| 1.03 | 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 黑屏无信号¶
| 流程 | 方法 | 出口条件 | 下一步 | 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: 正常读取: ![]() |
|
| D | 量5V信号 | 出口条件1(NG): =>板级hdmi Port口端量不到5V 出口条件2(Ok): =>可以正常量到5V电压 |
出口条件1: =>硬件进场 出口条件2: =>E |
HDMI Port口连线pin脚 ![]() |
|
| 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是否在累加 ![]() |
| 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 画面异常¶
| 流程 | 方法 | 出口条件 | 下一步 | 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 无声音¶
| 流程 | 方法 | 出口条件 | 下一步 | 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 |
![]() |
|
| 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是否在累加。 ![]() |
| 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. 常用命令汇总¶
-
查看hdmitx mi/mhal配置信息
cat /proc/mi_modules/mi_hdmi/mi_hdmi0 cat /proc/mi_modules/mi_hdmi/debug_hal/cfg -
查看disp配置信息
cat /proc/mi_modules/mi_disp/debug_hal/cfg cat /proc/mi_modules/mi_disp/mi_disp0(mi_disp1) -
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> -
Mute与解mute
echo setMute On > /proc/mi_modules/mi_hdmi/mi_hdmi0 echo setMute Off > /proc/mi_modules/mi_hdmi/mi_hdmi0 -
查看Audio配置信息
cat /proc/mi_modules/mi_ao/mi_ao0 -
强制设置hdmi/dvi mode
echo setHdmiMode hdmi > /proc/mi_modules/mi_hdmi/mi_hdmi0 echo setHdmiMode dvi > /proc/mi_modules/mi_hdmi/mi_hdmi0 -
Get Edid
//block0 echo getEdid 0 > /proc/mi_modules/mi_hdmi/mi_hdmi0 //block1 echo getEdid 1 > /proc/mi_modules/mi_hdmi/mi_hdmi0 -
Parse Edid
echo parseEdid > /proc/mi_modules/mi_hdmi/mi_hdmi0




