yanjin 发表于 2014-3-22 15:52

关于FB参数中controlflags值设置的讨论

我们在使用 fb 参数 驱动 ati显卡中 设置自己的 aticonfig 值时,
如何确定   controlflags 值呢:
|      接口的类型    |   接口的标志位   |显示特性   | 对齐字符   |   txmt|encd| hotplugin |senseID
HDMI         | 00080000   |    00020000    |    0000      |   0000      |   00   |    00      |      00    |       0
DVI            | 04000000   |    14020000     |    0000   |   0000       |   00   |    00      |      00    |       03
DVI            | 04000000      |    14020000|    0000   |   0000       |   00   |    00   |      00    |       02

我爬了坛子里的帖子。主要是3种方式
1.从被替代的原始aticonfig值中继承。也就是修改时只修改 txmt,encd,hotplugin,senseid 不修改
2. 用ioreg 软件 ,从使用的 readernframebuffer 中抄取
3.根据 教程从零开始完美玩转苹果ATI驱动+QE/CI+多屏,理论上所有A卡可行,以4860(RV790GT)为例
中的内容设置。
接口标志位: 这个是用来表示接口类型 支持什么样的设备, 比如说老的CRT显示器, 他没法只支持模拟信号, 所以他就要在这个标志为上标出这个接口支持的显示器类型 只能是CRT类, 无法传输数据到只能识别数字信号的显示器上, 这个串数字一般都是硬编码,这个数值给据国外网站说,ioreg 中有对应, 但是根据我的测试, 他是根据接口类型,和显卡支持的方式决定的, ioreg中的值是会变化的,现在的数码显示器可以只能化的改变这个数字,所以请自行根据接口类型和对应的关系决定:    接口类型                        >                可以对应接口标志位
    0x0002 : LVDS                   >         ControlFlag : 0x0040 / 0x0100               
0x0004 : DVI-?                  >         ControlFlag : 0x0016 - 0x0014 / 0x214               
    0x0010 : VGA                        >         ControlFlag : 0x0010               
0x0080 : S-Video                >         ControlFlag : 0x0002                        
0x0200 : DVI-?                        >         ControlFlag : 0x0014 / 0x0214 - 0x0204               
0x0400 : DisplayPort      >         ControlFlag : 0x0100 - 0x0104 - 0x0304 / 0x0604 - 0x0400               
0x0800 : HDMI                   >         ControlFlag : 0x0200            
   0x1000 : DVI-?                  >         ControlFlag : 0x0016

显示特性: 这个是用来说明你的显示器有什么样的特性, 比如说支持背光 ,这个数值是根据数据位来启用响应的功能的, 前面两个字节决定特性, 后面的两位决定功能(根据我自己的研究,但是我的设备有限, 目前只知道支持音频传输HDMI, 可以设置成 71 来开启音频传输 ), 比如说HMDI 可以传输音频数据 就是 00 71, 内置LCD 支持背光, 就是09 01
      #define FEATURE_USE_INTERNAL                  0x01
      #define FEATURE_USE_RGB_ON_YUV          0x04
      #define FEATURE_USE_BACKLIGHT             0x08
      #define FEATURE_BACKLIGHT_INVERTED      0x10
      #define FEATURE_USE_CLAMSHELL             0x20

      /* 1 byte, hardcoded for each connector type
      0x0002 : LVDS         >       Features:0x09
      0x0004 : DVI-?          >       Features:0x00
      0x0010 : VGA            >       Features:0x00
      0x0080 : S-Video      >       Features:0x04      
      0x0200 : DVI-?          >       Features:0x00
      0x0400 : DisplayPort    >       Features:0x00
      0x0800 : HDMI         >       Features:0x00
      0x1000 : DVI-?          >       Features:0x00
      */


但是我认为上面的教程是12年的,到现在已经不太符合了。
我是hd7770 更改了Aji 的FB
我用的是 hdmi
00080000040200000001000022050105

首先我发现原教程 显示特性 设置为0071 输出hdmi音频的设置无效,目前如何设置对hdmi音频没有影响

其次
00080000040200000001000022050105
第3,4个字节必须设置为02,系统才能配合addhdmi参数,识别出hdmi音频。(确切所第4个字节的bit1位必须为1)
但是设置为02 ,启动界面到登陆界面间有1,2秒的黑屏。如果设置为00,启动界面到登陆界面平滑过渡可以看到苹果上升的动画。

第3个字节设置为00 启动界面正常,登陆界面后颜色失真。设置为 04 和14 没有发现区别。

请有心的景友也可以试试。如果有哪位大神能够详细的阐述下 这些参数的含义就更好了。




dtkissme 发表于 2014-3-24 16:34

A卡最近一年,没搞过,不过先温习一下。谢谢楼主了。
页: [1]
查看完整版本: 关于FB参数中controlflags值设置的讨论