Jump to content

Clover Problems and Solutions


ErmaC
3,206 posts in this topic

Recommended Posts

Create two new files and place one of them to HFS+ partition and other one to ESP.

Reboot to Clover, to Shell and compare modification date for these two files.

HFS+ - UTC time

ESP - local time.

For me the difference is 3 hours while they created simultaneously.

Link to comment
Share on other sites

@Slice

hello. i see gma.c code.
it had many dummy list and no clear.
so i decided to clear code and updated all intel graphics data and rewritten it.

i had tested code many time with debug for 3 days.
all are good working.

- No acpi injection, no fakeid, input ig-platform id 19160000
42:078 0:000 Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)
42:078 0:000 ig-platform-id = 19160000

42:078 0:000 Intel GFX revision = 0x7

- No acpi injection, no fakeid, no ig-platform id
23:662 0:000 Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)
23:662 0:000   Not set ig-platform-id. Automatically detect it or use ACPI injection
23:662 0:000 Intel GFX revision = 0x7

-- No acpi injection, input fakeid, input ig-platform id in config.plist
58:310 0:000 Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)
58:310 0:000   FakeIntel = 0x19168086
58:310 0:000   ig-platform-id = 19160000

58:310 0:000 Intel GFX revision = 0x7

features
-don’t worry ssdt injection. if you have ig-platform-id and etc in ssdt, clover uses these values
-if you don’t know ig-platform-id and device-id, place empty. Clover automatically detect ig-platform-id. support since GMA 915 to kabylake. in future, if apple release kabylake product, i will change it. now support kabylake by using skylake's ig-platform-id
- added logs. because that laptop has special gpu need to fakeid and ig-platform-id. we can easily debug it from users.
- no more exist glitch with skylake and kabylake. clover support it
- no need to add property snb-platformdata or etc in acpi injection when install snow leopard.


thanks in advance

gma.c-Sherlocks.zip

  • Like 7
Link to comment
Share on other sites

@Slice

i see EDID Bugs. only works old way EDID injection in latest clover.
so. i decided to fix this issue.

i had tested this code with debug for 3 days. no problem with clover build :wink_anim:

there are proves.

 


case 1
no inject
no Custom
no VendorID
no ProductID

1:825 0:000 === [ RestSetup macOS ] ===================================
1:825 0:000 EdidDiscovered size=128
1:825 0:000 Not Inject EDID
1:825 0:000 | EDID Table
1:825 0:000 000 | 00 FF FF FF FF FF FF 00 30 E4
1:825 0:000 010 | EB 04 00 00 00 00 00 19 01 04


case 2
yes inject
no Custom
no VendorID
no ProductID
4:740 0:000 === [ RestSetup macOS ] ===================================
4:740 0:000 EdidDiscovered size=128
4:740 0:000 Inject EDID
4:740 0:000 No Custom EDID
4:740 0:000 | EDID Table
4:740 0:000 000 | 00 FF FF FF FF FF FF 00 30 E4
4:740 0:000 010 | EB 04 00 00 00 00 00 19 01 04


case 3
yes inject
yes Custom
no VendorID
no ProductID

1:721 0:000 === [ RestSetup macOS ] ===================================
1:721 0:000 EdidDiscovered size=128
1:721 0:000 Inject EDID
1:721 0:000 Use Custom EDID
1:721 0:000 | CustomEDID Table
1:721 0:000 000 | 00 FF FF FF FF FF FF 00 30 E5
1:721 0:000 010 | EB 24 00 00 00 00 00 19 01 04

case 4
yes inject
yes Custom
no VendorID
yes ProductID
1:650 0:000 === [ RestSetup macOS ] ===================================
1:650 0:000 EdidDiscovered size=128
1:650 0:000 Inject EDID
1:650 0:000 Use Custom EDID
1:650 0:000 | CustomEDID Table
1:650 0:000 000 | 00 FF FF FF FF FF FF 00 30 E5
1:650 0:000 010 | EB 24 00 00 00 00 00 19 01 04

