1 | /*␊ |
2 | * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.␊ |
3 | * All Rights Reserved.␊ |
4 | * Copyright © 2010 Intel Corporation␊ |
5 | *␊ |
6 | * Permission is hereby granted, free of charge, to any person obtaining a␊ |
7 | * copy of this software and associated documentation files (the "Software"),␊ |
8 | * to deal in the Software without restriction, including without limitation␊ |
9 | * the rights to use, copy, modify, merge, publish, distribute, sublicense,␊ |
10 | * and/or sell copies of the Software, and to permit persons to whom the␊ |
11 | * Software is furnished to do so, subject to the following conditions:␊ |
12 | *␊ |
13 | * The above copyright notice and this permission notice (including the next␊ |
14 | * paragraph) shall be included in all copies or substantial portions of the␊ |
15 | * Software.␊ |
16 | *␊ |
17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR␊ |
18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,␊ |
19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL␊ |
20 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER␊ |
21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,␊ |
22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE␊ |
23 | * SOFTWARE.␊ |
24 | *␊ |
25 | */␊ |
26 | ␊ |
27 | /*␊ |
28 | ␉Original patch by Nawcom␊ |
29 | ␉http://forum.voodooprojects.org/index.php/topic,1029.0.html␊ |
30 | ␊ |
31 | ␉Original Intel HDx000 code from valv␊ |
32 | ␉Intel Ivy Bridge, Haswell and Broadwell code from ErmaC:␊ |
33 | ␉- http://www.insanelymac.com/forum/topic/288241-intel-hd4000-inject-aaplig-platform-id/␊ |
34 | */␊ |
35 | ␊ |
36 | #include "libsa.h"␊ |
37 | #include "saio_internal.h"␊ |
38 | #include "bootstruct.h"␊ |
39 | #include "pci.h"␊ |
40 | #include "platform.h"␊ |
41 | #include "device_inject.h"␊ |
42 | #include "convert.h"␊ |
43 | #include "gma.h"␊ |
44 | #include "vbe.h"␊ |
45 | #include "graphics.h"␊ |
46 | ␊ |
47 | #ifndef DEBUG_GMA␊ |
48 | ␉#define DEBUG_GMA 0␊ |
49 | #endif␊ |
50 | ␊ |
51 | #ifndef REPLACE_DEVICE_ID␊ |
52 | ␉#define REPLACE_DEVICE_ID 0␊ |
53 | #endif␊ |
54 | ␊ |
55 | #if DEBUG_GMA␊ |
56 | ␉#define DBG(x...)␉printf(x)␊ |
57 | #else␊ |
58 | ␉#define DBG(x...)␊ |
59 | #endif␊ |
60 | ␊ |
61 | static bool␉doit␉= false;␊ |
62 | ␊ |
63 | static uint8_t default_aapl_snb[]␉␉=␉{ 0x00,0x03,0x00,0x01 };␊ |
64 | #define AAPL_LEN_SNB ( sizeof(default_aapl_snb) / sizeof(uint8_t) )␊ |
65 | ␊ |
66 | static uint8_t default_aapl_ivy[]␉␉=␉{ 0x05,0x00,0x62,0x01 }; // ivy_bridge_ig_vals[5]␊ |
67 | #define AAPL_LEN_IVY ( sizeof(default_aapl_ivy) / sizeof(uint8_t) )␊ |
68 | ␊ |
69 | static uint8_t default_aapl_haswell[]␉␉=␉{ 0x00,0x00,0x26,0x0c }; // haswell_ig_vals[7]␊ |
70 | #define AAPL_LEN_HSW ( sizeof(default_aapl_haswell) / sizeof(uint8_t) )␊ |
71 | ␊ |
72 | static uint8_t default_aapl_broadwell[]␉␉=␉{ 0x00,0x00,0x1e,0x16 }; // broadwell_ig_vals[2]␊ |
73 | #define AAPL_LEN_BDW ( sizeof(default_aapl_broadwell) / sizeof(uint8_t) )␊ |
74 | ␊ |
75 | static uint8_t default_aapl_skylake[]␉␉=␉{ 0x00,0x00,0x16,0x19 }; // skylike_ig_vals[2]␊ |
76 | #define AAPL_LEN_SKL ( sizeof(default_aapl_skylake) / sizeof(uint8_t) )␊ |
77 | ␊ |
78 | uint8_t GMAX3100_vals[23][4] = {␊ |
79 | ␉{ 0x01,0x00,0x00,0x00 },␉//0 "AAPL,HasPanel"␊ |
80 | ␉{ 0x01,0x00,0x00,0x00 },␉//1 "AAPL,SelfRefreshSupported"␊ |
81 | ␉{ 0x01,0x00,0x00,0x00 },␉//2 "AAPL,aux-power-connected"␊ |
82 | ␉{ 0x00,0x00,0x00,0x08 },␉//3 "AAPL,backlight-control"␊ |
83 | ␉{ 0x64,0x00,0x00,0x00 },␉//4 "AAPL00,blackscreen-preferences"␊ |
84 | ␉{ 0x00,0x00,0x00,0x08 },␉//5 "AAPL01,BacklightIntensity"␊ |
85 | ␉{ 0x01,0x00,0x00,0x00 },␉//6 "AAPL01,blackscreen-preferences"␊ |
86 | ␉{ 0x20,0x00,0x00,0x00 },␉//7 "AAPL01,DataJustify"␊ |
87 | ␉{ 0x00,0x00,0x00,0x00 },␉//8 "AAPL01,Depth"␊ |
88 | ␉{ 0x01,0x00,0x00,0x00 },␉//9 "AAPL01,Dither"␊ |
89 | ␉{ 0x20,0x03,0x00,0x00 },␉//10 "AAPL01,DualLink"␊ |
90 | ␉{ 0x00,0x00,0x00,0x00 },␉//11 "AAPL01,Height"␊ |
91 | ␉{ 0x00,0x00,0x00,0x00 },␉//12 "AAPL01,Interlace"␊ |
92 | ␉{ 0x00,0x00,0x00,0x00 },␉//13 "AAPL01,Inverter"␊ |
93 | ␉{ 0x08,0x52,0x00,0x00 },␉//14 "AAPL01,InverterCurrent"␊ |
94 | ␉{ 0x00,0x00,0x00,0x00 },␉//15 "AAPL01,InverterCurrency"␊ |
95 | ␉{ 0x00,0x00,0x00,0x00 },␉//16 "AAPL01,LinkFormat"␊ |
96 | ␉{ 0x01,0x00,0x00,0x00 },␉//17 "AAPL01,LinkType"␊ |
97 | ␉{ 0x01,0x00,0x00,0x00 },␉//18 "AAPL01,Pipe"␊ |
98 | ␉{ 0x3B,0x00,0x00,0x00 },␉//19 "AAPL01,PixelFormat"␊ |
99 | ␉{ 0x00,0x00,0x00,0x00 },␉//20 "AAPL01,Refresh"␊ |
100 | ␉{ 0x6B,0x10,0x00,0x00 },␉//21 "AAPL01,Stretch"␊ |
101 | ␉{ 0xc8,0x95,0x00,0x00 },␉//22 "AAPL01,InverterFrequency"␊ |
102 | };␊ |
103 | ␊ |
104 | uint8_t ivy_bridge_ig_vals[12][4] = {␊ |
105 | ␉{ 0x00,0x00,0x66,0x01 },␉//0 "AAPL,ig-platform-id" //FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3␊ |
106 | ␉{ 0x01,0x00,0x66,0x01 },␉//1 "AAPL,ig-platform-id" //FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3␊ |
107 | ␉{ 0x02,0x00,0x66,0x01 },␉//2 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 1, FBMem: 1␊ |
108 | ␉{ 0x03,0x00,0x66,0x01 },␉//3 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2␊ |
109 | ␉{ 0x04,0x00,0x66,0x01 },␉//4 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 1, FBMem: 1␊ |
110 | ␉{ 0x05,0x00,0x62,0x01 },␉//5 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2␊ |
111 | ␉{ 0x06,0x00,0x62,0x01 },␉//6 "AAPL,ig-platform-id" //FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0␊ |
112 | ␉{ 0x07,0x00,0x62,0x01 },␉//7 "AAPL,ig-platform-id" //FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0␊ |
113 | ␉{ 0x08,0x00,0x66,0x01 },␉//8 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3␊ |
114 | ␉{ 0x09,0x00,0x66,0x01 },␉//9 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3␊ |
115 | ␉{ 0x0a,0x00,0x66,0x01 },␉//10 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2␊ |
116 | ␉{ 0x0b,0x00,0x66,0x01 }␉␉//11 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2␊ |
117 | };␊ |
118 | ␊ |
119 | uint8_t haswell_ig_vals[17][4] = {␊ |
120 | ␉{ 0x00,0x00,0x06,0x04 },␉// 0 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - mobile GT1␊ |
121 | ␉{ 0x00,0x00,0x06,0x0c },␉// 1 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - SDV mobile GT1␊ |
122 | ␉{ 0x00,0x00,0x16,0x04 },␉// 2 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - mobile GT2␊ |
123 | ␉{ 0x00,0x00,0x16,0x0a },␉// 3 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT2␊ |
124 | ␉{ 0x00,0x00,0x16,0x0c },␉// 4 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - SDV mobile GT2␊ |
125 | ␉{ 0x00,0x00,0x26,0x04 },␉// 5 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - mobile GT3␊ |
126 | ␉{ 0x00,0x00,0x26,0x0a },␉// 6 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
127 | ␉{ 0x00,0x00,0x26,0x0c },␉// 7 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - SDV mobile GT3␊ |
128 | ␉{ 0x00,0x00,0x26,0x0d },␉// 8 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - CRW mobile GT3␊ |
129 | ␉{ 0x02,0x00,0x16,0x04 },␉// 9 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 1, Ports: 1, FBMem: 1 - mobile GT2␊ |
130 | ␉{ 0x03,0x00,0x22,0x0d },␉// 10 "AAPL,ig-platform-id" //FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0 - CRW Desktop GT3␊ |
131 | ␉{ 0x05,0x00,0x26,0x0a },␉// 11 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
132 | ␉{ 0x06,0x00,0x26,0x0a },␉// 12 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
133 | ␉{ 0x07,0x00,0x26,0x0d },␉// 13 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 4, FBMem: 3 - CRW mobile GT3␊ |
134 | ␉{ 0x08,0x00,0x26,0x0a },␉// 14 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
135 | ␉{ 0x08,0x00,0x2e,0x0a },␉// 15 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT reserved GT3␊ |
136 | ␉{ 0x04,0x00,0x12,0x04 }␉␉// 16 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
137 | ␉//0x0412000b␊ |
138 | ␉//0x0d260009␊ |
139 | };␊ |
140 | ␊ |
141 | uint8_t broadwell_ig_vals[20][4] = {␊ |
142 | ␉{ 0x00,0x00,0x06,0x16 },␉// 0 - 16060000 Broadwell GT1 (Intel HD Graphics)␊ |
143 | ␉{ 0x00,0x00,0x0e,0x16 },␉// 1 - 160e0000 Broadwell GT1 (Intel HD Graphics)␊ |
144 | ␉{ 0x00,0x00,0x16,0x16 },␉// 2 - 16160000 Broadwell GT2 (Intel HD Graphics 5500)␊ |
145 | ␉{ 0x00,0x00,0x1e,0x16 },␉// 3 - 161e0000 Broadwell GT2 (MacBook) (Intel HD Graphics 5300)␊ |
146 | ␉{ 0x00,0x00,0x26,0x16 },␉// 4 - 16260000 Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)␊ |
147 | ␉{ 0x00,0x00,0x2b,0x16 },␉// 5 - 162b0000 Broadwell GT3 (MacBook Pro) (Intel Iris Graphics 6100)␊ |
148 | ␉{ 0x00,0x00,0x22,0x16 },␉// 6 - 16220000 Broadwell GT3 (Intel Iris Pro Graphics 6200)␊ |
149 | ␉{ 0x01,0x00,0x0e,0x16 },␉// 7 - 160e0001 Broadwell GT1 (Intel HD Graphics)␊ |
150 | ␉{ 0x01,0x00,0x1e,0x16 },␉// 8 - 161e0001 Broadwell GT2 (MacBook) (Intel HD Graphics 5300)␊ |
151 | ␉{ 0x02,0x00,0x06,0x16 },␉// 9 - 16060002 Broadwell GT1 (Intel HD Graphics)␊ |
152 | ␉{ 0x02,0x00,0x16,0x16 },␉// 10 - 16160002 Broadwell GT2 (Intel HD Graphics 5500)␊ |
153 | ␉{ 0x02,0x00,0x26,0x16 },␉// 11 - 16260002 Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)␊ |
154 | ␉{ 0x02,0x00,0x22,0x16 },␉// 12 - 16220002 Broadwell GT3 (Intel Iris Pro Graphics 6200)␊ |
155 | ␉{ 0x02,0x00,0x2b,0x16 },␉// 13 - 162b0002 Broadwell GT3 (MacBook Pro) (Intel Iris Graphics 6100)␊ |
156 | ␉{ 0x03,0x00,0x12,0x16 },␉// 14 - 16120003 Broadwell GT2 (Intel HD Graphics 5600)␊ |
157 | ␉{ 0x04,0x00,0x2b,0x16 },␉// 15 - 162b0004 Broadwell GT3 (MacBook Pro) (Intel Iris Graphics 6100)␊ |
158 | ␉{ 0x04,0x00,0x26,0x16 },␉// 16 - 16260004 Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)␊ |
159 | ␉{ 0x05,0x00,0x26,0x16 },␉// 17 - 16260005 Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)␊ |
160 | ␉{ 0x06,0x00,0x26,0x16 },␉// 18 - 16260006 Broadwell GT3 (MacBook Air) (Intel HD Graphics 6000)␊ |
161 | ␉{ 0x07,0x00,0x22,0x16 }␉␉// 19 - 16260006 Broadwell GT3 (iMac Retina 21") (Intel Iris Pro 6200)␊ |
162 | };␊ |
163 | ␊ |
164 | uint8_t skylake_ig_vals[12][4] = {␊ |
165 | ␉{ 0x00,0x00,0xe0,0x19 }, // 0 - 191e0000 – Skylake ULX GT2␊ |
166 | ␉{ 0x00,0x00,0x16,0x19 }, // 1 - 19160000 – Skylake ULT GT2␊ |
167 | ␉{ 0x00,0x00,0x26,0x19 }, // 2 - 19260000 – Skylake ULT GT3␊ |
168 | ␉{ 0x00,0x00,0x1b,0x19 }, // 3 - 191b0000 – Skylake HALO GT2␊ |
169 | ␉{ 0x00,0x00,0x12,0x19 }, // 4 - 19120000 – Skylake Desktop GT2␊ |
170 | ␉{ 0x01,0x00,0x02,0x19 }, // 5 - 19020001 – Skylake Desktop GT1␊ |
171 | ␉{ 0x01,0x00,0x17,0x19 }, // 6 - 19170001 – Skylake Desktop GT1.5␊ |
172 | ␉{ 0x01,0x00,0x12,0x19 }, // 7 - 19120001 – Skylake Desktop GT2␊ |
173 | ␉{ 0x01,0x00,0x32,0x19 }, // 8 - 19320001 – Skylake Desktop GT4␊ |
174 | ␉{ 0x02,0x00,0x16,0x19 }, // 9 - 19160002 – Skylake ULT GT2␊ |
175 | ␉{ 0x02,0x00,0x26,0x19 }, // 10 - 19260002 – Skylake ULT GT3␊ |
176 | ␉{ 0x03,0x00,0x1e,0x19 } // 11 - 191e0003 – Skylake ULX GT2␊ |
177 | };␊ |
178 | ␊ |
179 | uint8_t HD2000_vals[16][4] = {␊ |
180 | ␉{ 0x00,0x00,0x00,0x00 }, //0 "AAPL00,PixelFormat"␊ |
181 | ␉{ 0x00,0x00,0x00,0x00 }, //1 "AAPL00,T1"␊ |
182 | ␉{ 0x14,0x00,0x00,0x00 }, //2 "AAPL00,T2"␊ |
183 | ␉{ 0xfa,0x00,0x00,0x00 }, //3 "AAPL00,T3"␊ |
184 | ␉{ 0x2c,0x01,0x00,0x00 }, //4 "AAPL00,T4"␊ |
185 | ␉{ 0x00,0x00,0x00,0x00 }, //5 "AAPL00,T5"␊ |
186 | ␉{ 0x14,0x00,0x00,0x00 }, //6 "AAPL00,T6"␊ |
187 | ␉{ 0xf4,0x01,0x00,0x00 }, //7 "AAPL00,T7"␊ |
188 | ␉{ 0x00,0x00,0x00,0x00 }, //8 "AAPL00,LinkType"␊ |
189 | ␉{ 0x00,0x00,0x00,0x00 }, //9 "AAPL00,LinkFormat"␊ |
190 | ␉{ 0x00,0x00,0x00,0x00 }, //10 "AAPL00,DualLink"␊ |
191 | ␉{ 0x00,0x00,0x00,0x00 }, //11 "AAPL00,Dither"␊ |
192 | ␉{ 0x00,0x00,0x00,0x00 }, //12 "AAPL00,DataJustify"␊ |
193 | ␉{ 0x00,0x00,0x00,0x00 }, //13 "graphic-options"␊ |
194 | ␉{ 0x00,0x00,0x00,0x00 }, //14␊ |
195 | ␉{ 0x01,0x00,0x00,0x00 } //15␊ |
196 | };␊ |
197 | ␊ |
198 | uint8_t HD3000_vals[17][4] = {␊ |
199 | ␉{ 0x00,0x00,0x00,0x00 }, //0 "AAPL00,PixelFormat"␊ |
200 | ␉{ 0x00,0x00,0x00,0x00 }, //1 "AAPL00,T1"␊ |
201 | ␉{ 0x14,0x00,0x00,0x00 }, //2 "AAPL00,T2"␊ |
202 | ␉{ 0xfa,0x00,0x00,0x00 }, //3 "AAPL00,T3"␊ |
203 | ␉{ 0x2c,0x01,0x00,0x00 }, //4 "AAPL00,T4"␊ |
204 | ␉{ 0x00,0x00,0x00,0x00 }, //5 "AAPL00,T5"␊ |
205 | ␉{ 0x14,0x00,0x00,0x00 }, //6 "AAPL00,T6"␊ |
206 | ␉{ 0xf4,0x01,0x00,0x00 }, //7 "AAPL00,T7"␊ |
207 | ␉{ 0x00,0x00,0x00,0x00 }, //8 "AAPL00,LinkType"␊ |
208 | ␉{ 0x00,0x00,0x00,0x00 }, //9 "AAPL00,LinkFormat"␊ |
209 | ␉{ 0x00,0x00,0x00,0x00 }, //10 "AAPL00,DualLink"␊ |
210 | ␉{ 0x00,0x00,0x00,0x00 }, //11 "AAPL00,Dither"␊ |
211 | ␉{ 0x00,0x00,0x00,0x00 }, //12 "AAPL00,DataJustify"␊ |
212 | ␉{ 0x00,0x00,0x00,0x00 }, //13 "graphic-options"␊ |
213 | ␉{ 0x00,0x00,0x00,0x00 }, //14␊ |
214 | ␉{ 0x01,0x00,0x00,0x00 }, //15␊ |
215 | ␉{ 0x00,0x00,0x01,0x00 } //16 AAPL,snb-platform-id␊ |
216 | };␊ |
217 | ␊ |
218 | uint8_t HD4000_vals[15][4] = {␊ |
219 | ␉{ 0x00,0x00,0x00,0x00 }, //0 "AAPL00,PixelFormat"␊ |
220 | ␉{ 0x00,0x00,0x00,0x00 }, //1 "AAPL00,T1"␊ |
221 | ␉{ 0x01,0x00,0x00,0x00 }, //2 "AAPL00,T2"␊ |
222 | ␉{ 0xc8,0x00,0x00,0x00 }, //3 "AAPL00,T3"␊ |
223 | ␉{ 0xc8,0x00,0x00,0x00 }, //4 "AAPL00,T4"␊ |
224 | ␉{ 0x01,0x00,0x00,0x00 }, //5 "AAPL00,T5"␊ |
225 | ␉{ 0x00,0x00,0x00,0x00 }, //6 "AAPL00,T6"␊ |
226 | ␉{ 0x90,0x01,0x00,0x00 }, //7 "AAPL00,T7"␊ |
227 | ␉{ 0x01,0x00,0x00,0x00 }, //8 "AAPL00,LinkType"␊ |
228 | ␉{ 0x00,0x00,0x00,0x00 }, //9 "AAPL00,LinkFormat"␊ |
229 | ␉{ 0x01,0x00,0x00,0x00 }, //10 "AAPL00,DualLink"␊ |
230 | ␉{ 0x00,0x00,0x00,0x00 }, //11 "AAPL00,Dither"␊ |
231 | ␉{ 0xc3,0x8c,0x64,0x00 }, //12 "AAPL,gray-value"␊ |
232 | ␉{ 0x01,0x00,0x00,0x00 }, //13 "AAPL,gray-page"␊ |
233 | ␉{ 0x0c,0x00,0x00,0x00 } //14 "graphics-options"␊ |
234 | };␊ |
235 | ␊ |
236 | // http://www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/␊ |
237 | uint8_t HDx000_os_info[20] = {␊ |
238 | ␉0x30,0x49,0x01,0x11,0x01,0x10,0x08,0x00,0x00,0x01,␊ |
239 | ␉0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF␊ |
240 | };␊ |
241 | ␊ |
242 | uint8_t HD2000_tbl_info[18] = {␊ |
243 | ␉0x30,0x44,0x02,0x02,0x02,0x02,0x00,0x00,0x00,␊ |
244 | ␉0x00,0x01,0x02,0x02,0x02,0x00,0x01,0x02,0x02␊ |
245 | };␊ |
246 | uint8_t HD2000_os_info[20] = {␊ |
247 | ␉0x30,0x49,0x01,0x11,0x11,0x11,0x08,0x00,0x00,0x01,␊ |
248 | ␉0xf0,0x1f,0x01,0x00,0x00,0x00,0x10,0x07,0x00,0x00␊ |
249 | };␊ |
250 | ␊ |
251 | // The following values came from a Sandy Bridge MacBook Air␊ |
252 | uint8_t HD3000_tbl_info[18] = {␊ |
253 | ␉0x30,0x44,0x02,0x02,0x02,0x02,0x00,0x00,0x00,␊ |
254 | ␉0x00,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01␊ |
255 | };␊ |
256 | ␊ |
257 | // The following values came from a Sandy Bridge MacBook Air␊ |
258 | uint8_t HD3000_os_info[20] = {␊ |
259 | ␉0x30,0x49,0x01,0x12,0x12,0x12,0x08,0x00,0x00,0x01,␊ |
260 | ␉0xf0,0x1f,0x01,0x00,0x00,0x00,0x10,0x07,0x00,0x00␊ |
261 | };␊ |
262 | ␊ |
263 | ␊ |
264 | uint8_t reg_TRUE[]␉= { 0x01, 0x00, 0x00, 0x00 };␊ |
265 | uint8_t reg_FALSE[] = { 0x00, 0x00, 0x00, 0x00 };␊ |
266 | ␊ |
267 | // https://en.wikipedia.org/wiki/Comparison_of_Intel_graphics_processing_units#Seventh_generation␊ |
268 | ␊ |
269 | /* http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/intel_module.c */␊ |
270 | ␊ |
271 | static intel_gfx_info_t intel_gfx_chipsets[] = {␊ |
272 | ␉{GMA_I810,␉␉␉"i810"},␊ |
273 | ␉{GMA_I810_DC100,␉␉"i810-dc100"},␊ |
274 | ␉{GMA_I810_E,␉␉␉"i810e"},␊ |
275 | ␉{GMA_I815,␉␉␉"i815"},␊ |
276 | ␉{GMA_I830_M,␉␉␉"i830M"},␊ |
277 | ␉{GMA_845_G,␉␉␉"845G"},␊ |
278 | ␉{GMA_I854,␉␉␉"854"},␊ |
279 | ␉{GMA_I855_GM,␉␉␉"852GM/855GM"},␊ |
280 | ␉{GMA_I865_G,␉␉␉"865G"},␊ |
281 | ␉{GMA_I915_G,␉␉␉"915G"},␊ |
282 | ␉{GMA_E7221_G,␉␉␉"E7221 (i915)"},␊ |
283 | ␉{GMA_I915_GM,␉␉␉"915GM"},␊ |
284 | ␉{GMA_I945_G,␉␉␉"945G"},␊ |
285 | ␉// 2776 /* Desktop GMA950 */␊ |
286 | ␉// 2782 /* GMA 915 */␊ |
287 | ␉// 2792 /* Mobile GMA915 */␊ |
288 | ␉{GMA_I945_GM,␉␉␉"945GM"},␊ |
289 | ␉{GMA_I945_GME,␉␉␉"945GME"},␊ |
290 | ␉// 27A6 /* Mobile GMA950 */␊ |
291 | ␉// 29C3 /* Desktop GMA3100 */␊ |
292 | ␉{GMA_PINEVIEW_M,␉␉"Pineview GM"},␊ |
293 | ␉{GMA_GMA3150_M,␉␉␉"Pineview GM"},␉␉// A012 /* Mobile GMA3150 */␊ |
294 | ␉{GMA_PINEVIEW_G,␉␉"Pineview G"},␊ |
295 | ␉{GMA_GMA3150_D,␉␉␉"Desktop GMA3150"},␉// A002 /* Desktop GMA3150 */␊ |
296 | ␉{GMA_I965_G,␉␉␉"965G"},␊ |
297 | ␉{GMA_G35_G,␉␉␉"G35"},␊ |
298 | ␉{GMA_I965_Q,␉␉␉"965Q"},␊ |
299 | ␉{GMA_I946_GZ,␉␉␉"946GZ"},␊ |
300 | ␉{GMA_I965_GM,␉␉␉"965GM"},␊ |
301 | ␉{GMA_I965_GME,␉␉␉"965GME/GLE"},␊ |
302 | ␉{GMA_G33_G,␉␉␉"G33"},␊ |
303 | ␉// 2A13 /* GMAX3100 */␊ |
304 | ␉// 2A43 /* GMAX3100 */␊ |
305 | ␉{GMA_Q35_G,␉␉␉"Q35"},␊ |
306 | ␉{GMA_Q33_G,␉␉␉"Q33"},␊ |
307 | ␉{GMA_GM45_GM,␉␉␉"GM45"},␊ |
308 | ␉{GMA_G45_E_G,␉␉␉"4 Series"},␊ |
309 | ␉{GMA_G45_G,␉␉␉"G45/G43"},␊ |
310 | ␉{GMA_Q45_G,␉␉␉"Q45/Q43"},␊ |
311 | ␉{GMA_G41_G,␉␉␉"G41"},␊ |
312 | ␉{GMA_B43_G,␉␉␉"B43"},␊ |
313 | ␉{GMA_B43_G1,␉␉␉"B43"},␊ |
314 | ␉/**/␊ |
315 | ␉{GMA_IRONLAKE_D_G,␉␉HD_GRAPHICS},␊ |
316 | ␉{GMA_IRONLAKE_M_G,␉␉HD_GRAPHICS},␊ |
317 | ␉// 004A /* HD2000 */␊ |
318 | ␊ |
319 | ␉/* Sandy */␊ |
320 | ␉{GMA_SANDYBRIDGE_GT1,␉␉HD_GRAPHICS_2000 },␊ |
321 | ␉{GMA_SANDYBRIDGE_GT2,␉␉HD_GRAPHICS_3000 },␊ |
322 | ␉{GMA_SANDYBRIDGE_GT2_PLUS,␉HD_GRAPHICS_3000 },␊ |
323 | ␉{GMA_SANDYBRIDGE_M_GT1,␉␉HD_GRAPHICS_2000 },␊ |
324 | ␉{GMA_SANDYBRIDGE_M_GT2,␉␉HD_GRAPHICS_3000 },␊ |
325 | ␉{GMA_SANDYBRIDGE_M_GT2_PLUS,␉HD_GRAPHICS_3000 },␊ |
326 | ␉{GMA_SANDYBRIDGE_S_GT,␉␉"HD Graphics P3000" }, /* 010a */␊ |
327 | ␉// 010B /* ??? */␊ |
328 | ␉// 010E /* ??? */␊ |
329 | ␊ |
330 | ␉/* Ivy */␊ |
331 | ␉{GMA_IVYBRIDGE_M_GT1,␉␉HD_GRAPHICS_2500 },␉/* 0156 */␊ |
332 | ␉{GMA_IVYBRIDGE_M_GT2,␉␉HD_GRAPHICS_4000 },␉/* 0166 */␊ |
333 | ␉{GMA_IVYBRIDGE_D_GT1,␉␉HD_GRAPHICS_2500 },␉/* 0152 */␊ |
334 | ␉{GMA_IVYBRIDGE_D_GT2,␉␉HD_GRAPHICS_4000 },␉/* 0162 */␊ |
335 | ␉{GMA_IVYBRIDGE_S_GT1,␉␉HD_GRAPHICS },␉␉/* 015a */␊ |
336 | ␉{GMA_IVYBRIDGE_S_GT2,␉␉"HD Graphics P4000" }, /* 016a */␊ |
337 | ␉{GMA_IVYBRIDGE_S_GT3,␉␉HD_GRAPHICS },␉␉/* 015e */␊ |
338 | ␉{GMA_IVYBRIDGE_S_GT4,␉␉HD_GRAPHICS_2500 },␉/* 0172 */␊ |
339 | ␉{GMA_IVYBRIDGE_S_GT5,␉␉HD_GRAPHICS_2500 },␉/* 0176 */␊ |
340 | ␊ |
341 | ␉/* Haswell */␊ |
342 | ␉// 0090 /* ??? */␊ |
343 | ␉// 0091 /* ??? */␊ |
344 | ␉// 0092 /* ??? */␊ |
345 | ␉{GMA_HASWELL_D_GT1,␉␉HD_GRAPHICS },␉␉/* 0422 */␊ |
346 | ␉{GMA_HASWELL_D_GT2,␉␉HD_GRAPHICS_4600 },␉/* 0412 */␊ |
347 | ␉{GMA_HASWELL_D_GT3,␉␉HD_GRAPHICS_5000 },␉/* 0422 */␊ |
348 | ␉{GMA_HASWELL_M_GT1,␉␉HD_GRAPHICS },␉␉/* 0426 */␊ |
349 | ␉{GMA_HASWELL_M_GT2,␉␉HD_GRAPHICS_4600 },␉/* 0416 */␊ |
350 | ␉{GMA_HASWELL_M_GT3,␉␉HD_GRAPHICS_5000 },␉/* 0426 */␊ |
351 | ␉{GMA_HASWELL_S_GT1,␉␉HD_GRAPHICS },␉␉/* 040a */␊ |
352 | ␉{GMA_HASWELL_S_GT2,␉␉"HD Graphics P4600/P4700" }, /* 041a */␊ |
353 | ␉{GMA_HASWELL_S_GT3,␉␉HD_GRAPHICS_5000 },␉/* 042a */␊ |
354 | ␉{GMA_HASWELL_B_GT1,␉␉HD_GRAPHICS },␉␉/* 040b */␊ |
355 | ␉{GMA_HASWELL_B_GT2,␉␉HD_GRAPHICS },␉␉/* 041b */␊ |
356 | ␉{GMA_HASWELL_B_GT3,␉␉HD_GRAPHICS },␉␉/* 042b */␊ |
357 | ␉{GMA_HASWELL_E_GT1,␉␉HD_GRAPHICS },␉␉/* 040e */␊ |
358 | ␉{GMA_HASWELL_E_GT2,␉␉HD_GRAPHICS_4400 },␉/* 041e */␊ |
359 | ␉{GMA_HASWELL_E_GT3,␉␉HD_GRAPHICS },␉␉/* 042e */␊ |
360 | ␉{GMA_HASWELL_ULT_D_GT1,␉␉HD_GRAPHICS },␉␉/* 0a02 */␊ |
361 | ␉{GMA_HASWELL_ULT_D_GT2,␉␉HD_GRAPHICS },␉␉/* 0a12 */␊ |
362 | ␉{GMA_HASWELL_ULT_D_GT3,␉␉IRIS_5100 },␉␉/* 0a22 */␊ |
363 | ␉{GMA_HASWELL_ULT_M_GT1,␉␉HD_GRAPHICS },␉␉/* 0a06 */␊ |
364 | ␉{GMA_HASWELL_ULT_M_GT2,␉␉HD_GRAPHICS_4400 },␉/* 0a16 */␊ |
365 | ␉{GMA_HASWELL_ULT_M_GT3,␉␉HD_GRAPHICS_5000 },␉/* 0a26 */␊ |
366 | ␉{GMA_HASWELL_ULT_S_GT1,␉␉HD_GRAPHICS },␉␉/* 0a0a */␊ |
367 | ␉{GMA_HASWELL_ULT_S_GT2,␉␉HD_GRAPHICS },␉␉/* 0a1a */␊ |
368 | ␉{GMA_HASWELL_ULT_S_GT3,␉␉IRIS_5100 },␉␉/* 0a2a */␊ |
369 | ␉{GMA_HASWELL_ULT_B_GT1,␉␉HD_GRAPHICS },␉␉/* 0a0b */␊ |
370 | ␉{GMA_HASWELL_ULT_B_GT2,␉␉HD_GRAPHICS },␉␉/* 0a1b */␊ |
371 | ␉{GMA_HASWELL_ULT_B_GT3,␉␉IRIS_5100 },␉␉/* 0a2b */␊ |
372 | ␉{GMA_HASWELL_ULT_E_GT1,␉␉HD_GRAPHICS_4400 },␉/* 0a0e */␊ |
373 | ␉{GMA_HASWELL_ULT_E_GT2,␉␉HD_GRAPHICS_4200 },␉/* 0a1e */␊ |
374 | ␉// 0A2A /* ??? */␊ |
375 | ␉{GMA_HASWELL_ULT_E_GT3,␉␉IRIS_5100 },␉␉/* 0a2e */␊ |
376 | ␉{GMA_HASWELL_SDV_D_GT1_IG,␉HD_GRAPHICS },␉␉// 0C02 /* Intel Haswell HD Graphics - GTL */␊ |
377 | ␉// 0C04 /* DRAM Controller */␊ |
378 | ␉{GMA_HASWELL_SDV_M_GT1_IG,␉HD_GRAPHICS },␉␉// 0C06 /* Intel Haswell HD Graphics - GTL */␊ |
379 | ␉{GMA_HASWELL_SDV_D_GT2_IG,␉HD_GRAPHICS },␉␉// 0C12 /* Intel Haswell HD Graphics - GTM */␊ |
380 | ␉{GMA_HASWELL_SDV_M_GT2_IG,␉HD_GRAPHICS },␉␉// 0C16 /* Intel Haswell HD Graphics - GTH */␊ |
381 | ␉{GMA_HASWELL_SDV_D_GT2_PLUS_IG,␉HD_GRAPHICS },␉␉// 0C22 /* Intel Haswell HD Graphics - GTH */␊ |
382 | ␉{GMA_HASWELL_SDV_M_GT2_PLUS_IG,␉HD_GRAPHICS },␉␉// 0C26 /* Intel Haswell HD Graphics - GTH */␊ |
383 | ␊ |
384 | //␉{GMA_HASWELL_SDV_S_GT1_IG,␉HD_GRAPHICS }, /* 0c0a */␊ |
385 | //␉{GMA_HASWELL_SDV_S_GT2_IG,␉HD_GRAPHICS }, /* 0c1a */␊ |
386 | //␉{GMA_HASWELL_SDV_S_GT2_PLUS_IG,␉HD_GRAPHICS }, /* 0c2a */␊ |
387 | ␊ |
388 | ␉{GMA_HASWELL_CRW_D_GT1,␉␉HD_GRAPHICS },␉␉/* 0d02 */␊ |
389 | ␉{GMA_HASWELL_CRW_D_GT2,␉␉HD_GRAPHICS_4600 },␉/* 0d12 */␊ |
390 | ␉{GMA_HASWELL_CRW_D_GT3,␉␉IRIS_5200 },␉␉/* 0d22 */␊ |
391 | //␉{GMA_HASWELL_CRW_D_GT2_PLUS_IG,␉␉HD_GRAPHICS },␉/* 0d32 */␊ |
392 | ␉{GMA_HASWELL_CRW_M_GT1,␉␉HD_GRAPHICS },␉␉/* 0d06 */␊ |
393 | ␉{GMA_HASWELL_CRW_M_GT2,␉␉HD_GRAPHICS_4600 },␉/* 0d16 */␊ |
394 | ␉{GMA_HASWELL_CRW_M_GT3,␉␉IRIS_5200 },␉␉/* 0d26 */␊ |
395 | ␉{GMA_HASWELL_CRW_S_GT1,␉␉HD_GRAPHICS },␉␉/* 0d0a */␊ |
396 | ␉{GMA_HASWELL_CRW_S_GT2,␉␉HD_GRAPHICS },␉␉/* 0d1a */␊ |
397 | ␉{GMA_HASWELL_CRW_S_GT3,␉␉IRIS_5200 },␉␉/* 0d2a */␊ |
398 | ␉{GMA_HASWELL_CRW_B_GT1,␉␉HD_GRAPHICS },␉␉/* 0d0b */␊ |
399 | ␉{GMA_HASWELL_CRW_B_GT2,␉␉HD_GRAPHICS },␉␉/* 0d1b */␊ |
400 | ␉{GMA_HASWELL_CRW_B_GT3,␉␉IRIS_5200 },␉␉/* 0d2b */␊ |
401 | ␉{GMA_HASWELL_CRW_E_GT1,␉␉HD_GRAPHICS },␉␉/* 0d0e */␊ |
402 | ␉{GMA_HASWELL_CRW_E_GT2,␉␉HD_GRAPHICS },␉␉/* od1e */␊ |
403 | ␉{GMA_HASWELL_CRW_E_GT3,␉␉IRIS_5200 },␉␉/* 0d2e */␊ |
404 | ␉{GMA_HASWELL_CRW_M_GT2_PLUS_IG,␉HD_GRAPHICS },␉␉/* 0d36 */␊ |
405 | ␉{GMA_HASWELL_CRW_S_GT2_PLUS_IG,␉HD_GRAPHICS },␉␉/* 0d3a */␊ |
406 | ␊ |
407 | ␉/* Broadwell */␊ |
408 | ␉{GMA_BROADWELL_BDW_0bd0,␉␉HD_GRAPHICS },␉␉/* 0bd0 */␊ |
409 | ␉{GMA_BROADWELL_BDW_0bd1,␉␉HD_GRAPHICS },␉␉/* 0bd1 */␊ |
410 | ␉{GMA_BROADWELL_BDW_0bd2,␉␉HD_GRAPHICS },␉␉/* 0bd2 */␊ |
411 | ␉{GMA_BROADWELL_BDW_0bd3,␉␉HD_GRAPHICS },␉␉/* 0bd3 */␊ |
412 | ␉{GMA_BROADWELL_BDW_0bd4,␉␉HD_GRAPHICS },␉␉/* 0bd4 */␊ |
413 | ␊ |
414 | ␉{GMA_BROADWELL_BDW_1602,␉␉HD_GRAPHICS },␉␉/* 1602 */␊ |
415 | ␉{GMA_BROADWELL_BDW_U_GT1,␉␉HD_GRAPHICS },␉␉/* 1606 */␊ |
416 | ␉{GMA_BROADWELL_BDW_160B,␉␉HD_GRAPHICS },␉␉/* 160b */␊ |
417 | ␉{GMA_BROADWELL_BDW_160A,␉␉HD_GRAPHICS },␉␉/* 160a */␊ |
418 | ␉{GMA_BROADWELL_BDW_160D,␉␉HD_GRAPHICS },␉␉/* 160d */␊ |
419 | ␉{GMA_BROADWELL_BDW_160E,␉␉HD_GRAPHICS },␉␉/* 160e */␊ |
420 | ␉{GMA_BROADWELL_BDW_1612,␉␉HD_GRAPHICS_5600},␉/* 1612 */␊ |
421 | ␉{GMA_BROADWELL_BDW_U_GT2,␉␉HD_GRAPHICS_5500 },␉/* 1616 */␊ |
422 | ␉{GMA_BROADWELL_BDW_161B,␉␉HD_GRAPHICS },␉␉/* 161b */␊ |
423 | ␉{GMA_BROADWELL_BDW_161A,␉␉HD_GRAPHICS },␉␉/* 161a */␊ |
424 | ␉{GMA_BROADWELL_BDW_161D,␉␉HD_GRAPHICS },␉␉/* 161d */␊ |
425 | ␉{GMA_BROADWELL_BDW_Y_GT2,␉␉HD_GRAPHICS_5300 },␉/* 161e */␊ |
426 | ␉{GMA_BROADWELL_BDW_1622,␉␉IRIS_6200},␉␉/* 1622 */␊ |
427 | ␉{GMA_BROADWELL_BDW_U_GT3,␉␉HD_GRAPHICS_6000 },␉/* 1626 */␊ |
428 | ␉{GMA_BROADWELL_BDW_162A,␉␉IRIS_6300},␉␉/* 162a */␊ |
429 | ␉{GMA_BROADWELL_BDW_U_GT3_2,␉␉IRIS_6100 },␉␉/* 162b */␊ |
430 | ␉{GMA_BROADWELL_BDW_162D,␉␉IRIS_6300 },␉␉/* 162d */␊ |
431 | ␉{GMA_BROADWELL_BDW_162E,␉␉HD_GRAPHICS },␉␉/* 162e */␊ |
432 | ␉{GMA_BROADWELL_BDW_1632,␉␉HD_GRAPHICS },␉␉/* 1632 */␊ |
433 | ␉{GMA_BROADWELL_BDW_1636,␉␉HD_GRAPHICS },␉␉/* 1636 */␊ |
434 | ␉{GMA_BROADWELL_BDW_163B,␉␉HD_GRAPHICS },␉␉/* 163b */␊ |
435 | ␉{GMA_BROADWELL_BDW_163A,␉␉HD_GRAPHICS },␉␉/* 163a */␊ |
436 | ␉{GMA_BROADWELL_BDW_163D,␉␉HD_GRAPHICS },␉␉/* 163d */␊ |
437 | ␉{GMA_BROADWELL_BDW_163E,␉␉HD_GRAPHICS },␉␉/* 163e */␊ |
438 | ␊ |
439 | ␉/* Skylake */␊ |
440 | ␉{GMA_SKYLAKE_ULT_GT1,␉␉␉HD_GRAPHICS_510 },␉/* 1906 */␊ |
441 | ␉{GMA_SKYLAKE_ULT_GT15,␉␉␉HD_GRAPHICS_510 },␉/* 1913 */␊ |
442 | ␉{GMA_SKYLAKE_ULT_GT2,␉␉␉HD_GRAPHICS_520 },␉/* 1916 */␊ |
443 | ␉{GMA_SKYLAKE_ULX_GT1,␉␉␉HD_GRAPHICS },␉␉/* 190E */␊ |
444 | ␉{GMA_SKYLAKE_ULX_GT2,␉␉␉HD_GRAPHICS_515 },␉/* 191E */␊ |
445 | ␉{GMA_SKYLAKE_DT_GT2,␉␉␉HD_GRAPHICS_530 },␉/* 1912 */␊ |
446 | ␉{GMA_SKYLAKE_1921,␉␉␉␉HD_GRAPHICS_520 },␉/* 1921 */␊ |
447 | ␉{GMA_SKYLAKE_ULT_GT3_E,␉␉␉IRIS_540 },␉␉/* 1926 */␊ |
448 | ␉{GMA_SKYLAKE_ULT_GT3,␉␉␉HD_GRAPHICS_535 },␉/* 1923 */␊ |
449 | ␉{GMA_SKYLAKE_ULT_GT3_28W,␉␉HD_GRAPHICS_550 },␉/* 1927 */␊ |
450 | ␉{GMA_SKYLAKE_DT_GT15,␉␉␉HD_GRAPHICS_530 },␉/* 1917 */␊ |
451 | ␉{GMA_SKYLAKE_DT_GT1,␉␉␉HD_GRAPHICS_510 },␉/* 1902 */␊ |
452 | ␉{GMA_SKYLAKE_DT_GT4,␉␉␉IRIS_570_580 },␉␉/* 1932 */␊ |
453 | ␉{GMA_SKYLAKE_GT4,␉␉␉IRIS_580 },␉␉/* 193B */␊ |
454 | ␉{GMA_SKYLAKE_GT3_FE,␉␉␉IRIS },␉␉␉/* 192B */␊ |
455 | ␉{GMA_SKYLAKE_GT2,␉␉␉HD_GRAPHICS_530 },␉/* 191B */␊ |
456 | ␉{GMA_SKYLAKE_192A,␉␉␉IRIS_P580 },␉␉/* 192A */␊ |
457 | ␉{GMA_SKYLAKE_SRW_GT4,␉␉␉IRIS_P580 },␉␉/* 193A */␊ |
458 | ␉{GMA_SKYLAKE_WS_GT2,␉␉␉HD_GRAPHICS_P530 },␉/* 191D */␊ |
459 | ␉{GMA_SKYLAKE_WS_GT4,␉␉␉IRIS_P580 }␉␉/* 193D */␊ |
460 | };␊ |
461 | ␊ |
462 | #define GFX_DEVICES_LEN (sizeof(intel_gfx_chipsets) / sizeof(intel_gfx_chipsets[0]))␊ |
463 | ␊ |
464 | /* END http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/intel_module.c */␊ |
465 | ␊ |
466 | /* Get Intel GFX device name */␊ |
467 | static char *get_gma_controller_name(uint16_t device_id, uint16_t vendor_id)␊ |
468 | {␊ |
469 | ␉int i = 0;␊ |
470 | ␉static char desc[128];␊ |
471 | ␊ |
472 | ␉for (i = 0; i < GFX_DEVICES_LEN; i++)␊ |
473 | ␉{␊ |
474 | ␉␉if (intel_gfx_chipsets[i].model == ((device_id << 16) | vendor_id))␊ |
475 | ␉␉{␊ |
476 | ␉␉␉snprintf(desc, sizeof(desc), "%s %s", INTEL_NAME, intel_gfx_chipsets[i].label_info);␊ |
477 | ␉␉␉return desc;␊ |
478 | ␉␉}␊ |
479 | ␉}␊ |
480 | ␉snprintf(desc, sizeof(desc), "Unknown %s Graphics card", INTEL_NAME);␊ |
481 | ␉return desc;␊ |
482 | }␊ |
483 | ␊ |
484 | bool setup_gma_devprop(pci_dt_t *gma_dev)␊ |
485 | {␊ |
486 | ␉char␉␉␉␉*devicepath = NULL;␊ |
487 | ␉volatile uint8_t␉␉*regs;␊ |
488 | ␉uint32_t␉␉␉bar[7];␊ |
489 | ␉char␉␉␉␉*model = NULL;␊ |
490 | ␉uint8_t BuiltIn =␉␉0x00;␊ |
491 | ␉uint16_t␉␉␉vendor_id = gma_dev->vendor_id;␊ |
492 | ␉uint16_t␉␉␉device_id = gma_dev->device_id;␊ |
493 | ␉uint8_t ClassFix[4] = { 0x00, 0x00, 0x03, 0x00 };␊ |
494 | ␉int␉␉␉␉n_igs = 0;␊ |
495 | ␉int␉␉␉␉len;␊ |
496 | ␉const char␉␉␉*value;␊ |
497 | ␉devicepath = get_pci_dev_path(gma_dev);␊ |
498 | ␊ |
499 | ␉bar[0] = pci_config_read32(gma_dev->dev.addr, 0x10);␊ |
500 | ␉regs = (uint8_t *) (bar[0] & ~0x0f);␊ |
501 | ␊ |
502 | ␉model = get_gma_controller_name(device_id, vendor_id);␊ |
503 | ␊ |
504 | ␉verbose("\tClass code: [%04X]\n", gma_dev->class_id);␊ |
505 | ␊ |
506 | ␉verbose("\t%s [%04x:%04x] (rev %02x)\nSubsystem: [%04x:%04x] :: %s\n",␊ |
507 | ␉␉␉model, gma_dev->vendor_id, gma_dev->device_id, gma_dev->revision_id, gma_dev->subsys_id.subsys.vendor_id, gma_dev->subsys_id.subsys.device_id, devicepath);␊ |
508 | ␊ |
509 | ␉if (!string)␊ |
510 | ␉{␊ |
511 | ␉␉string = devprop_create_string();␊ |
512 | ␉}␊ |
513 | ␊ |
514 | ␉struct DevPropDevice *device = devprop_add_device(string, devicepath);␊ |
515 | ␉if (!device)␊ |
516 | ␉{␊ |
517 | ␉␉printf("\t[setup_gma_devprop] Failed initializing dev-prop string dev-entry!\n");␊ |
518 | ␉␉pause();␊ |
519 | ␉␉return false;␊ |
520 | ␉}␊ |
521 | ␊ |
522 | ␉devprop_add_value(device, "model", (uint8_t *)model, (strlen(model) + 1));␊ |
523 | ␉devprop_add_value(device, "device_type", (uint8_t *)"display", 8);␊ |
524 | ␊ |
525 | ␉if (getBoolForKey(kUseIntelHDMI, &doit, &bootInfo->chameleonConfig) && doit)␊ |
526 | ␉{␊ |
527 | ␉␉devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
528 | ␉}␊ |
529 | ␉else␊ |
530 | ␉{␊ |
531 | ␉␉devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-2", 10);␊ |
532 | ␉}␊ |
533 | ␊ |
534 | ␉switch ((device_id << 16) | vendor_id)␊ |
535 | ␉{␊ |
536 | ␉␉case GMA_IRONLAKE_D_G: // 0042␊ |
537 | ␉␉case GMA_IRONLAKE_M_G: // 0046␊ |
538 | ␉␉␉devprop_add_value(device, "built-in",␉␉&BuiltIn, 1);␊ |
539 | ␉␉␉devprop_add_value(device, "class-code",␉␉ClassFix, 4);␊ |
540 | ␉␉␉devprop_add_value(device, "AAPL,os-info",␉HDx000_os_info, 20);␊ |
541 | ␉␉␉break;␊ |
542 | ␉␉/* 27A2, 27AE, 27A6, A001, A011, A012, */␊ |
543 | ␉␉case GMA_I945_GM: // Mobile GMA950 Mobile GMA3150␊ |
544 | ␉␉case GMA_I945_GME:␊ |
545 | ␉␉//case GMA_945GM:␊ |
546 | ␉␉case GMA_PINEVIEW_G:␊ |
547 | ␉␉case GMA_PINEVIEW_M:␊ |
548 | ␉␉case GMA_GMA3150_M:␊ |
549 | ␉␉␉devprop_add_value(device, "AAPL,HasPanel",␉reg_TRUE, 4);␊ |
550 | ␉␉␉devprop_add_value(device, "built-in",␉␉&BuiltIn, 1);␊ |
551 | ␉␉␉devprop_add_value(device, "class-code",␉␉ClassFix, 4);␊ |
552 | ␉␉␉break;␊ |
553 | ␊ |
554 | ␉␉/* 2772 ,2776, A002 */␊ |
555 | ␉␉case GMA_I945_G: // Desktop GMA950 Desktop GMA3150␊ |
556 | ␉␉//case GMA_82945G:␊ |
557 | ␉␉case GMA_GMA3150_D:␊ |
558 | ␉␉␉BuiltIn = 0x01;␊ |
559 | ␉␉␉devprop_add_value(device, "built-in",␉␉&BuiltIn, 1);␊ |
560 | ␉␉␉devprop_add_value(device, "class-code",␉␉ClassFix, 4);␊ |
561 | ␉␉␉break;␊ |
562 | ␊ |
563 | ␉␉/* 2A02, 2A12, 2A13, 2A42, 2A43 */␊ |
564 | ␉␉case GMA_I965_GM: // GMAX3100␊ |
565 | ␉␉case GMA_I965_GME:␊ |
566 | ␉␉//case 0x80862A13:␊ |
567 | ␉␉case GMA_GM45_GM:␊ |
568 | ␉␉//case GMA_GM45_GM2:␊ |
569 | ␉␉␉devprop_add_value(device, "AAPL,HasPanel",␉␉␉GMAX3100_vals[0], 4);␊ |
570 | ␉␉␉devprop_add_value(device, "AAPL,SelfRefreshSupported",␉␉GMAX3100_vals[1], 4);␊ |
571 | ␉␉␉devprop_add_value(device, "AAPL,aux-power-connected",␉␉GMAX3100_vals[2], 4);␊ |
572 | ␉␉␉devprop_add_value(device, "AAPL,backlight-control",␉␉GMAX3100_vals[3], 4);␊ |
573 | ␉␉␉devprop_add_value(device, "AAPL00,blackscreen-preferences",␉GMAX3100_vals[4], 4);␊ |
574 | ␉␉␉devprop_add_value(device, "AAPL01,BacklightIntensity",␉␉GMAX3100_vals[5], 4);␊ |
575 | ␉␉␉devprop_add_value(device, "AAPL01,blackscreen-preferences",␉GMAX3100_vals[6], 4);␊ |
576 | ␉␉␉devprop_add_value(device, "AAPL01,DataJustify",␉␉␉GMAX3100_vals[7], 4);␊ |
577 | ␉␉␉devprop_add_value(device, "AAPL01,Depth",␉␉␉GMAX3100_vals[8], 4);␊ |
578 | ␉␉␉devprop_add_value(device, "AAPL01,Dither",␉␉␉GMAX3100_vals[9], 4);␊ |
579 | ␉␉␉devprop_add_value(device, "AAPL01,DualLink",␉␉␉GMAX3100_vals[10], 4);␊ |
580 | ␉␉␉devprop_add_value(device, "AAPL01,Height",␉␉␉GMAX3100_vals[11], 4);␊ |
581 | ␉␉␉devprop_add_value(device, "AAPL01,Interlace",␉␉␉GMAX3100_vals[12], 4);␊ |
582 | ␉␉␉devprop_add_value(device, "AAPL01,Inverter",␉␉␉GMAX3100_vals[13], 4);␊ |
583 | ␉␉␉devprop_add_value(device, "AAPL01,InverterCurrent",␉␉GMAX3100_vals[14], 4);␊ |
584 | ␉␉␉devprop_add_value(device, "AAPL01,InverterCurrency",␉␉GMAX3100_vals[15], 4);␊ |
585 | ␉␉␉devprop_add_value(device, "AAPL01,LinkFormat",␉␉␉GMAX3100_vals[16], 4);␊ |
586 | ␉␉␉devprop_add_value(device, "AAPL01,LinkType",␉␉␉GMAX3100_vals[17], 4);␊ |
587 | ␉␉␉devprop_add_value(device, "AAPL01,Pipe",␉␉␉GMAX3100_vals[18], 4);␊ |
588 | ␉␉␉devprop_add_value(device, "AAPL01,PixelFormat",␉␉␉GMAX3100_vals[19], 4);␊ |
589 | ␉␉␉devprop_add_value(device, "AAPL01,Refresh",␉␉␉GMAX3100_vals[20], 4);␊ |
590 | ␉␉␉devprop_add_value(device, "AAPL01,Stretch",␉␉␉GMAX3100_vals[21], 4);␊ |
591 | ␉␉␉//devprop_add_value(device, "AAPL01,InverterFrequency",␉␉GMAX3100_vals[22], 4);␊ |
592 | ␉␉␉devprop_add_value(device, "class-code",␉␉␉␉ClassFix, 4);␊ |
593 | ␉␉␉break;␊ |
594 | ␊ |
595 | ␉␉/* 0106 */␊ |
596 | ␉␉case GMA_SANDYBRIDGE_M_GT1: // HD Graphics 2000 Mobile␊ |
597 | ␉␉␉devprop_add_value(device, "class-code",␉␉␉ClassFix, 4);␊ |
598 | ␉␉␉devprop_add_value(device, "AAPL00,PixelFormat",␉␉HD2000_vals[0], 4);␊ |
599 | ␉␉␉devprop_add_value(device, "AAPL00,T1",␉␉␉HD2000_vals[1], 4);␊ |
600 | ␉␉␉devprop_add_value(device, "AAPL00,T2",␉␉␉HD2000_vals[2], 4);␊ |
601 | ␉␉␉devprop_add_value(device, "AAPL00,T3",␉␉␉HD2000_vals[3], 4);␊ |
602 | ␉␉␉devprop_add_value(device, "AAPL00,T4",␉␉␉HD2000_vals[4], 4);␊ |
603 | ␉␉␉devprop_add_value(device, "AAPL00,T5",␉␉␉HD2000_vals[5], 4);␊ |
604 | ␉␉␉devprop_add_value(device, "AAPL00,T6",␉␉␉HD2000_vals[6], 4);␊ |
605 | ␉␉␉devprop_add_value(device, "AAPL00,T7",␉␉␉HD2000_vals[7], 4);␊ |
606 | ␉␉␉devprop_add_value(device, "AAPL00,LinkType",␉␉HD2000_vals[8], 4);␊ |
607 | ␉␉␉devprop_add_value(device, "AAPL00,LinkFormat",␉␉HD2000_vals[9], 4);␊ |
608 | ␉␉␉devprop_add_value(device, "AAPL00,DualLink",␉␉HD2000_vals[10], 4);␊ |
609 | ␉␉␉devprop_add_value(device, "AAPL00,Dither",␉␉HD2000_vals[11], 4);␊ |
610 | ␉␉␉devprop_add_value(device, "AAPL00,DataJustify",␉␉HD3000_vals[12], 4);␊ |
611 | ␉␉␉devprop_add_value(device, "graphic-options",␉␉HD2000_vals[13], 4);␊ |
612 | ␉␉␉devprop_add_value(device, "AAPL,tbl-info",␉␉HD2000_tbl_info, 18);␊ |
613 | ␉␉␉devprop_add_value(device, "AAPL,os-info",␉␉HD2000_os_info, 20);␊ |
614 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_SNB * 2)␊ |
615 | ␉␉␉{␊ |
616 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_SNB];␊ |
617 | ␊ |
618 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_SNB) == 0)␊ |
619 | ␉␉␉␉{␊ |
620 | ␉␉␉␉␉memcpy(default_aapl_snb, new_aapl0, AAPL_LEN_SNB);␊ |
621 | ␊ |
622 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,snb-platform-id\n");␊ |
623 | ␉␉␉␉␉verbose("\tAAPL,snb-platform-id: %02x%02x%02x%02x\n",␊ |
624 | ␉␉␉␉␉default_aapl_snb[0], default_aapl_snb[1], default_aapl_snb[2], default_aapl_snb[3]);␊ |
625 | ␉␉␉␉}␊ |
626 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", default_aapl_snb, AAPL_LEN_SNB);␊ |
627 | ␉␉␉}␊ |
628 | ␉␉␉else␊ |
629 | ␉␉␉{␊ |
630 | ␉␉␉␉uint32_t ig_platform_id = 0x00030010; // set the default platform ig␊ |
631 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
632 | ␉␉␉}␊ |
633 | ␉␉␉break;␊ |
634 | ␊ |
635 | ␉␉/* 0116, 0126 */␊ |
636 | ␉␉case GMA_SANDYBRIDGE_M_GT2: // HD Graphics 3000 Mobile␊ |
637 | ␉␉case GMA_SANDYBRIDGE_M_GT2_PLUS:␊ |
638 | ␉␉␉devprop_add_value(device, "class-code",␉␉␉ClassFix, 4);␊ |
639 | ␉␉␉devprop_add_value(device, "AAPL00,PixelFormat",␉␉HD3000_vals[0], 4);␊ |
640 | ␉␉␉devprop_add_value(device, "AAPL00,T1",␉␉␉HD3000_vals[1], 4);␊ |
641 | ␉␉␉devprop_add_value(device, "AAPL00,T2",␉␉␉HD3000_vals[2], 4);␊ |
642 | ␉␉␉devprop_add_value(device, "AAPL00,T3",␉␉␉HD3000_vals[3], 4);␊ |
643 | ␉␉␉devprop_add_value(device, "AAPL00,T4",␉␉␉HD3000_vals[4], 4);␊ |
644 | ␉␉␉devprop_add_value(device, "AAPL00,T5",␉␉␉HD3000_vals[5], 4);␊ |
645 | ␉␉␉devprop_add_value(device, "AAPL00,T6",␉␉␉HD3000_vals[6], 4);␊ |
646 | ␉␉␉devprop_add_value(device, "AAPL00,T7",␉␉␉HD3000_vals[7], 4);␊ |
647 | ␉␉␉devprop_add_value(device, "AAPL00,LinkType",␉␉HD3000_vals[8], 4);␊ |
648 | ␉␉␉devprop_add_value(device, "AAPL00,LinkFormat",␉␉HD3000_vals[9], 4);␊ |
649 | ␉␉␉devprop_add_value(device, "AAPL00,DualLink",␉␉HD3000_vals[10], 4);␊ |
650 | ␉␉␉devprop_add_value(device, "AAPL00,Dither",␉␉HD3000_vals[11], 4);␊ |
651 | ␉␉␉devprop_add_value(device, "AAPL00,DataJustify",␉␉HD3000_vals[12], 4);␊ |
652 | ␉␉␉devprop_add_value(device, "graphic-options",␉␉HD3000_vals[13], 4);␊ |
653 | ␉␉␉devprop_add_value(device, "AAPL,tbl-info",␉␉HD3000_tbl_info, 18);␊ |
654 | ␉␉␉devprop_add_value(device, "AAPL,os-info",␉␉HD3000_os_info, 20);␊ |
655 | ␊ |
656 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_SNB * 2)␊ |
657 | ␉␉␉{␊ |
658 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_SNB];␊ |
659 | ␊ |
660 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_SNB) == 0)␊ |
661 | ␉␉␉␉{␊ |
662 | ␉␉␉␉␉memcpy(default_aapl_snb, new_aapl0, AAPL_LEN_SNB);␊ |
663 | ␊ |
664 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,snb-platform-id\n");␊ |
665 | ␉␉␉␉␉verbose("\tAAPL,snb-platform-id: %02x%02x%02x%02x\n",␊ |
666 | ␉␉␉␉␉default_aapl_snb[0], default_aapl_snb[1], default_aapl_snb[2], default_aapl_snb[3]);␊ |
667 | ␉␉␉␉}␊ |
668 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", default_aapl_snb, AAPL_LEN_SNB);␊ |
669 | ␉␉␉}␊ |
670 | ␉␉␉else␊ |
671 | ␉␉␉{␊ |
672 | ␉␉␉␉uint32_t ig_platform_id = 0x00010000; // set the default platform ig␊ |
673 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
674 | ␉␉␉}␊ |
675 | ␊ |
676 | ␉␉␉break;␊ |
677 | ␊ |
678 | ␉␉/* 0102 */␊ |
679 | ␉␉/* HD Graphics 2000 */␊ |
680 | ␉␉case GMA_SANDYBRIDGE_GT1: // 0102␊ |
681 | ␉␉␉device_id = 0x00000102;␉␉␉␉␉// Inject a valid mobile GPU device id instead of patching kexts␊ |
682 | ␉␉␉devprop_add_value(device, "built-in",␉␉␉&BuiltIn, 1);␊ |
683 | ␉␉␉devprop_add_value(device, "class-code",␉␉␉ClassFix, 4);␊ |
684 | ␉␉␉devprop_add_value(device, "device-id",␉␉␉(uint8_t *)&device_id, sizeof(device_id));␊ |
685 | ␉␉␉devprop_add_value(device, "AAPL,tbl-info",␉␉HD2000_tbl_info, 18);␊ |
686 | ␉␉␉devprop_add_value(device, "AAPL,os-info",␉␉HD2000_os_info, 20);␊ |
687 | ␊ |
688 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_SNB * 2)␊ |
689 | ␉␉␉{␊ |
690 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_SNB];␊ |
691 | ␊ |
692 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_SNB) == 0)␊ |
693 | ␉␉␉␉{␊ |
694 | ␉␉␉␉␉memcpy(default_aapl_snb, new_aapl0, AAPL_LEN_SNB);␊ |
695 | ␊ |
696 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,snb-platform-id\n");␊ |
697 | ␉␉␉␉␉verbose("\tAAPL,snb-platform-id: %02x%02x%02x%02x\n",␊ |
698 | ␉␉␉␉␉default_aapl_snb[0], default_aapl_snb[1], default_aapl_snb[2], default_aapl_snb[3]);␊ |
699 | ␉␉␉␉}␊ |
700 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", default_aapl_snb, AAPL_LEN_SNB);␊ |
701 | ␉␉␉}␊ |
702 | ␉␉␉else␊ |
703 | ␉␉␉{␊ |
704 | ␉␉␉␉uint32_t ig_platform_id = 0x00030010; // set the default platform ig␊ |
705 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
706 | ␉␉␉}␊ |
707 | ␊ |
708 | ␉␉␉break;␊ |
709 | ␊ |
710 | ␉␉/* Sandy Bridge */␊ |
711 | ␉␉/* HD Graphics 3000 */␊ |
712 | ␉␉case GMA_SANDYBRIDGE_GT2: // 0112␊ |
713 | ␉␉case GMA_SANDYBRIDGE_GT2_PLUS: // 0122␊ |
714 | ␉␉␉devprop_add_value(device, "built-in",␉␉␉&BuiltIn, 1);␊ |
715 | ␉␉␉devprop_add_value(device, "class-code",␉␉␉ClassFix, 4);␊ |
716 | ␊ |
717 | ␉␉␉// patch by ikunikun for i3-2125 and i5-2500K to enable HD3000.␊ |
718 | ␉␉␉if(((device_id << 16) | vendor_id) != GMA_SANDYBRIDGE_GT2)␊ |
719 | ␉␉␉{␊ |
720 | ␉␉␉␉devprop_add_value(device, "vendor-id",␉(uint8_t *)INTEL_VENDORID, 4);␊ |
721 | ␉␉␉}␊ |
722 | ␉␉␉else␊ |
723 | ␉␉␉{␊ |
724 | ␉␉␉␉device_id = 0x00000126;␊ |
725 | ␉␉␉␉devprop_add_value(device, "device-id", (uint8_t *)&device_id, sizeof(device_id));␊ |
726 | ␉␉␉␉verbose("\tInjeting done: was [%04x:%04x] now is [%04x:%04x]\n", gma_dev->vendor_id, gma_dev->device_id, gma_dev->vendor_id, device_id);␊ |
727 | ␉␉␉}␊ |
728 | ␊ |
729 | ␉␉␉devprop_add_value(device, "AAPL,tbl-info",␉␉HD3000_tbl_info, 18);␊ |
730 | ␉␉␉devprop_add_value(device, "AAPL,os-info",␉␉HD3000_os_info, 20);␊ |
731 | ␊ |
732 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_SNB * 2)␊ |
733 | ␉␉␉{␊ |
734 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_SNB];␊ |
735 | ␊ |
736 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_SNB) == 0)␊ |
737 | ␉␉␉␉{␊ |
738 | ␉␉␉␉␉memcpy(default_aapl_snb, new_aapl0, AAPL_LEN_SNB);␊ |
739 | ␊ |
740 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,snb-platform-id\n");␊ |
741 | ␉␉␉␉␉verbose("\tAAPL,snb-platform-id: %02x%02x%02x%02x\n",␊ |
742 | ␉␉␉␉␉default_aapl_snb[0], default_aapl_snb[1], default_aapl_snb[2], default_aapl_snb[3]);␊ |
743 | ␉␉␉␉}␊ |
744 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", default_aapl_snb, AAPL_LEN_SNB);␊ |
745 | ␉␉␉}␊ |
746 | ␉␉␉else␊ |
747 | ␉␉␉{␊ |
748 | ␉␉␉␉uint32_t ig_platform_id = 0x00030010; // set the default platform ig␊ |
749 | ␉␉␉␉devprop_add_value(device, "AAPL,snb-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
750 | ␉␉␉}␊ |
751 | ␊ |
752 | ␉␉␉break;␊ |
753 | ␊ |
754 | ␉␉/* Ivy Bridge */␊ |
755 | ␉␉/* HD Graphics 4000, HD Graphics 4000 Mobile, HD Graphics P4000, HD Graphics 2500 HD, Graphics 2500 Mobile */␊ |
756 | ␉␉case GMA_IVYBRIDGE_D_GT1: // 0152␊ |
757 | ␉␉case GMA_IVYBRIDGE_M_GT1: // 0156␊ |
758 | ␉␉case GMA_IVYBRIDGE_S_GT1: // 015A␊ |
759 | ␉␉case GMA_IVYBRIDGE_S_GT3: // 015e␊ |
760 | ␉␉case GMA_IVYBRIDGE_D_GT2: // 0162␊ |
761 | ␉␉case GMA_IVYBRIDGE_M_GT2: // 0166␊ |
762 | ␉␉case GMA_IVYBRIDGE_S_GT2: // 016A␊ |
763 | ␉␉case GMA_IVYBRIDGE_S_GT4: // 0172␊ |
764 | ␉␉case GMA_IVYBRIDGE_S_GT5: // 0176␊ |
765 | ␊ |
766 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_IVY * 2)␊ |
767 | ␉␉␉{␊ |
768 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_IVY];␊ |
769 | ␊ |
770 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_IVY) == 0)␊ |
771 | ␉␉␉␉{␊ |
772 | ␉␉␉␉␉memcpy(default_aapl_ivy, new_aapl0, AAPL_LEN_IVY);␊ |
773 | ␊ |
774 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,ig-platform-id\n");␊ |
775 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id: %02x%02x%02x%02x\n",␊ |
776 | ␉␉␉␉␉default_aapl_ivy[0], default_aapl_ivy[1], default_aapl_ivy[2], default_aapl_ivy[3]);␊ |
777 | ␉␉␉␉}␊ |
778 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", default_aapl_ivy, AAPL_LEN_IVY);␊ |
779 | ␉␉␉}␊ |
780 | ␉␉␉else if (getIntForKey(kIntelCapriFB, &n_igs, &bootInfo->chameleonConfig))␊ |
781 | ␉␉␉{␊ |
782 | ␉␉␉␉if ((n_igs >= 0) || (n_igs <= 11))␊ |
783 | ␉␉␉␉{␊ |
784 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with value %d\n", n_igs);␊ |
785 | ␉␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", ivy_bridge_ig_vals[n_igs], 4);␊ |
786 | ␉␉␉␉}␊ |
787 | ␉␉␉␉else␊ |
788 | ␉␉␉␉{␊ |
789 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with bad value please choose a number between 0 and 11.\n");␊ |
790 | ␉␉␉␉}␊ |
791 | ␉␉␉}␊ |
792 | ␉␉␉else␊ |
793 | ␉␉␉{␊ |
794 | ␉␉␉␉uint32_t ig_platform_id;␊ |
795 | ␉␉␉␉uint32_t ram = (((getVBEVideoRam() + 512) / 1024) + 512) / 1024;␊ |
796 | ␉␉␉␉switch (ram)␊ |
797 | ␉␉␉␉{␊ |
798 | ␉␉␉␉␉case 96:␊ |
799 | ␉␉␉␉␉␉ig_platform_id = 0x01660000; // 96mb Mobile␊ |
800 | ␉␉␉␉␉␉break;␊ |
801 | ␊ |
802 | ␉␉␉␉␉case 64:␊ |
803 | ␉␉␉␉␉␉ig_platform_id = 0x01660009; // 64mb Mobile␊ |
804 | ␉␉␉␉␉␉break;␊ |
805 | ␊ |
806 | ␉␉␉␉␉case 32:␊ |
807 | ␉␉␉␉␉␉ig_platform_id = 0x01620005; // 32mb Desktop␊ |
808 | ␉␉␉␉␉␉break;␊ |
809 | ␊ |
810 | ␉␉␉␉␉default:␊ |
811 | ␉␉␉␉␉␉printf("\tPlease specify 96, 64, or 32MB RAM for the HD4000 in the bios.\n"␊ |
812 | ␉␉␉␉␉␉␉"\tThe selected %dMB RAM configuration is not supported for the HD4000.\n", ram);␊ |
813 | ␉␉␉␉␉␉pause();␊ |
814 | ␉␉␉␉␉␉return false;␉// Exit early before the AAPL,ig-platform-id property is set.␊ |
815 | ␉␉␉␉␉␉break;␊ |
816 | ␉␉␉␉}␊ |
817 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
818 | ␉␉␉}␊ |
819 | ␊ |
820 | ␉␉␉devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
821 | ␉␉␉devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
822 | ␉␉␉devprop_add_value(device, "class-code", ClassFix, 4);␊ |
823 | ␊ |
824 | ␉␉␉break;␊ |
825 | ␊ |
826 | ␉␉/* Haswell */␊ |
827 | ␉␉/* HD Graphics 5000, HD Graphics 5000 Mobile, HD Graphics P5000, HD Graphics 4600, HD Graphics 4600 Mobile */␊ |
828 | ␉␉//case 0x80860090:␊ |
829 | ␉␉//case 0x80860091:␊ |
830 | ␉␉//case 0x80860092:␊ |
831 | ␉␉case GMA_HASWELL_M_GT2: // 0416␊ |
832 | ␉␉case GMA_HASWELL_E_GT2: // 041e␊ |
833 | ␉␉case GMA_HASWELL_ULT_M_GT2: // 0a16␊ |
834 | ␉␉case GMA_HASWELL_ULT_E_GT2: // 0a1e␊ |
835 | #if REPLACE_DEVICE_ID␊ |
836 | ␉␉␉verbose("\tInjecting a valid desktop GPU device id (0x0412) instead of patching kexts.\n");␊ |
837 | ␉␉␉device_id = 0x00000412;␉␉// Inject a valid desktop GPU device id (0x0412) instead of patching kexts␊ |
838 | ␉␉␉devprop_add_value(device, "vendor-id",␉(uint8_t *)INTEL_VENDORID, 4);␊ |
839 | ␉␉␉devprop_add_value(device, "device-id",␉(uint8_t *)&device_id, sizeof(device_id));␊ |
840 | ␉␉␉verbose("\tInjeting done: was [%04x:%04x] now is [%04x:%04x]\n", gma_dev->vendor_id, gma_dev->device_id, gma_dev->vendor_id, device_id);␊ |
841 | #endif // REPLACE_DEVICE_ID␊ |
842 | ␉␉case GMA_HASWELL_D_GT1: // 0402␊ |
843 | ␉␉case GMA_HASWELL_M_GT1: // 0406␊ |
844 | ␉␉case GMA_HASWELL_S_GT1: // 040a␊ |
845 | ␉␉case GMA_HASWELL_D_GT2: // 0412␊ |
846 | ␉␉case GMA_HASWELL_S_GT2: // 041a␊ |
847 | ␉␉case GMA_HASWELL_E_GT1: // 040e␊ |
848 | ␉␉case GMA_HASWELL_E_GT3: // 042e␊ |
849 | ␉␉case GMA_HASWELL_D_GT3: // 0422␊ |
850 | ␉␉case GMA_HASWELL_M_GT3: // 0426␊ |
851 | ␉␉case GMA_HASWELL_S_GT3: // 042a␊ |
852 | ␉␉case GMA_HASWELL_ULT_M_GT1: // 0a06␊ |
853 | ␉␉case GMA_HASWELL_ULT_E_GT1: // 0a0e␊ |
854 | ␉␉case GMA_HASWELL_ULT_D_GT3: // 0a22␊ |
855 | ␉␉case GMA_HASWELL_ULT_M_GT3: // 0a26␊ |
856 | ␉␉case GMA_HASWELL_ULT_S_GT3: // 0a2a␊ |
857 | ␉␉case GMA_HASWELL_ULT_E_GT3: // 0a2e␊ |
858 | ␉␉case GMA_HASWELL_SDV_D_GT1_IG: // 0c02␊ |
859 | ␉␉case GMA_HASWELL_SDV_M_GT1_IG: // 0c06␊ |
860 | ␉␉case GMA_HASWELL_SDV_D_GT2_IG: // 0c12␊ |
861 | ␉␉case GMA_HASWELL_SDV_M_GT2_IG: // 0c16␊ |
862 | ␉␉case GMA_HASWELL_SDV_D_GT2_PLUS_IG: // 0c22␊ |
863 | ␉␉case GMA_HASWELL_SDV_M_GT2_PLUS_IG: // 0c26␊ |
864 | ␉␉case GMA_HASWELL_CRW_D_GT1: // 0d02␊ |
865 | ␉␉case GMA_HASWELL_CRW_D_GT2: // 0d12␊ |
866 | ␉␉case GMA_HASWELL_CRW_D_GT3: // 0d22␊ |
867 | ␉␉case GMA_HASWELL_CRW_M_GT1: // 0d06␊ |
868 | ␉␉case GMA_HASWELL_CRW_M_GT2: // 0d16␊ |
869 | ␉␉case GMA_HASWELL_CRW_M_GT3: // 0d26␊ |
870 | ␉␉case GMA_HASWELL_CRW_S_GT1: // 0d0a␊ |
871 | ␉␉case GMA_HASWELL_CRW_S_GT2: // 0d1a␊ |
872 | ␉␉case GMA_HASWELL_CRW_S_GT3: // 0d2a␊ |
873 | ␉␉case GMA_HASWELL_CRW_B_GT1: // 0d0b␊ |
874 | ␉␉case GMA_HASWELL_CRW_B_GT2: // 0d1b␊ |
875 | ␉␉case GMA_HASWELL_CRW_B_GT3: // 0d2b␊ |
876 | ␉␉case GMA_HASWELL_CRW_E_GT1: // 0d0e␊ |
877 | ␉␉case GMA_HASWELL_CRW_E_GT2: // 0d1e␊ |
878 | ␉␉case GMA_HASWELL_CRW_E_GT3: // 0d2e␊ |
879 | ␉␉case GMA_HASWELL_CRW_M_GT2_PLUS_IG: // 0d36␊ |
880 | ␉␉case GMA_HASWELL_CRW_S_GT2_PLUS_IG: // 0d3a␊ |
881 | ␊ |
882 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_HSW * 2)␊ |
883 | ␉␉␉{␊ |
884 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_HSW];␊ |
885 | ␊ |
886 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_HSW) == 0)␊ |
887 | ␉␉␉␉{␊ |
888 | ␉␉␉␉␉memcpy(default_aapl_haswell, new_aapl0, AAPL_LEN_HSW);␊ |
889 | ␊ |
890 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,ig-platform-id\n");␊ |
891 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id: %02x%02x%02x%02x\n",␊ |
892 | ␉␉␉␉␉␉default_aapl_haswell[0], default_aapl_haswell[1], default_aapl_haswell[2], default_aapl_haswell[3]);␊ |
893 | ␉␉␉␉}␊ |
894 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", default_aapl_haswell, AAPL_LEN_HSW);␊ |
895 | ␉␉␉}␊ |
896 | ␉␉␉else if (getIntForKey(kIntelAzulFB, &n_igs, &bootInfo->chameleonConfig))␊ |
897 | ␉␉␉{␊ |
898 | ␉␉␉␉if ((n_igs >= 0) || (n_igs <= 16))␊ |
899 | ␉␉␉␉{␊ |
900 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with value %d\n", n_igs);␊ |
901 | ␉␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", haswell_ig_vals[n_igs], 4);␊ |
902 | ␉␉␉␉}␊ |
903 | ␉␉␉␉else␊ |
904 | ␉␉␉␉{␊ |
905 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with bad value please choose a number between 0 and 16.\n");␊ |
906 | ␉␉␉␉}␊ |
907 | ␉␉␉}␊ |
908 | ␉␉␉else␊ |
909 | ␉␉␉{␊ |
910 | ␉␉␉␉uint32_t ig_platform_id = 0x0000260c; // set the default platform ig␊ |
911 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
912 | ␉␉␉}␊ |
913 | ␊ |
914 | ␉␉␉devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
915 | ␉␉␉devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
916 | ␉␉␉devprop_add_value(device, "class-code", ClassFix, 4);␊ |
917 | ␊ |
918 | ␉␉␉break;␊ |
919 | ␊ |
920 | ␉␉/* Broadwell */␊ |
921 | ␉␉/* HD Graphics 5300 Mobile, HD Graphics 6000 Mobile, HD Graphics 6100 Mobile */␊ |
922 | ␉␉case GMA_BROADWELL_BDW_0bd0: // 0bd0␊ |
923 | ␉␉case GMA_BROADWELL_BDW_0bd1: // 0bd1␊ |
924 | ␉␉case GMA_BROADWELL_BDW_0bd2: // 0bd2␊ |
925 | ␉␉case GMA_BROADWELL_BDW_0bd3: // 0bd3␊ |
926 | ␉␉case GMA_BROADWELL_BDW_0bd4: // 0bd4␊ |
927 | ␉␉case GMA_BROADWELL_BDW_1602: // 1602␊ |
928 | ␉␉case GMA_BROADWELL_BDW_U_GT1: // 1606␊ |
929 | ␉␉case GMA_BROADWELL_BDW_160B: // 160b␊ |
930 | ␉␉case GMA_BROADWELL_BDW_160A: // 160a␊ |
931 | ␉␉case GMA_BROADWELL_BDW_160D: // 160d␊ |
932 | ␉␉case GMA_BROADWELL_BDW_160E: // 160e␊ |
933 | ␉␉case GMA_BROADWELL_BDW_1612: // 1612␊ |
934 | ␉␉case GMA_BROADWELL_BDW_U_GT2: // 1616␊ |
935 | ␉␉case GMA_BROADWELL_BDW_161B: // 161b␊ |
936 | ␉␉case GMA_BROADWELL_BDW_161A: // 161a␊ |
937 | ␉␉case GMA_BROADWELL_BDW_161D: // 161d␊ |
938 | ␉␉case GMA_BROADWELL_BDW_Y_GT2: // 161e (MacBook) Intel HD Graphics 5300␊ |
939 | ␉␉case GMA_BROADWELL_BDW_1622: // 1622 (iMac 21") Intel Iris Pro 6200␊ |
940 | ␉␉case GMA_BROADWELL_BDW_U_GT3: // 1626 (MacBook Air) Intel HD Graphics 6000␊ |
941 | ␉␉case GMA_BROADWELL_BDW_162A: // 162a␊ |
942 | ␉␉case GMA_BROADWELL_BDW_U_GT3_2: // 162b (MacBook Pro) Intel Iris Graphics 6100␊ |
943 | ␉␉case GMA_BROADWELL_BDW_162D: // 162d␊ |
944 | ␉␉case GMA_BROADWELL_BDW_162E: // 162e␊ |
945 | ␉␉case GMA_BROADWELL_BDW_1632: // 1632␊ |
946 | ␉␉case GMA_BROADWELL_BDW_1636: // 1636␊ |
947 | ␉␉case GMA_BROADWELL_BDW_163B: // 163b␊ |
948 | ␉␉case GMA_BROADWELL_BDW_163A: // 163a␊ |
949 | ␉␉case GMA_BROADWELL_BDW_163D: // 163d␊ |
950 | ␉␉case GMA_BROADWELL_BDW_163E: // 163e␊ |
951 | ␊ |
952 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_BDW * 2)␊ |
953 | ␉␉␉{␊ |
954 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_BDW];␊ |
955 | ␊ |
956 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_BDW) == 0)␊ |
957 | ␉␉␉␉{␊ |
958 | ␉␉␉␉␉memcpy(default_aapl_broadwell, new_aapl0, AAPL_LEN_BDW);␊ |
959 | ␊ |
960 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,ig-platform-id\n");␊ |
961 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id: %02x%02x%02x%02x\n",␊ |
962 | ␉␉␉␉␉␉default_aapl_broadwell[0], default_aapl_broadwell[1], default_aapl_broadwell[2], default_aapl_broadwell[3]);␊ |
963 | ␉␉␉␉}␊ |
964 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", default_aapl_broadwell, AAPL_LEN_BDW);␊ |
965 | ␉␉␉}␊ |
966 | ␉␉␉else if (getIntForKey(kIntelBdwFB, &n_igs, &bootInfo->chameleonConfig))␊ |
967 | ␉␉␉{␊ |
968 | ␉␉␉␉if ((n_igs >= 0) || (n_igs <= 20))␊ |
969 | ␉␉␉␉{␊ |
970 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with value %d\n", n_igs);␊ |
971 | ␉␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", broadwell_ig_vals[n_igs], 4);␊ |
972 | ␉␉␉␉}␊ |
973 | ␉␉␉␉else␊ |
974 | ␉␉␉␉{␊ |
975 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with bad value please choose a number between 0 and 19.\n");␊ |
976 | ␉␉␉␉}␊ |
977 | ␉␉␉}␊ |
978 | ␉␉␉else␊ |
979 | ␉␉␉{␊ |
980 | ␉␉␉␉uint32_t ig_platform_id;␊ |
981 | ␉␉␉␉if ( ( (device_id << 16) | vendor_id ) == GMA_BROADWELL_BDW_1622 )␊ |
982 | ␉␉␉␉{␊ |
983 | ␉␉␉␉␉ig_platform_id = 0x16220007; // Iris Pro 6200 (i5 5675C & i7 5775C)␊ |
984 | ␉␉␉␉}␊ |
985 | ␉␉␉␉else␊ |
986 | ␉␉␉␉{␊ |
987 | ␉␉␉␉␉ig_platform_id = 0x16160000; // set the default platform ig␊ |
988 | ␉␉␉␉}␊ |
989 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
990 | ␉␉␉}␊ |
991 | ␊ |
992 | ␉␉␉devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
993 | ␉␉␉devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
994 | ␉␉␉devprop_add_value(device, "class-code", ClassFix, 4);␊ |
995 | ␊ |
996 | ␉␉␉break;␊ |
997 | ␊ |
998 | ␉␉/* Skylake */␊ |
999 | ␉␉/* HD Graphics */␊ |
1000 | ␉␉case GMA_SKYLAKE_ULT_GT1:␉// 1906␊ |
1001 | ␉␉case GMA_SKYLAKE_ULT_GT15:␉// 1913␊ |
1002 | ␉␉case GMA_SKYLAKE_ULT_GT2:␉// 1916␊ |
1003 | ␉␉case GMA_SKYLAKE_ULX_GT1:␉// 190E␊ |
1004 | ␉␉case GMA_SKYLAKE_ULX_GT2:␉// 191E␊ |
1005 | ␉␉case GMA_SKYLAKE_DT_GT2:␉// 1912␊ |
1006 | ␉␉case GMA_SKYLAKE_1921:␉␉// 1921␊ |
1007 | ␉␉case GMA_SKYLAKE_ULT_GT3_E:␉// 1926␊ |
1008 | ␉␉case GMA_SKYLAKE_ULT_GT3:␉// 1923␊ |
1009 | ␉␉case GMA_SKYLAKE_ULT_GT3_28W:␉// 1927␊ |
1010 | ␉␉case GMA_SKYLAKE_DT_GT15:␉// 1917␊ |
1011 | ␉␉case GMA_SKYLAKE_DT_GT1:␉// 1902␊ |
1012 | ␉␉case GMA_SKYLAKE_DT_GT4:␉// 1932␊ |
1013 | ␉␉case GMA_SKYLAKE_GT4:␉␉// 193B␊ |
1014 | ␉␉case GMA_SKYLAKE_GT3_FE:␉// 192B␊ |
1015 | ␉␉case GMA_SKYLAKE_GT2:␉␉// 191B␊ |
1016 | ␉␉case GMA_SKYLAKE_192A:␉␉// 192A␊ |
1017 | ␉␉case GMA_SKYLAKE_SRW_GT4:␉// 193A␊ |
1018 | ␉␉case GMA_SKYLAKE_WS_GT2:␉// 191D␊ |
1019 | ␉␉case GMA_SKYLAKE_WS_GT4:␉// 193D␊ |
1020 | ␊ |
1021 | ␉␉␉if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_SKL * 2)␊ |
1022 | ␉␉␉{␊ |
1023 | ␉␉␉␉uint8_t new_aapl0[AAPL_LEN_SKL];␊ |
1024 | ␊ |
1025 | ␉␉␉␉if (hex2bin(value, new_aapl0, AAPL_LEN_SKL) == 0)␊ |
1026 | ␉␉␉␉{␊ |
1027 | ␉␉␉␉␉memcpy(default_aapl_skylake, new_aapl0, AAPL_LEN_SKL);␊ |
1028 | ␊ |
1029 | ␉␉␉␉␉verbose("\tUsing user supplied AAPL,ig-platform-id\n");␊ |
1030 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id: %02x%02x%02x%02x\n",␊ |
1031 | ␉␉␉␉␉␉default_aapl_skylake[0], default_aapl_skylake[1], default_aapl_skylake[2], default_aapl_skylake[3]);␊ |
1032 | ␉␉␉␉}␊ |
1033 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", default_aapl_skylake, AAPL_LEN_SKL);␊ |
1034 | ␉␉␉}␊ |
1035 | ␉␉␉else if (getIntForKey(kIntelSklFB, &n_igs, &bootInfo->chameleonConfig))␊ |
1036 | ␉␉␉{␊ |
1037 | ␉␉␉␉if ((n_igs >= 0) || (n_igs <= 12))␊ |
1038 | ␉␉␉␉{␊ |
1039 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with value %d\n", n_igs);␊ |
1040 | ␉␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[n_igs], 4);␊ |
1041 | ␉␉␉␉}␊ |
1042 | ␉␉␉␉else␊ |
1043 | ␉␉␉␉{␊ |
1044 | ␉␉␉␉␉verbose("\tAAPL,ig-platform-id was set in org.chameleon.Boot.plist with bad value please choose a number between 0 and 12.\n");␊ |
1045 | ␉␉␉␉}␊ |
1046 | ␉␉␉}␊ |
1047 | ␉␉␉else␊ |
1048 | ␉␉␉{␊ |
1049 | ␉␉␉␉uint32_t ig_platform_id = 0x19260000; // set the default platform ig␊ |
1050 | ␉␉␉␉devprop_add_value(device, "AAPL,ig-platform-id", (uint8_t *)&ig_platform_id, 4);␊ |
1051 | ␉␉␉}␊ |
1052 | ␊ |
1053 | ␉␉␉devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
1054 | ␉␉␉devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
1055 | ␉␉␉devprop_add_value(device, "class-code", ClassFix, 4);␊ |
1056 | ␊ |
1057 | ␉␉␉break;␊ |
1058 | ␊ |
1059 | ␉␉default:␊ |
1060 | ␉␉␉break;␊ |
1061 | ␉}␊ |
1062 | ␊ |
1063 | ␉stringdata = malloc(sizeof(uint8_t) * string->length);␊ |
1064 | ␉if (!stringdata)␊ |
1065 | ␉{␊ |
1066 | ␉␉printf("\t[setup_gma_devprop] No stringdata!\n");␊ |
1067 | ␉␉pause();␊ |
1068 | ␉␉return false;␊ |
1069 | ␉}␊ |
1070 | ␊ |
1071 | ␉memcpy(stringdata, (uint8_t *)devprop_generate_string(string), string->length);␊ |
1072 | ␉stringlength = string->length;␊ |
1073 | ␊ |
1074 | ␉return true;␊ |
1075 | }␊ |
1076 | |