Apple Intel AMD/ATI Framebuffers

Discussion in 'Graphics' started by SJ_UnderWater, Oct 22, 2013.

  1. SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    Oct 22, 2013 at 3:32 AM #1
    SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    The following PHP scripts extract the framebuffers in OS X Mavericks kernel extensions and print them out with the connector types for each, for use with Chimera/Chameleon. The scripts are enclosed along with their output.
    AMD / ATI
    Note that this script requires `otool` for disassembly. Mavericks will automatically prompt you to download and install the command line tools, but Mountain Lion or earlier will require an installation of Xcode and its Command Line Tools package (see Preferences > Downloads).
    Code (Text):
    <?php
    function padHex($d,$l) {return str_pad(dechex($d),$l,'0',STR_PAD_LEFT);}
    function toHex($s){$i=0;$t='';while(isset($s[$i])){$t.=padHex(ord($s[$i++]),2);}return $t;}
    function toStr($h){$s='';$i=4;while($i-->0){$s.=chr($h>>(8*$i)&0xFF);}return $s;}
    $ctype=array('02000000'=>'LVDS','04000000'=>'DDVI','80000000'=>'SVIDEO','10000000'=>'VGA','00020000'=>'SDVI','00040000'=>'DP','00080000'=>'HDMI','00100000'=>'????');
    foreach(glob('/System/Library/Extensions/'.(file_exists('/System/Library/Extensions/AMD6000Controller.kext') ? 'AMD' : 'ATI').'*Controller.kext') as $file) {
        echo str_pad(substr(strrchr($file,'/'),1),72,'-',STR_PAD_BOTH)."\n\n";
        $file=array_pop(glob("$file/Contents/MacOS/*"));
        $a=popen("otool -XvQt $file",'r');
        $b=fopen($file,'r');
        while ($l=fgets($a)) {
            if (strncmp($l,'__ZN',4)!=0 || ($i=strpos($l,'Info10createInfo'))===false) continue;
            $f=new stdClass();
            $f->name=substr($l,5+is_numeric($l[5]),$i-5-is_numeric($l[5]));
            while(($l=fgets($a)) && strpos($l,'ret')===false) {
                if (strpos($l,'leaq')!==false) $f->addr=hexdec(substr($l,6,strpos($l,'(')-6));
                if (!isset($f->ports) && strpos($l,"movb\t$")!==false) $f->ports=hexdec(substr($l,strpos($l,'$'),strpos($l,',')-strpos($l,'$')))&0xFF;
                if (strpos($l,'jl')!==false) $i=hexdec(substr($l,4));
                if (strpos($l,'jmp')!==false) $i=hexdec(substr($l,4)) + 0x1A;
            }
            $f->addr+=$i;
            echo "$f->name ($f->ports) @ 0x".dechex($f->addr)."\n";
            $t=$p=array();
            fseek($b,$f->addr);
            while($f->ports-- > 0) $p[]=$ctype[substr($t[]=toHex(fread($b,16)),0,8)];
            echo implode(', ',$p)."\n";
            echo implode("\n",$t)."\n\n";
        }
        pclose($a);
        fclose($b);
    }
    Code (Text):
    -------------------------ATI2400Controller.kext-------------------------

    Iago (2) @ 0x83b80
    LVDS, ????
    02000000400000000900000000010012
    0010000016000000c400000010000111

    -------------------------ATI2600Controller.kext-------------------------

    Hypoprion (2) @ 0x83b60
    LVDS, ????
    02000000400000000900000000010012
    0010000016000000c400000010000111

    Lamna (2) @ 0x83b80
    SDVI, DDVI
    00020000140000008000000000010211
    04000000160000008000000000100112

    -------------------------ATI3800Controller.kext-------------------------

    Megalodon (3) @ 0x83b50
    SDVI, DDVI, SVIDEO
    00020000140000000000000000010211
    04000000160000000000000000100112
    80000000020000000400000000100000

    Triakis (2) @ 0x83b80
    SDVI, DDVI
    00020000140000000000000000010211
    04000000160000000000000000100112

    -------------------------ATI4600Controller.kext-------------------------

    Flicker (3) @ 0x82b10
    DP, DP, SDVI
    00040000000400000001000002010305
    00040000000400000001000001000202
    00020000140200000001000000100104

    Gliff (3) @ 0x82b40
    LVDS, LVDS, DP
    02000000400000000901000002010003
    02000000000100000901000020010202
    00040000040600000001000010000101

    Shrike (3) @ 0x82b70
    LVDS, LVDS, DP
    02000000400000000901000002010003
    02000000000100000901000020010202
    00040000040300000001000010000101

    -------------------------ATI4800Controller.kext-------------------------

    Cardinal (2) @ 0x81b30
    SDVI, DDVI
    00020000140200000001000001010104
    04000000140200000001000000100203

    MotMot (2) @ 0x81b50
    DP, DDVI
    00040000040100000001000010000203
    04000000140200000001000001110104

    Quail (3) @ 0x81b70
    LVDS, LVDS, DP
    02000000400000000901000022010007
    02000000000100000901000020010304
    00040000040300000001000010000203

    -------------------------ATI5000Controller.kext-------------------------

    Douc (2) @ 0x9b1a0
    LVDS, DP
    02000000000500000903000021030202
    00040000040200000003000011020101

    Langur (3) @ 0x9b1d0
    DP, DP, DDVI
    00040000040600000001000021030402
    00040000040600000001000011020101
    04000000140200000001000002040503

    Uakari (4) @ 0x9b200
    DP, DDVI, SDVI, HDMI
    00040000000400000071000012040401
    04000000140000000071000001120103
    00020000140000000071000000000605
    00080000000200000071000022050504

    Zonalis (6) @ 0x9b240
    DP, DP, DP, DP, DP, DP
    00040000040600000071000020010606
    00040000040600000071000010000505
    00040000040600000071000021030204
    00040000040600000071000011020103
    00040000040600000071000022050402
    00040000040600000071000012040301

    Alouatta (4) @ 0x9b2a0
    LVDS, DP, DP, DP
    02000000000100000901000012040303
    00040000040600000071000011020101
    00040000040600000071000021030202
    00040000040600000071000022050404

    Hoolock (3) @ 0x9b2e0
    DP, DP, DDVI
    00040000040600000001000021030501
    00040000040600000001000011020402
    04000000140200000001000002040103

    Vervet (4) @ 0x9b310
    DP, DDVI, SDVI, HDMI
    00040000000400000071000012040402
    04000000140000000071000001120104
    00020000140000000071000000000603
    00080000000200000071000022050501

    Baboon (3) @ 0x9b350
    DDVI, HDMI, VGA
    04000000140000000001000001020103
    00080000000200000071000022050201
    10000000100000000001000000100002

    Eulemur (3) @ 0x9b380
    DDVI, HDMI, VGA
    04000000140000000001000001020104
    00080000000200000071000012040402
    10000000100000000000000000100001

    Galago (2) @ 0x9b3b0
    LVDS, DP
    02000000000100000903000021030202
    00040000040600000073000011020101

    Colobus (2) @ 0x9b3e0
    LVDS, DP
    02000000000100000903000021030202
    00040000040600000073000011020101

    Mangabey (2) @ 0x9b410
    LVDS, DP
    02000000400000000901000000000003
    00040000040600000073000011020101

    Nomascus (4) @ 0x9b440
    LVDS, LVDS, DP, DP
    02000000400000000901000000000005
    02000000000100000903000012040303
    00040000040600000073000011020101
    00040000040700000073000021030202

    Orangutan (2) @ 0x9b490
    LVDS, DP
    02000000400000000901000000000005
    00040000040600000073000011020101

    -------------------------ATI6000Controller.kext-------------------------

    Pithecia (2) @ 0x9e6c0
    DP, DDVI
    00040000040300000001000021030204
    04000000140200000001000000000403

    Bulrushes (6) @ 0x9e6e0
    DP, DP, DP, DP, DP, DP
    00040000040300000001000011020101
    00040000040300000001000021030202
    00040000040300000001000012040303
    00040000040300000001000022050404
    00040000040300000001000010000505
    00040000040300000001000020010606

    Cattail (4) @ 0x9e740
    LVDS, DP, DP, DP
    02000000400000002905000000000005
    00040000040300000001000011020101
    00040000000100000009100021030202
    00040000000100000009100012040303

    Hydrilla (5) @ 0x9e780
    LVDS, DP, DP, DP, DP
    02000000000100000901000012040303
    00040000040300000001000011020101
    00040000000100000009100021030202
    00040000000100000009100022050504
    00040000040300000001000010000405

    Duckweed (4) @ 0x9e7d0
    DP, DP, HDMI, SDVI
    00040000040300000001000012040401
    00040000040300000001000022050502
    00080000040200000001000011020304
    00020000140200000001000000000605

    Fanwort (4) @ 0x9e810
    LVDS, DP, DP, DP
    02000000400000002905000000000004
    00040000040300000001000011020101
    00040000000100000009100021030202
    00040000000100000009100012040303

    Elodea (5) @ 0x9e850
    LVDS, DP, DP, DP, DP
    02000000000100000901000012040303
    00040000040300000001000010000505
    00040000040300000001000011020101
    00040000000100000009100021030202
    00040000000100000009100022050404

    Kudzu (2) @ 0x9e8a0
    DP, HDMI
    00040000040300000001000012040303
    00080000040200000001000011020101

    Gibba (5) @ 0x9e8c0
    DP, DP, HDMI, SDVI, DDVI
    00040000040300000001000012040501
    00040000040300000001000022050402
    00080000040200000001000011020604
    00020000140200000001000000000305
    04000000040200000001000011020103

    Lotus (3) @ 0x9e910
    DP, HDMI, DP
    00040000040300000001000011020101
    00080000040200000001000022050404
    00040000000100000001000021030202

    Ipomoea (3) @ 0x9e940
    DP, HDMI, VGA
    00040000040300000001000012040105
    00080000040200000001000011020403
    10000000100000000001000000000002

    Muskgrass (4) @ 0x9e970
    DP, DP, DP, HDMI
    00040000040300000001010011020101
    00040000000100000009120021030202
    00040000000100000009130022050404
    00080000040200000001040012040303

    Juncus (4) @ 0x9e9b0
    DP, DP, DP, DP
    00040000040300000001000012040303
    00040000040300000001000010000405
    00040000040300000001000011020101
    00040000040300000001000021030202

    Osmunda (4) @ 0x9e9f0
    LVDS, DP, DP, HDMI
    02000000000100002905010010000505
    00040000040300000009020011020101
    00040000040300000009030021030202
    00080000040200000001040012040303

    Pondweed (3) @ 0x9ea30
    LVDS, DP, DP
    02000000000100000901010010000505
    00040000040300000001020011020101
    00040000040300000001030021030202

    Spikerush (4) @ 0x9ea60
    LVDS, DP, DP, DP
    02000000400000002905010000000005
    00040000040300000001020011020101
    00040000000100000009020021030202
    00040000000100000009030012040303

    Typha (5) @ 0x9eaa0
    DP, DP, DP, DP, DDVI
    00040000040300000001010011020401
    00040000040300000001020021030502
    00040000000100000009030010000205
    00040000000100000009040020010306
    04000000140200000001050002040103

    -------------------------ATI7000Controller.kext-------------------------

    Aji (4) @ 0xa1c60
    DP, DP, DDVI, HDMI
    00040000040300000001010012040501
    00040000040300000001020022050402
    04000000140200000001030000000306
    00080000040200000001040011020104

    Buri (4) @ 0xa1ca0
    LVDS, DP, DP, HDMI
    02000000000100002905010010000505
    00040000040300000009020011020101
    00040000040300000009030021030202
    00080000040200000001040012040303

    Chutoro (5) @ 0xa1ce0
    LVDS, DP, DP, DP, DP
    02000000000100000901010012040303
    00040000040300000001020011020101
    00040000000100000009030021030202
    00040000000100000009040022050404
    00040000040300000001050010000505

    Dashimaki (4) @ 0xa1d30
    DP, DP, DDVI, HDMI
    00040000040300000001010012040202
    00040000040300000001020022050305
    04000000140200000001030000000404
    00080000040200000001040011020101

    Ebi (5) @ 0xa1d70
    LVDS, DP, DP, DP, DP
    02000000000100000901010012040303
    00040000040300000001020011020101
    00040000000100000009030021030202
    00040000000100000009040022050404
    00040000040300000001050010000505

    Gari (5) @ 0xa1dc0
    LVDS, DP, DP, DP, DP
    02000000000100000901010012040303
    00040000040300000001020011020101
    00040000000100000009030021030202
    00040000000100000009040022050404
    00040000040300000001050010000505

    Futomaki (4) @ 0xa1e10
    DP, DP, DDVI, HDMI
    00040000040300000001010012040401
    00040000040300000001020022050502
    04000000140200000001030000000606
    00080000040200000001040011020103

    Hamachi (4) @ 0xa1e50
    DP, DP, DDVI, HDMI
    00040000040300000001010012040501
    00040000040300000001020022050402
    04000000140200000001030000000306
    00080000040200000001040011020104

    OPM (6) @ 0xa1e90
    DP, DP, DP, DP, DP, DP
    00040000040300000001000011020101
    00040000040300000001000021030202
    00040000040300000001000012040303
    00040000040300000001000022050404
    00040000040300000001000010000505
    00040000140300000001000020010606

    Ikura (1) @ 0xa1ef0
    HDMI
    00080000040200000001010012040301

    IkuraS (6) @ 0xa1f00
    DP, DP, DP, DP, DP, DP
    00040000040300000001010011020103
    00040000040300000001020021030204
    00040000040300000001830012040301
    00040000040300000001040022050402
    00040000040300000001050010000505
    00040000040300000001060020010606

    Junsai (6) @ 0xa1f60
    DP, DP, DP, DP, DP, DP
    00040000040300000001000012040301
    00040000040300000001000022050402
    00040000040300000001000011020103
    00040000040300000001000021030204
    00040000040300000001000010000505
    00040000040300000001000020010606

    Kani (1) @ 0xa1fc0
    HDMI
    00080000040200000001010012040301

    KaniS (6) @ 0xa1fd0
    DP, DP, DP, DP, DP, DP
    00040000040300000001010011020103
    00040000040300000001020021030204
    00040000040300000001830012040301
    00040000040300000001040022050402
    00040000040300000001050010000505
    00040000040300000001060020010606

    DashimakiS (4) @ 0xa2030
    DP, DP, DDVI, HDMI
    00040000040300000001010012040202
    00040000040300000001020022050305
    04000000140200000001030000000404
    00080000040200000001040011020101

    Maguro (1) @ 0xa2070
    HDMI
    00080000040200000001010012040301

    MaguroS (6) @ 0xa2080
    DP, DP, DP, DP, DP, DP
    00040000040300000001010011020103
    00040000040300000001020021030204
    00040000040300000001830012040301
    00040000040300000001040022050402
    00040000040300000001050010000505
    00040000040300000001060020010606
     
  2. SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    Oct 22, 2013 at 3:35 AM #2
    SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    Apple Intel AMD/ATI Framebuffers [MAV_HOLD]

    Intel HD 3000
    Code (Text):
    <?php
    $ctype=array('01000000'=>'?','02000000'=>'LVDS','04000000'=>'DDVI','08000000'=>'SVIDEO','10000000'=>'VGA','00020000'=>'SDVI','00040000'=>'DP','00080000'=>'HDMI','000c0000'=>'4k?');
    $entry=array('01000000','02050000','03040000','04060000','05030000');
    function padHex($d,$l) {return str_pad(dechex($d),$l,'0',STR_PAD_LEFT);}
    function toHex($s){$i=0;$t='';while(isset($s[$i])){$t.=padHex(ord($s[$i++]),2);}return $t;}
    function toStr($h){$s='';$i=4;while($i-->0){$s.=chr($h>>(8*$i)&0xFF);}return $s;}
    $f='/System/Library/Extensions/AppleIntelSNBGraphicsFB.kext/Contents/MacOS/AppleIntelSNBGraphicsFB';
    $a=fopen($f,'r');
    $s=array();
    exec("nm $f",$s);
    fseek($a,hexdec(array_shift(explode(' ',array_shift(preg_grep('/_PlatformInformationList/',$s))))));
    while(true) {
        $p=array();
        $t=array_map('toHex',str_split(fread($a,60),12));
        fseek($a,-60,SEEK_CUR);
        $f=strtoupper(toHex(fread($a,4)));
        if (toHex(fread($a,4))=='000c0c0c') break;
        echo "0x$f\n";
        fseek($a,4,SEEK_CUR);
        foreach(str_split(fread($a,48),12) as $f) {
            $f=toHex($f);
            if (in_array(substr($f,0,8),$entry)) $p[]=$ctype[substr($f,8,8)];
        }
        echo implode(', ',$p)."\n".implode("\n",$t)."\n\n";
    }
    fclose($a);
    Code (Text):
    0x01020400
    LVDS, DP, DP, DP
    010204001007000010070000
    050300000200000030000000
    020500000004000007000000
    030400000004000009000000
    040600000004000009000000

    0x01020100
    LVDS
    010201001007000010070000
    050300000200000030000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000

    0x00020300
    DP, DP, HDMI
    0002030000000000ffffffff
    020500000004000007000000
    030400000004000009000000
    040600000008000006000000
    000000000100000040000000

    0x00000000

    000000000000000000000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000

    0x01020300
    LVDS, DP, DP
    010203001007000010070000
    010000000200000030000000
    020500000004000007000000
    030400000004000009000000
    000000000100000040000000

    0x00000000

    000000000000000000000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000

    0x00010000

    000100000000000000000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000

    0x01030400
    DP, DP, DP, HDMI
    010304001007000010070000
    010000000004000030000000
    020500000004000007000000
    030400000004000009000000
    040600000008000006000000

    0x00020100
    DP
    0002010000000000ffffffff
    020500000004000007000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    Intel HD 4000
    Code (Text):
    <?php
    $ctype=array('02000000'=>'LVDS','04000000'=>'DDVI','08000000'=>'SVIDEO','10000000'=>'VGA','00020000'=>'SDVI','00040000'=>'DP','00080000'=>'HDMI');
    $entry=array('01000000','02050000','03040000','04060000','05030000');
    function padHex($d,$l) {return str_pad(dechex($d),$l,'0',STR_PAD_LEFT);}
    function toHex($s){$i=0;$t='';while(isset($s[$i])){$t.=padHex(ord($s[$i++]),2);}return $t;}
    function toStr($h){$s='';$i=4;while($i-->0){$s.=chr($h>>(8*$i)&0xFF);}return $s;}
    $a=file_get_contents('/System/Library/Extensions/AppleIntelFramebufferCapri.kext/Contents/MacOS/AppleIntelFramebufferCapri');
    $b=-1;
    while($b++<16){
        if (($f=$b<<24|0x6601) && ($c=strpos($a,toStr($f)))===false &&
        ($f=$b<<24|0x6201) && ($c=strpos($a,toStr($f)))===false) continue;
        while (ord($a[$c+8]) > 0) $c=strpos($a,toStr($f),$c+1);
        echo '0x'.strtoupper(padHex($f,8)).' ('.(ord($a[$c+11])*16)."MiB)\n";
        $t=$p=array();
        foreach(str_split(substr($a,$c,108),12) as $d) {
            $t[]=toHex($d);
            if (in_array(substr(end($t),0,8),$entry)) $p[]=$ctype[substr(end($t),8,8)];
        }
        if (count($p)) echo implode(', ',$p)."\n";
        echo implode("\n",$t)."\n\n";
    }
    Code (Text):
    0x00006601 (96MiB)
    LVDS, DP, DP, DP
    000066010003040300000006
    000080010000002010070000
    100700000000000000000000
    000000000000000000000000
    010000000200000030000000
    020500000004000007000000
    030400000004000007000000
    040600000004000007000000
    000000000000000000000000

    0x01006601 (96MiB)
    LVDS, HDMI, DP, DP
    010066010103040300000006
    000080010000003010070000
    100700000000000000000000
    00000000f0d9050000000000
    010000000200000030000000
    020500000008000006000000
    030400000004000007010000
    040600000004000007010000
    020000001100110000000000

    0x02006601 (64MiB)
    LVDS
    020066010103010100000004
    000080010000002010070000
    100700000000000000de0500
    00000000f0d9050000000000
    010000000200000030000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000001200000000000000

    0x03006601 (64MiB)
    LVDS, DP, DP, DP
    030066010102040200000004
    000000010000002010070000
    100700000000000000000000
    000000000000000000000000
    050300000200000030000000
    020500000004000007040000
    030400000004000081000000
    040600000004000081000000
    000000000002001100000000

    0x04006601 (32MiB)
    LVDS
    040066010103010100000002
    000000010000001810070000
    100700000000000000da0500
    000000000000000000000000
    050300000200000030020000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000000000000000000

    0x05006201 (32MiB)
    DP, DP, DP
    050062010002030200000002
    000000010000002010070000
    100700000000000000000000
    000000000000000000000000
    020500000004000011000000
    030400000004000007010000
    040600000004000007010000
    000000000100000040000000
    000000000000110000000000

    0x06006201 (0MiB)
    060062010000000000000000
    000000000000001010070000
    100700000000000000000000
    000000000000000000000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000000000000000000

    0x07006201 (0MiB)
    070062010000000000000000
    000000000000001010070000
    100700000000000000000000
    000000000000000000000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000100000040000000
    000000000000000000000000

    0x08006601 (64MiB)
    LVDS, DP, DP
    080066010103030300000004
    000000010000002010070000
    100700000000000000000000
    00000000f0d9050000000000
    010000000200000030000000
    020500000004000007010000
    030400000004000007010000
    000000000100000040000000
    030000000100010010c80f00

    0x09006601 (64MiB)
    LVDS, DP, DP
    090066010103030300000004
    000000010000002010070000
    100700000000000000000000
    00000000f0d9050000000000
    010000000200000030000000
    020500000004000007010000
    030400000004000007010000
    000000000100000040000000
    030000000000010010c80f00

    0x0A006601 (32MiB)
    DP, DP, HDMI
    0a0066010002030200000002
    000000010000002010070000
    100700000000000000000000
    000000000000000000000000
    020500000004000007010000
    030400000004000007010000
    040600000008000006000000
    000000000100000040000000
    020000000000020010c80f00

    0x0B006601 (32MiB)
    DP, DP, HDMI
    0b0066010002030200000002
    000000010000002010070000
    100700000000000000000000
    000000000000000000000000
    020500000004000007010000
    030400000004000007010000
    040600000008000006000000
    000000000100000040000000
    000000000000020010c80f00

    Intel HD 5000
    Code (Text):
    <?php
    $ctype=array('02000000'=>'LVDS','04000000'=>'DDVI','08000000'=>'SVIDEO','10000000'=>'VGA','00020000'=>'SDVI','00040000'=>'DP','00080000'=>'HDMI','000c0000'=>'4k?');
    $entry=array('01051','02041','00001','03061');
    function padHex($d,$l) {return str_pad(dechex($d),$l,'0',STR_PAD_LEFT);}
    function toHex($s){$i=0;$t='';while(isset($s[$i])){$t.=padHex(ord($s[$i++]),2);}return $t;}
    function toStr($h){$s='';$i=4;while($i-->0){$s.=chr($h>>(8*$i)&0xFF);}return $s;}
    $f='/System/Library/Extensions/AppleIntelFramebufferAzul.kext/Contents/MacOS/AppleIntelFramebufferAzul';
    $a=fopen($f,'r');
    $s=array();
    exec("nm $f",$s);
    fseek($a,hexdec(array_shift(explode(' ',array_shift(preg_grep('/gPlat/',$s))))));
    while(true) {
            $p=array();
            $t=array_map('toHex',str_split(fread($a,108),12));
            fseek($a,-108,SEEK_CUR);
            $f=strtoupper(toHex(fread($a,4)));
            if ($f=='FFFFFFFF') break;
            fseek($a,7,SEEK_CUR);
            echo "0x$f (".(ord(fread($a,1))*16)."MiB)\n";
            fseek($a,28,SEEK_CUR);
            foreach(str_split(fread($a,68),12) as $f) {
                    $f=toHex($f);
                    if (in_array(substr($f,0,5),$entry,true)) $p[]=$ctype[substr($f,8,8)];
            }
            echo implode(', ',$p)."\n".implode("\n",$t)."\n\n";
            while (in_array(toHex(fread($a,4)),array('00000000','32000000')));
            fseek($a,-4,SEEK_CUR);
    }
    fclose($a);
    Code (Text):
    0x0000060C (64MiB)
    LVDS, DDVI, HDMI
    0000060c0003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x0000160C (64MiB)
    LVDS, DDVI, HDMI
    0000160c0003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x0000260C (64MiB)
    LVDS, DDVI, HDMI
    0000260c0003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x00000604 (64MiB)
    LVDS, DDVI, HDMI
    000006040003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x00001604 (64MiB)
    LVDS, DDVI, HDMI
    000016040003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x00002604 (64MiB)
    LVDS, DDVI, HDMI
    000026040003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x0000260D (64MiB)
    LVDS, DDVI, HDMI
    0000260d0003030300000004
    000000010000f00000000040
    991400009914000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x0000160A (64MiB)
    LVDS, DDVI, HDMI
    0000160a0003030300000004
    000000010000f00000000040
    d90a0000d90a000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x0000260A (64MiB)
    LVDS, DDVI, HDMI
    0000260a0003030300000004
    000000010000f00000000040
    d90a0000d90a000000000000
    000000000000100002000000
    300000000105120004000000
    040000000204120000080000
    82000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x02001604 (64MiB)
    LVDS
    020016040001010100000004
    000080010000800100000040
    991400009914000000000000
    000000000000100002000000
    30000000ff00010001000000
    40000000ff00010001000000
    40000000ff00010001000000
    400000000400000000000700
    040000000000000000000000

    0x0500260A (32MiB)
    LVDS, DP, DP
    0500260a0103030300000002
    000000010000500000000040
    d90a0000d90a000000000000
    000000000000100002000000
    300000000105120000040000
    870000000204120000040000
    87000000ff00010001000000
    400000000f00000001010000
    040000000000000000000000

    0x0600260A (32MiB)
    LVDS, DP, DP
    0600260a0103030300000002
    000000010000600000000040
    d90a0000d90a000000000000
    000000000000100002000000
    300000000105120000040000
    870000000204120000040000
    87000000ff00010001000000
    400000000f00000001010000
    040000000000000000000000

    0x0800260A (64MiB)
    LVDS, DP, 4k?
    0800260a0103030300000004
    000020020000000100000040
    6c0500006c05000000000000
    000000000000100002000000
    300000000105120000040000
    0701000002041400000c0000
    07010000ff00010001000000
    400000001e00000005050900
    040000000000000000000000

    0x08002E0A (64MiB)
    LVDS, DP, 4k?
    08002e0a0103030300000004
    000020020000000100000040
    6c0500006c05000000000000
    000000000000100002000000
    300000000105120000040000
    0701000002041400000c0000
    07010000ff00010001000000
    400000001e00000005050900
    040000000000000000000000

    0x0700260D (64MiB)
    LVDS, DP, DP, HDMI
    0700260d0103040300000004
    000020020000500100000040
    a1070000a107000000000000
    000000000000100002000000
    300000000105120000040000
    070100000204140000040000
    070100000306120000080000
    060000001e00000005050900
    040000000000000000000000

    0x0300220D (32MiB)
    DP, DP, DP
    0300220d0003030300000002
    000000010000000000000040
    991400009914000000000000
    000000000105120000040000
    870000000204140000040000
    870000000306100000040000
    11000000ff00010001000000
    400000000200000001010000
    040000000000000000000000

    0x04001204 (32MiB)

    040012040000000000000002
    000000000000000000000010
    000000000000000000000000
    00000000ff00010001000000
    40000000ff00010001000000
    40000000ff00010001000000
    40000000ff00010001000000
    400000000000000000000000
    040000000000000000000000
     
  3. windwalker

    windwalker

    Joined:
    Dec 10, 2011
    Messages:
    55
    Mobo:
    HP EliteBook 8740w
    CPU:
    Core i5 540M
    Graphics:
    ATI FirePro M7820
    Mobile Phone:
    Android
    Oct 26, 2013 at 3:45 PM #3
    windwalker

    windwalker

    Joined:
    Dec 10, 2011
    Messages:
    55
    Mobo:
    HP EliteBook 8740w
    CPU:
    Core i5 540M
    Graphics:
    ATI FirePro M7820
    Mobile Phone:
    Android
    What does this do and why?
     
  4. tonymacx86

    tonymacx86 Administrator Staff Member

    Joined:
    Nov 18, 2009
    Messages:
    8,295
    Mobo:
    GA-Z270X-UD5
    CPU:
    Core i3-7100
    Graphics:
    HD 630
    Mac:
    MacBook Pro, Mac mini
    Classic Mac:
    Apple, PowerBook
    Mobile Phone:
    iOS
    Oct 26, 2013 at 5:12 PM #4
    tonymacx86

    tonymacx86 Administrator Staff Member

    Joined:
    Nov 18, 2009
    Messages:
    8,295
    Mobo:
    GA-Z270X-UD5
    CPU:
    Core i3-7100
    Graphics:
    HD 630
    Mac:
    MacBook Pro, Mac mini
    Classic Mac:
    Apple, PowerBook
    Mobile Phone:
    iOS
  5. sonicseamus

    sonicseamus

    Joined:
    Jan 15, 2012
    Messages:
    614
    Mobo:
    GA-Z68MA-D2H-B3
    CPU:
    i5-2500K
    Graphics:
    HIS 5770
    Mac:
    iMac, MacBook Pro
    Classic Mac:
    iBook
    Mobile Phone:
    iOS
    Oct 26, 2013 at 9:30 PM #5
    sonicseamus

    sonicseamus

    Joined:
    Jan 15, 2012
    Messages:
    614
    Mobo:
    GA-Z68MA-D2H-B3
    CPU:
    i5-2500K
    Graphics:
    HIS 5770
    Mac:
    iMac, MacBook Pro
    Classic Mac:
    iBook
    Mobile Phone:
    iOS
    How about the HD4600 framebuffers? And for the Intel Graphics, how do we know which FB we should be using?
     
  6. SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    Oct 26, 2013 at 9:48 PM #6
    SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    theyre grouped by kernel extension, so anything >4000 is in HD5000 aka Azul

    --edit
    2000, 3000 -> in HD 3000
    2500, 4000 -> in HD 4000
    >4000 -> in HD 5000
     
    verbatim10 likes this.
  7. Yoyellow

    Yoyellow

    Joined:
    Jan 14, 2010
    Messages:
    114
    Mobo:
    GA-Z87MX-D3H
    CPU:
    i5 4670k
    Graphics:
    nvidia gtx 770
    Mac:
    MacBook Pro, Mac Pro
    Mobile Phone:
    iOS
    Oct 26, 2013 at 10:23 PM #7
    Yoyellow

    Yoyellow

    Joined:
    Jan 14, 2010
    Messages:
    114
    Mobo:
    GA-Z87MX-D3H
    CPU:
    i5 4670k
    Graphics:
    nvidia gtx 770
    Mac:
    MacBook Pro, Mac Pro
    Mobile Phone:
    iOS
    want me to run this on my new retina macbook? it has the new iris gpu init..
     
  8. iBlack

    iBlack

    Joined:
    Feb 23, 2011
    Messages:
    13
    Mobo:
    GA-Z68XP-UD3
    CPU:
    Core i7-2600k
    Graphics:
    GTX 560 Ti
    Mac:
    iMac, MacBook Air, MacBook Pro, Mac mini, Mac Pro
    Classic Mac:
    20th Anniv. Mac
    Mobile Phone:
    Android, iOS
    Oct 27, 2013 at 5:50 PM #8
    iBlack

    iBlack

    Joined:
    Feb 23, 2011
    Messages:
    13
    Mobo:
    GA-Z68XP-UD3
    CPU:
    Core i7-2600k
    Graphics:
    GTX 560 Ti
    Mac:
    iMac, MacBook Air, MacBook Pro, Mac mini, Mac Pro
    Classic Mac:
    20th Anniv. Mac
    Mobile Phone:
    Android, iOS
    /System/Library/Extensions/ATI*Controller.kext

    does not work for Mavericks it's

    /System/Library/Extensions/AMD*Controller.kext

    at least on my system.
     
  9. SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    Oct 27, 2013 at 8:10 PM #9
    SJ_UnderWater

    SJ_UnderWater Moderator

    Joined:
    Dec 3, 2010
    Messages:
    706
    Mobo:
    Gigabyte GA-H55M-S2V
    CPU:
    Intel i3-530
    Graphics:
    HIS HD 6570
    Mac:
    iMac
    Mobile Phone:
    Android
    Fixed with a file check
     
  10. dtrvndrn

    dtrvndrn

    Joined:
    Oct 2, 2011
    Messages:
    327
    Mobo:
    Gigabyte Z68MA-D2H-B3
    CPU:
    i7 2600k
    Graphics:
    GTX 670 (EVGA FTW 2GB)
    Mac:
    MacBook Pro
    Mobile Phone:
    Android
    Oct 29, 2013 at 2:01 PM #10
    dtrvndrn

    dtrvndrn

    Joined:
    Oct 2, 2011
    Messages:
    327
    Mobo:
    Gigabyte Z68MA-D2H-B3
    CPU:
    i7 2600k
    Graphics:
    GTX 670 (EVGA FTW 2GB)
    Mac:
    MacBook Pro
    Mobile Phone:
    Android
    I recently found out that the Command Line Tools can be downloaded independently from Xcode for previous OSX versions as well. It's a tiny download compared to Xcode. Search for it in Apple Developer.
     

Share This Page