1:650 0:000 ProductID = 0x9C3A
1:650 0:000 | New Custom EDID Table
1:650 0:000 000 | 00 FF FF FF FF FF FF 00 30 E5
1:650 0:000 010 | 3A 9C 00 00 00 00 00 19 01 04

case 5
yes inject
yes Custom
yes VendorID
no ProductID
1:556 0:000 === [ RestSetup macOS ] ===================================
1:556 0:000 EdidDiscovered size=128
1:556 0:000 Inject EDID
1:556 0:000 Use Custom EDID
1:556 0:000 | Custom EDID Table
1:556 0:000 000 | 00 FF FF FF FF FF FF 00 30 E5
1:556 0:000 010 | EB 24 00 00 00 00 00 19 01 04

1:556 0:000 VendorID = 0x1006
1:556 0:000 | New Custom EDID Table
1:556 0:000 000 | 00 FF FF FF FF FF FF 00 06 10
1:556 0:000 010 | EB 24 00 00 00 00 00 19 01 04

case6
yes inject
yes Custom
yes VendorID
yes ProductID
1:634 0:000 === [ RestSetup macOS ] ===================================
1:634 0:000 EdidDiscovered size=128
1:634 0:000 Inject EDID
1:634 0:000 Use Custom EDID
1:634 0:000 | Custom EDID Table
1:634 0:000 000 | 00 FF FF FF FF FF FF 00 30 E5
1:634 0:000 010 | EB 24 00 00 00 00 00 19 01 04

1:634 0:000 VendorID = 0x1006
1:634 0:000 ProductID = 0x9C3A
1:634 0:000 | New Custom EDID Table
1:634 0:000 000 | 00 FF FF FF FF FF FF 00 06 10
1:634 0:000 010 | 3A 9C 00 00 00 00 00 19 01 04

Other cases are omitted. The test has already been completed.
all cases are resolved.


note. in case 1, most of users use it. so i did omit this log “Not Inject EDID” in attached files.
case 1
no inject
no Custom
no VendorID
no ProductID

1:825 0:000 === [ RestSetup macOS ] ===================================
1:825 0:000 EdidDiscovered size=128
1:825 0:000 Not Inject EDID -> will not show
1:825 0:000 | EDID Table
1:825 0:000 000 | 00 FF FF FF FF FF FF 00 30 E4
1:825 0:000 010 | EB 04 00 00 00 00 00 19 01 04



features
- we don’t need to add edid information from windows. it’s same EDID values.
- no more have pain import EDID information from darwin dump. you can easily use EDID.
- if you don’t know your EDID, enable injection, and put what you want in VendorID or ProductID
- When you have Custom EDID value, if you want to change ProductID hex in 128 data, After change hex, You don’t know checksum value. don’t worry. clover auto-change EDID checksum.
- no more divide old and new way

format
<key>Custom</key>
<data>
</data>
<key>Inject</key>
<true/>
<key>ProductID</key>
<string>0x9c3a</string> ——> most of apple’s laptop uses xx9c
<key>VendorID</key>
<string>0x1006</string> ——> Apple use 0610
 

 

V2) i did commented some log(No Custom EDID, etc)/

 

V3)

better smart behavior about Custom EDID checksum

 

2:661  0:000  === [ RestSetup macOS ] ===================================
2:661  0:000  EdidDiscovered size=128
2:661  0:000  Inject EDID
2:661  0:000    Use Custom EDID
2:661  0:000      Custom EDID Checksum = 82
2:661  0:000      Custom EDID Checksum is wrong
2:661  0:000      Fixed Custom EDID Checksum = 4F
2:661  0:000          |  Custom EDID table with fixed Checksum
2:661  0:000  000  |  00  FF  FF  FF  FF  FF  FF  00  06  10
2:661  0:000  010  |  3D  9C  00  00  00  00  00  19  01  04
2:661  0:000  120  |  38  2D  53  50  41  31  00  4F

 

thanks in advance. have a great day :)

