Comments (6)
The Properties section references Headkaze's Intel FB patching guide (which goes into much more detail):
In the next section, I go over what swapping the hex bytes looks like, as well as examples for the potential ig-platform-ids:
Is there a way you think that could be worded more understandably?
from hackintosh-guide.
First, I would briefly define what an "ig-platform-id" actually is (because I certainly don't know and a web search didn't tell me either). I'll guess that the "ig" stands for "integrated graphics" but that's just a guess.
Next, how do we find the ig-platform-id that we need? Is it listed on Intel's website or do we need to use a tool or app to extract it from our system? If a tool or app, can it be done in macOS or Windows?
Third, once we have the appropriate ig-platform-id, how exactly do we "hex-swap" it? I don't know exactly what hex-byte swapping is in this context or how to do it. Is there a specific formula or a online hex-swapper that can be used? How do you get "07009B3E" from "0x3E9B0007"? What math did you use to do this? In an earlier section you show us how to do a base64 conversion. I think a similar explanation for hex-byte swapping would be helpful for us less mathematically gifted non-programmer types who are still curious as how things are done.
BTW, headkaze's thread doesn't show you how to do this, either. And he links to another thread in Russian, which isn't much help, especially since Google translate shouldn't be trusted because translation isn't 100% accurate or even 90% accurate in many cases.
So, to edit the section you quoted above, I would do the following with my additions in brackets:
Properties:
This section is setup via Headkaze's Intel Framebuffer Patching Guide and applies only one actual property to begin, which is the ig-platform-id. [Definition of ig-platform-id]. The way we get the proper value for this is to look at the ig-platform-id we intend to use, then swap the pairs of hex bytes. [How do we find the ig-platform-id we intend to use? By extracting it using this tool (insert url) or from a pre-made list that can be found here (insert url)].
If we think of our ig-plat as 0xAABBCCDD, our swapped version would look like 0xDDCCBBAA.
The two ig-platform-id's we use are as follows:
0x3E9B0007 - this is used when the iGPU is used to drive a display
07009B3E when hex-swapped
BwCbPg== when the hex-swapped version is converted to base64
0x3E920003 - this is used when the iGPU is only used for compute tasks, and doesn't drive a display
0300923E when hex-swapped
AwCSPg== when the hex-swapped version is converted to base64
[To swap the hex-bytes of an ig-platform-id, you can use this simple command in the Terminal or this online converter.]
from hackintosh-guide.
I agree on the "where do we get the ig-platform-id that we need" part
from hackintosh-guide.
[To swap the hex-bytes of an ig-platform-id, you can use this simple command in the Terminal or this online converter.]
I guess this is where I'm getting confused. I've explained the swap via the following: If we think of our ig-plat as 0xAABBCCDD, our swapped version would look like 0xDDCCBBAA.
So, using that formula, if we have 0x01020304
and we want to swap it, we get 0x04030201
. You don't need an online converter or anything to move the pairs of digits into a different order.
I do think you're right in explaining what the ig-platform-id's are, and where they come from. For that - I might run some info by you and see if it's clear enough to understand.
You can think of an ig-platform-id as a type of "configuration" for the number of ports, amount of memory, and etc for the iGPU. These are already stored in the framebuffer kexts that correspond to each iGPU family (AppleIntelCFLGraphicsFramebuffer.kext correpsonds to Coffee Lake [also known as CFL], for instance). To figure out which ig-platform-id corresponds to what settings, you'd need to dive into the framebuffer kext itself. The Clover devs have already done this, though, and the information is stored in the gma.c file of the Clover source. I wrote a python script that can download this file and re-format all of the found ig-platform-id's, along with their hex-swapped and base64 counterparts and descriptions so you can see which would work best for your uses.
A sample of the Coffee Lake output from my GetPlatforms script looks like so:
coffeelake ig-platform-id's:
Hex Hex-Swap Base64
0x3E000000 - 0000003E - AAAAPg== //0 Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3E910003 - 0300913E - AwCRPg== //1 Intel UHD Graphics 630 - Mobile: 0, PipeCount: 0, PortCount: 0, STOLEN: 0MB, FBMEM: 0MB, VRAM: 1536MB, Connector:, BL: 0xFFFF
0x3E920000 - 0000923E - AACSPg== //2 Intel UHD Graphics 630 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3E920003 - 0300923E - AwCSPg== //3 Intel UHD Graphics 630 - Mobile: 0, PipeCount: 0, PortCount: 0, STOLEN: 0MB, FBMEM: 0MB, VRAM: 1536MB, Connector:, BL: 0xFFFF
0x3E920009 - 0900923E - CQCSPg== //4 Intel UHD Graphics 630 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DUMMY2, BL: 0xFFFF
0x3E9B0000 - 00009B3E - AACbPg== //5 *MacBookPro15,1 - Intel UHD Graphics 630 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3E9B0006 - 06009B3E - BgCbPg== //6 Intel UHD Graphics 630 - Mobile: 1, PipeCount: 1, PortCount: 1, STOLEN: 38MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1, BL: 0xFFFF
0x3E9B0007 - 07009B3E - BwCbPg== //7 *Macmini8,1 - Intel UHD Graphics 630 - Mobile: 0, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3E9B0009 - 09009B3E - CQCbPg== //8 Intel UHD Graphics 630 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3EA50000 - 0000A53E - AAClPg== //9 Intel Iris Plus Graphics 655 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3EA50004 - 0400A53E - BAClPg== //10 *MacBookPro15,2 - Intel Iris Plus Graphics 655 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
0x3EA50009 - 0900A53E - CQClPg== //11 Intel Iris Plus Graphics 655 - Mobile: 1, PipeCount: 3, PortCount: 3, STOLEN: 57MB, FBMEM: 0MB, VRAM: 1536MB, Connector: LVDS1/DP2, BL: 0xFFFF
From this list, you can find out whether or not it's a Mobile ig-platform-id, how many ports it has, how much stolen memory it needs, VRAM, and the connectors it has.
Thoughts?
-CorpNewt
from hackintosh-guide.
CorpNewt,
I really like explanation you added above. It clarifies things greatly. Thanks.
As for the hex-byte swap confusion, I'm so embarrassed. It's so obvious now but for some reason I didn't notice you were swapping pairs of numbers. My brain just didn't see the pattern, possibly because I had been reading the base64 conversion section immediately prior and was expecting hex-byte swapping to be more complicated that it actually was. Oh well.
Sorry for the confusion my comments regarding the hex-byte swapping caused.
from hackintosh-guide.
I'll look to add that description for the ig-plat in the near future. I think I'll also change my hex swap example to 0xAaBbCcDd
and 0xDdCcBbAa
as that implies the original pairs are just reordered without going from 0x12345678
to 0x87654321
and have everything reversed.
Thanks for the input!
-CorpNewt
from hackintosh-guide.
Related Issues (17)
- ACPI names are *always* 4 characters HOT 1
- Why no Broadwell config.plist HOT 3
- ACPI trouble HOT 2
- USB Installer - need to give a link/explanation w.r.t. "partial" Install downloads HOT 1
- AptioMemoryFix no longer available in Clover ^v4988 HOT 3
- USBMap Guide HOT 1
- CC download doesn't seem to work HOT 4
- Can someone please update this for Catalina? HOT 2
- Ivy Bridge config.plist HOT 6
- Sandy Bridge config.plist HOT 1
- How to use it for CometLake?
- Tools
- Coffee lake: animations lag and iGPU Metal support HOT 10
- Missing -n in echo HOT 2
- Looks like this line is incorrect? HOT 3
- Missing instructions for using kexts in wiki HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hackintosh-guide.