EDID-SherlocksV3.zip

  • Like 3
Link to comment
Share on other sites

@Slice

 

hello. i see gma.c code.

it had many dummy list and no clear.

so i decided to clear code and updated all intel graphics data and rewritten it.

 

i had tested code many time with debug for 3 days.

all are good working.

 

- No acpi injection, no fakeid, input ig-platform id 19160000

42:078 0:000 Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)

42:078 0:000 ig-platform-id = 19160000

42:078 0:000 Intel GFX revision = 0x7

 

- No acpi injection, no fakeid, no ig-platform id

23:662 0:000 Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)

23:662 0:000   Not set ig-platform-id. Automatically detect it or use ACPI injection

23:662 0:000 Intel GFX revision = 0x7

 

-- No acpi injection, input fakeid, input ig-platform id in config.plist

58:310 0:000 Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)

58:310 0:000   FakeIntel = 0x19168086

58:310 0:000   ig-platform-id = 19160000

58:310 0:000 Intel GFX revision = 0x7

features

-don’t worry ssdt injection. if you have ig-platform-id and etc in ssdt, clover uses these values

-if you don’t know ig-platform-id and device-id, place empty. Clover automatically detect ig-platform-id. support since GMA 915 to kabylake. in future, if apple release kabylake product, i will change it. now support kabylake by using skylake's ig-platform-id

- added logs. because that laptop has special gpu need to fakeid and ig-platform-id. we can easily debug it from users.

- no more exist glitch with skylake and kabylake. clover support it

- no need to add property snb-platformdata or etc in acpi injection when install snow leopard.

 

 

thanks in advance

Hey Sherlocks,

Should every "case" be ended by "break"? For example here:

            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //

Link to comment
Share on other sites

 

Hey Sherlocks,

Should every "case" be ended by "break"? For example here:

            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //

 

Q.Should every "case" be ended by "break"? For example here:

A. NO. no need every break

 

 

i tested my build with skylake hd 520.

clover detect my igpu id "case 0x1916:" and use devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);

                if ((gma_dev->device_id >= 0x1902) && (gma_dev->device_id <= 0x193d)){
                    if ((MacModel == iMac171) || (MacModel == MacPro61)){
                        devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);
                        devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); //<01000000>
                        break;
                    }
                    devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);
                    devprop_add_value(device, "AAPL,Gfx324", skylake_hd_vals[0], 4);  //<01000000>
                    devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); //<01000000>
                    devprop_add_value(device, "AAPL00,PanelCycleDelay", skylake_hd_vals[2], 4); //<fa000000>
                    devprop_add_value(device, "AAPL00,PanelPowerDown", skylake_hd_vals[3], 4);  //<3c000000>
                    devprop_add_value(device, "AAPL00,PanelPowerOff", skylake_hd_vals[4], 4);  //<11000000>
                    devprop_add_value(device, "AAPL00,PanelPowerOn", skylake_hd_vals[5], 4);  //<19010000>
                    devprop_add_value(device, "AAPL00,PanelPowerUp", skylake_hd_vals[6], 4);  //<30000000>
                    devprop_add_value(device, "graphic-options", skylake_hd_vals[7], 4);  //<0c000000>
                    break;
                }

and my id include ((gma_dev->device_id >= 0x1902) && (gma_dev->device_id <= 0x193d)

 

then use devprop_add_values, then use "break;"

 

sorry my english. anyway no problem. :)

Link to comment
Share on other sites

May be it must be

            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
               break;
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
               break;
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //

?

  • Like 1
Link to comment
Share on other sites

A. NO. no need every break

Sure you do. This either works because the callee does return when the value is already set or because the compiler operates out of spec.

 

EDIT: Well, like Slice suggested, every 'case block', not literally every case.

  • Like 1
Link to comment
Share on other sites

May be it must be

            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
               break;
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
               break;
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //

?

Wait a minutes. I will give you debug log to surely check operation

 

나의 LG-F410S 의 Tapatalk에서 보냄

May be it must be

            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
               break;
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
               break;
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //

?

 

 

here is log

my default code

            case 0x1902: // "Intel HD Graphics 510"           //
            case 0x1906: // "Intel HD Graphics 510"           //
            case 0x190A: // "Intel Skylake GT1"               //
            case 0x190B: // "Intel HD Graphics 510"           //
            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
                DBG("  get hd530 id\n");
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
                DBG("  get hd520 id\n");
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //
            case 0x191B: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[3], 4);
            case 0x191D: // "Intel HD Graphics P530"          //
            case 0x191E: // "Intel HD Graphics 515"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[0], 4);
            case 0x1921: // "Intel Skylake GT2"               //
            case 0x1923: // "Intel HD Graphics 535"           //
            case 0x1926: // "Intel Iris Graphics 540"         //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[7], 4);
            case 0x1927: // "Intel Iris Graphics 550"         //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[2], 4);
            case 0x192A: // "Intel Skylake GT4"               //
            case 0x192B: // "Intel Iris Graphics 555"         //
            case 0x192D: // "Intel Iris Graphics P555"        //
            case 0x1932: // "Intel Iris Pro Graphics 580"     //
            case 0x193A: // "Intel Iris Pro Graphics P580"    //
            case 0x193B: // "Intel Iris Pro Graphics 580"     //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[10], 4);
            case 0x193D: // "Intel Iris Pro Graphics P580"    //
                if ((gma_dev->device_id == 0x191D) || (gma_dev->device_id == 0x1923)){
                    device_id = 0x00001912;
                    devprop_add_value(device, "device-id", (UINT8*)&device_id, sizeof(device_id));
                    devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
                }
                else if ((gma_dev->device_id == 0x192B) || (gma_dev->device_id == 0x192D)){
                    device_id = 0x00001927;
                    devprop_add_value(device, "device-id", (UINT8*)&device_id, sizeof(device_id));
                    devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[2], 4);
                }
                else if ((gma_dev->device_id == 0x1932) || (gma_dev->device_id == 0x193A) || (gma_dev->device_id == 0x193D)){
                    device_id = 0x0000193B;
                    devprop_add_value(device, "device-id", (UINT8*)&device_id, sizeof(device_id));
                    devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[10], 4);
                }
                if ((gma_dev->device_id >= 0x1902) && (gma_dev->device_id <= 0x193d)){
                    if ((MacModel == iMac171) || (MacModel == MacPro61)){
                        devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);
                        devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); //<01000000>
                        break;
                    }
                    devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);
                    devprop_add_value(device, "AAPL,Gfx324", skylake_hd_vals[0], 4);  //<01000000>
                    devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); //<01000000>
                    devprop_add_value(device, "AAPL00,PanelCycleDelay", skylake_hd_vals[2], 4); //<fa000000>
                    devprop_add_value(device, "AAPL00,PanelPowerDown", skylake_hd_vals[3], 4);  //<3c000000>
                    devprop_add_value(device, "AAPL00,PanelPowerOff", skylake_hd_vals[4], 4);  //<11000000>
                    devprop_add_value(device, "AAPL00,PanelPowerOn", skylake_hd_vals[5], 4);  //<19010000>
                    devprop_add_value(device, "AAPL00,PanelPowerUp", skylake_hd_vals[6], 4);  //<30000000>
                    devprop_add_value(device, "graphic-options", skylake_hd_vals[7], 4);  //<0c000000>
                    DBG("  completed add skylake hd vals\n");
                    break;
                    DBG("  stop or contiunues?\n");
                }

result

30:394  0:000  Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)
30:394  0:000    Not set ig-platform-id. Automatically detect it or use ACPI injection
30:394  0:000    get hd520 id
30:394  0:000    completed add skylake hd vals

your suggestion

                //----------------Skylake--------------------
            case 0x1902: // "Intel HD Graphics 510"           //
            case 0x1906: // "Intel HD Graphics 510"           //
            case 0x190A: // "Intel Skylake GT1"               //
            case 0x190B: // "Intel HD Graphics 510"           //
            case 0x190E: // "Intel Skylake GT1"               //
            case 0x1912: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
                DBG("  get hd530 id\n");
                break;
            case 0x1913: // "Intel Skylake GT2f"              //
            case 0x1915: // "Intel Skylake GT2f"              //
            case 0x1916: // "Intel HD Graphics 520"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[1], 4);
                DBG("  get hd520 id\n");
                break;
            case 0x1917: // "Intel Skylake GT2f"              //
            case 0x191A: // "Intel Skylake GT2"               //
            case 0x191B: // "Intel HD Graphics 530"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[3], 4);
            case 0x191D: // "Intel HD Graphics P530"          //
            case 0x191E: // "Intel HD Graphics 515"           //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[0], 4);
            case 0x1921: // "Intel Skylake GT2"               //
            case 0x1923: // "Intel HD Graphics 535"           //
            case 0x1926: // "Intel Iris Graphics 540"         //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[7], 4);
            case 0x1927: // "Intel Iris Graphics 550"         //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[2], 4);
            case 0x192A: // "Intel Skylake GT4"               //
            case 0x192B: // "Intel Iris Graphics 555"         //
            case 0x192D: // "Intel Iris Graphics P555"        //
            case 0x1932: // "Intel Iris Pro Graphics 580"     //
            case 0x193A: // "Intel Iris Pro Graphics P580"    //
            case 0x193B: // "Intel Iris Pro Graphics 580"     //
                devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[10], 4);
            case 0x193D: // "Intel Iris Pro Graphics P580"    //
                if ((gma_dev->device_id == 0x191D) || (gma_dev->device_id == 0x1923)){
                    device_id = 0x00001912;
                    devprop_add_value(device, "device-id", (UINT8*)&device_id, sizeof(device_id));
                    devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[5], 4);
                }
                else if ((gma_dev->device_id == 0x192B) || (gma_dev->device_id == 0x192D)){
                    device_id = 0x00001927;
                    devprop_add_value(device, "device-id", (UINT8*)&device_id, sizeof(device_id));
                    devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[2], 4);
                }
                else if ((gma_dev->device_id == 0x1932) || (gma_dev->device_id == 0x193A) || (gma_dev->device_id == 0x193D)){
                    device_id = 0x0000193B;
                    devprop_add_value(device, "device-id", (UINT8*)&device_id, sizeof(device_id));
                    devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[10], 4);
                }
                if ((gma_dev->device_id >= 0x1902) && (gma_dev->device_id <= 0x193d)){
                    if ((MacModel == iMac171) || (MacModel == MacPro61)){
                        devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);
                        devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); //<01000000>
                        break;
                    }
                    devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);
                    devprop_add_value(device, "AAPL,Gfx324", skylake_hd_vals[0], 4);  //<01000000>
                    devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); //<01000000>
                    devprop_add_value(device, "AAPL00,PanelCycleDelay", skylake_hd_vals[2], 4); //<fa000000>
                    devprop_add_value(device, "AAPL00,PanelPowerDown", skylake_hd_vals[3], 4);  //<3c000000>
                    devprop_add_value(device, "AAPL00,PanelPowerOff", skylake_hd_vals[4], 4);  //<11000000>
                    devprop_add_value(device, "AAPL00,PanelPowerOn", skylake_hd_vals[5], 4);  //<19010000>
                    devprop_add_value(device, "AAPL00,PanelPowerUp", skylake_hd_vals[6], 4);  //<30000000>
                    devprop_add_value(device, "graphic-options", skylake_hd_vals[7], 4);  //<0c000000>
                    DBG("  completed add skylake hd vals\n");
                    break;
                    DBG("  stop or contiunues?\n");
                }


your suggestion result

28:191  0:000  Intel HD Graphics 520 [8086:1916] :: PciRoot(0x0)\Pci(0x2,0x0)
28:191  0:000    Not set ig-platform-id. Automatically detect it or use ACPI injection
28:191  0:000    get hd520 id
28:191  0:000  Intel GFX revision  = 0x7
28:191  0:000   RCBA disabled; cannot use it

never use every break. ;)

 

i used example some graphic card. because i don't have other graphic card. rehabman gave one ig-platform-id and device-id information intel graphic. i reflected his result. also some model use other vals. so i did example case. anyway don't worry

example 

if ((gma_dev->device_id >= 0x1902) && (gma_dev->device_id <= 0x193d)){ . ==> for divide model or etc...

 

 

@Slice

remove "device_id = 0x00000a26;" to clear code

 

// if set ig-platform-id

 

  else {

 

          case 0x0D22: // "Intel Iris Pro 5200"             //

          case 0x0D26: // "Intel Iris Pro 5200"             // Intel Haswell i7 4860HQ

          case 0x0D2A: // "Intel Haswell"                   //

          case 0x0D2B: // "Intel Haswell"                   //

          case 0x0D2E: // "Intel Haswell"                   //

              if ((gma_dev->device_id >= 0x0402) && (gma_dev->device_id <= 0x042E)){

                  devprop_add_value(device, "built-in", &BuiltIn, 1);

                  devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);

                  devprop_add_value(device, "AAPL,gray-value", haswell_hd_vals[0], 4);

                  devprop_add_value(device, "graphic-options", haswell_hd_vals[1], 4);

                  break;

              }

              else if ((gma_dev->device_id >= 0x0A02) && (gma_dev->device_id <= 0x0A2E)){

                  device_id = 0x00000a26;

                  devprop_add_value(device, "built-in", &BuiltIn, 1);

                  devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);

                  devprop_add_value(device, "AAPL,gray-value", haswell_hd_vals[0], 4);

                  devprop_add_value(device, "graphic-options", haswell_hd_vals[1], 4);

                  break;

              }

              else if ((gma_dev->device_id >= 0x0C02) && (gma_dev->device_id <= 0x0C2E)){

                  devprop_add_value(device, "built-in", &BuiltIn, 1);

                  devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);

                  devprop_add_value(device, "AAPL,gray-value", haswell_hd_vals[0], 4);

                  devprop_add_value(device, "graphic-options", haswell_hd_vals[1], 4);

                  break;

              }

              else if ((gma_dev->device_id >= 0x0D02) && (gma_dev->device_id <= 0x0D2E)){

                  devprop_add_value(device, "built-in", &BuiltIn, 1);

                  devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-1", 10);

                  devprop_add_value(device, "AAPL,gray-value", haswell_hd_vals[0], 4);

                  devprop_add_value(device, "graphic-options", haswell_hd_vals[1], 4);

                  break;

              }

Link to comment
Share on other sites

Without "break" case 1912 and 1916 will have same ig-platform-id as the last one.

If case is not ended with break then it will fall to next lines. Then you reassign ig-platform-id.


Anyway, there is no strict rule DeviceID -> ig-platform-id.

Even with the same device user will need different ig-platform-id.

Link to comment
Share on other sites

Without "break" case 1912 and 1916 will have same ig-platform-id as the last one.

If case is not ended with break then it will fall to next lines. Then you reassign ig-platform-id.

 

Anyway, there is no strict rule DeviceID -> ig-platform-id.

Even with the same device user will need different ig-platform-id.

So we just add skylake hd vals hd520 and hd530? Each in every?

 

If have break, clover can't get skylake hd vals.

 

I wonder debug shown no problem.

 

Goal is not strict to use ig-platform-id. I know there is many case.

 

It just operate if user don't know ig-platformdata and Deviceid. I just used known device id and ig-platform.

 

Rehabman support laptop conflig file in various graphic card. His data almost was proved by many laptop users and me

 

If user have ig-platform-id, device-id, clover not strict

 

나의 LG-F410S 의 Tapatalk에서 보냄

Link to comment
Share on other sites

We can use goto instead of break.

Okay. goto is better.

 

In the future, i will research more detail from ioreg and everymac site.

 

And will arrange data again.

 

Most of users is no problem now in new code.

 

나의 LG-F410S 의 Tapatalk에서 보냄

Link to comment
Share on other sites

never use every break. ;)

Sorry, but that control flow pretty much looks like garbage. Remember you utilize conditionless fallthrough, which means if the condition at the top (case 0x1902) is met, every single statement in the switch block is executed, even the devprop_add_value() of the other models - I guess it won't do anything on second call because a value is already set, but changing that will break this code for no obvious reason.

Do I see that right that it's "switch (gma_dev->device_id)"? If so, why check within the switch once more instead of just moving the if-check outside so you don't need goto or some other crazy stuff?

  • Like 1
Link to comment
Share on other sites

Sorry, but that control flow pretty much looks like garbage. Remember you utilize conditionless fallthrough, which means if the condition at the top (case 0x9102) is met, every single statement in the switch block is executed, even the devprop_add_value() of the other models - I guess it won't do anything on second call because a value is already set, but changing that will break this code for no obvious reason.

Do I see that right that it's "switch (gma_dev->device_id)"? If so, why check within the switch once more instead of just moving the if-check outside so you don't need goto or some other crazy stuff?

Thanks i will try to make better code.

 

나의 LG-F410S 의 Tapatalk에서 보냄

  • Like 1
Link to comment
Share on other sites

sorry break is better than goto for reading code.

The problem is common blocks which will be ignored with "break".

It is also possible to call common procedures or just rewrite the codes from initial.

  • Like 1
Link to comment
Share on other sites

this isn't the place to explain how to code and importance of producing readable code but one would have imagined that members with titles such as coder and developer would already know the benefits of such enlightenment.

 

browsing the source code i was clearly wrong.

  • Like 1
Link to comment
Share on other sites

Sorry, but that control flow pretty much looks like garbage. Remember you utilize conditionless fallthrough, which means if the condition at the top (case 0x9102) is met, every single statement in the switch block is executed, even the devprop_add_value() of the other models - I guess it won't do anything on second call because a value is already set, but changing that will break this code for no obvious reason.

Do I see that right that it's "switch (gma_dev->device_id)"? If so, why check within the switch once more instead of just moving the if-check outside so you don't need goto or some other crazy stuff?

The problem is common blocks which will be ignored with "break".

It is also possible to call common procedures or just rewrite the codes from initial.

i will make better code included all intel graphic information(since 1st intel graphic, til kabylake).

also checked ioreg of each model. i will change what you said. until upload here, i will check code many times.

 

thanks @Slice @Download-Fritz for idea to improve my brain. :rolleyes:

this isn't the place to explain how to code and importance of producing readable code but one would have imagined that members with titles such as coder and developer would already know the benefits of such enlightenment.

 

browsing the source code i was clearly wrong.

 

right. i spent times to test EDID and get gma you can see many line in gma. it causes confusion to make code and can't think better idea at that time. structure is easy and wrong as basic in last code.

i'm not good coder. but if someone give me idea, i can make. anyway i hope to help clover bootloader is clear and better

browsing the source code i was clearly wrong.

- i'm sorry.

  • Like 1
Link to comment
Share on other sites

what changes are in the test zip. and am i supposed to use it for your case study?

Remove to use strict option and fixed duallink issue and etc.

Report What i said above whether boot or not each cases.

 

Almost done in test file.

Include information Since first generation to 9.5th gernation intel graphic and according to each smbios or deviceid, support best match ig-platform-id to boot osx if you don't have fakeid,ig-platform-id.

 

When only both fakeid and ig-platformid have blank, clover start auto-detection. Also injection too.

 

Ofc acpi injection works when you have fakeid and ig-platform-id

 

Thanks in advance

 

나의 LG-F410S 의 Tapatalk에서 보냄

Link to comment
Share on other sites

×
×
  • Create New...