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 and Haswell 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 "gma.h"␊ |
43 | #include "vbe.h"␊ |
44 | #include "graphics.h"␊ |
45 | ␊ |
46 | #ifndef DEBUG_GMA␊ |
47 | #define DEBUG_GMA 0␊ |
48 | #endif␊ |
49 | ␊ |
50 | #if DEBUG_GMA␊ |
51 | #define DBG(x...)␉printf(x)␊ |
52 | #else␊ |
53 | #define DBG(x...)␊ |
54 | #endif␊ |
55 | ␊ |
56 | uint8_t GMAX3100_vals[23][4] = {␊ |
57 | ␉{ 0x01,0x00,0x00,0x00 },␉//0 "AAPL,HasPanel"␊ |
58 | ␉{ 0x01,0x00,0x00,0x00 },␉//1 "AAPL,SelfRefreshSupported"␊ |
59 | ␉{ 0x01,0x00,0x00,0x00 },␉//2 "AAPL,aux-power-connected"␊ |
60 | ␉{ 0x00,0x00,0x00,0x08 },␉//3 "AAPL,backlight-control"␊ |
61 | ␉{ 0x64,0x00,0x00,0x00 },␉//4 "AAPL00,blackscreen-preferences"␊ |
62 | ␉{ 0x00,0x00,0x00,0x08 },␉//5 "AAPL01,BacklightIntensity"␊ |
63 | ␉{ 0x01,0x00,0x00,0x00 },␉//6 "AAPL01,blackscreen-preferences"␊ |
64 | ␉{ 0x20,0x00,0x00,0x00 },␉//7 "AAPL01,DataJustify"␊ |
65 | ␉{ 0x00,0x00,0x00,0x00 },␉//8 "AAPL01,Depth"␊ |
66 | ␉{ 0x01,0x00,0x00,0x00 },␉//9 "AAPL01,Dither"␊ |
67 | ␉{ 0x20,0x03,0x00,0x00 },␉//10 "AAPL01,DualLink"␊ |
68 | ␉{ 0x00,0x00,0x00,0x00 },␉//11 "AAPL01,Height"␊ |
69 | ␉{ 0x00,0x00,0x00,0x00 },␉//12 "AAPL01,Interlace"␊ |
70 | ␉{ 0x00,0x00,0x00,0x00 },␉//13 "AAPL01,Inverter"␊ |
71 | ␉{ 0x08,0x52,0x00,0x00 },␉//14 "AAPL01,InverterCurrent"␊ |
72 | ␉{ 0x00,0x00,0x00,0x00 },␉//15 "AAPL01,InverterCurrency"␊ |
73 | ␉{ 0x00,0x00,0x00,0x00 },␉//16 "AAPL01,LinkFormat"␊ |
74 | ␉{ 0x01,0x00,0x00,0x00 },␉//17 "AAPL01,LinkType"␊ |
75 | ␉{ 0x01,0x00,0x00,0x00 },␉//18 "AAPL01,Pipe"␊ |
76 | ␉{ 0x3B,0x00,0x00,0x00 },␉//19 "AAPL01,PixelFormat"␊ |
77 | ␉{ 0x00,0x00,0x00,0x00 },␉//20 "AAPL01,Refresh"␊ |
78 | ␉{ 0x6B,0x10,0x00,0x00 },␉//21 "AAPL01,Stretch"␊ |
79 | ␉{ 0xc8,0x95,0x00,0x00 },␉//22 "AAPL01,InverterFrequency"␊ |
80 | };␊ |
81 | ␊ |
82 | uint8_t ivy_bridge_ig_vals[12][4] = {␊ |
83 | ␉{ 0x00,0x00,0x66,0x01 },␉//0 "AAPL,ig-platform-id" //FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3␊ |
84 | ␉{ 0x01,0x00,0x66,0x01 },␉//1 "AAPL,ig-platform-id" //FB: 96MB, Pipes: 3, Ports: 4, FBMem: 3␊ |
85 | ␉{ 0x02,0x00,0x66,0x01 },␉//2 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 1, FBMem: 1␊ |
86 | ␉{ 0x03,0x00,0x66,0x01 },␉//3 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 2, Ports: 2, FBMem: 2␊ |
87 | ␉{ 0x04,0x00,0x66,0x01 },␉//4 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 1, FBMem: 1␊ |
88 | ␉{ 0x05,0x00,0x62,0x01 },␉//5 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2␊ |
89 | ␉{ 0x06,0x00,0x62,0x01 },␉//6 "AAPL,ig-platform-id" //FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0␊ |
90 | ␉{ 0x07,0x00,0x62,0x01 },␉//7 "AAPL,ig-platform-id" //FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0␊ |
91 | ␉{ 0x08,0x00,0x66,0x01 },␉//8 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3␊ |
92 | ␉{ 0x09,0x00,0x66,0x01 },␉//9 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3␊ |
93 | ␉{ 0x0a,0x00,0x66,0x01 },␉//10 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2␊ |
94 | ␉{ 0x0b,0x00,0x66,0x01 }␉␉//11 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 2, Ports: 3, FBMem: 2␊ |
95 | };␊ |
96 | ␊ |
97 | uint8_t haswell_ig_vals[16][4] = { /* - TESTING DATA --*/␊ |
98 | ␉{ 0x00,0x00,0x06,0x04 },␉// 0 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - mobile GT1␊ |
99 | ␉{ 0x00,0x00,0x06,0x0c },␉// 1 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - SDV mobile GT1␊ |
100 | ␉{ 0x00,0x00,0x16,0x04 },␉// 2 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - mobile GT2␊ |
101 | ␉{ 0x00,0x00,0x16,0x0a },␉// 3 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT2␊ |
102 | ␉{ 0x00,0x00,0x16,0x0c },␉// 4 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - SDV mobile GT2␊ |
103 | ␉{ 0x00,0x00,0x26,0x04 },␉// 5 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - mobile GT3␊ |
104 | ␉{ 0x00,0x00,0x26,0x0a },␉// 6 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
105 | ␉{ 0x00,0x00,0x26,0x0c },␉// 7 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - SDV mobile GT3␊ |
106 | ␉{ 0x00,0x00,0x26,0x0d }, // 8 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - CRW mobile GT3␊ |
107 | ␉{ 0x02,0x00,0x16,0x04 },␉// 9 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 1, Ports: 1, FBMem: 1 - mobile GT2␊ |
108 | ␉{ 0x03,0x00,0x22,0x0d }, // 10 "AAPL,ig-platform-id" //FB: 0MB, Pipes: 0, Ports: 0, FBMem: 0 - CRW Desktop GT3␊ |
109 | //␉{ 0x04,0x00,0x12,0x04 },␉// ?? "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
110 | ␉{ 0x05,0x00,0x26,0x0a },␉// 11 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
111 | ␉{ 0x06,0x00,0x26,0x0a },␉// 12 "AAPL,ig-platform-id" //FB: 32MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
112 | ␉{ 0x07,0x00,0x26,0x0d }, // 13 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 4, FBMem: 3 - CRW mobile GT3␊ |
113 | ␉{ 0x08,0x00,0x26,0x0a },␉// 14 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT mobile GT3␊ |
114 | ␉{ 0x08,0x00,0x2e,0x0a },␉// 15 "AAPL,ig-platform-id" //FB: 64MB, Pipes: 3, Ports: 3, FBMem: 3 - ULT reserved GT3␊ |
115 | };␊ |
116 | ␊ |
117 | uint8_t HD2000_vals[16][4] = {␊ |
118 | ␉{ 0x00,0x00,0x00,0x00 }, //0 "AAPL00,PixelFormat"␊ |
119 | ␉{ 0x00,0x00,0x00,0x00 }, //1 "AAPL00,T1"␊ |
120 | ␉{ 0x14,0x00,0x00,0x00 }, //2 "AAPL00,T2"␊ |
121 | ␉{ 0xfa,0x00,0x00,0x00 }, //3 "AAPL00,T3"␊ |
122 | ␉{ 0x2c,0x01,0x00,0x00 }, //4 "AAPL00,T4"␊ |
123 | ␉{ 0x00,0x00,0x00,0x00 }, //5 "AAPL00,T5"␊ |
124 | ␉{ 0x14,0x00,0x00,0x00 }, //6 "AAPL00,T6"␊ |
125 | ␉{ 0xf4,0x01,0x00,0x00 }, //7 "AAPL00,T7"␊ |
126 | ␉{ 0x00,0x00,0x00,0x00 }, //8 "AAPL00,LinkType"␊ |
127 | ␉{ 0x00,0x00,0x00,0x00 }, //9 "AAPL00,LinkFormat"␊ |
128 | ␉{ 0x00,0x00,0x00,0x00 }, //10 "AAPL00,DualLink"␊ |
129 | ␉{ 0x00,0x00,0x00,0x00 }, //11 "AAPL00,Dither"␊ |
130 | ␉{ 0x00,0x00,0x00,0x00 }, //12 "AAPL00,DataJustify"␊ |
131 | ␉{ 0x00,0x00,0x00,0x00 }, //13 "graphic-options"␊ |
132 | ␉{ 0x00,0x00,0x00,0x00 }, //14␊ |
133 | ␉{ 0x01,0x00,0x00,0x00 } //15␊ |
134 | };␊ |
135 | ␊ |
136 | uint8_t HD3000_vals[17][4] = {␊ |
137 | ␉{ 0x00,0x00,0x00,0x00 }, //0 "AAPL00,PixelFormat"␊ |
138 | ␉{ 0x00,0x00,0x00,0x00 }, //1 "AAPL00,T1"␊ |
139 | ␉{ 0x14,0x00,0x00,0x00 }, //2 "AAPL00,T2"␊ |
140 | ␉{ 0xfa,0x00,0x00,0x00 }, //3 "AAPL00,T3"␊ |
141 | ␉{ 0x2c,0x01,0x00,0x00 }, //4 "AAPL00,T4"␊ |
142 | ␉{ 0x00,0x00,0x00,0x00 }, //5 "AAPL00,T5"␊ |
143 | ␉{ 0x14,0x00,0x00,0x00 }, //6 "AAPL00,T6"␊ |
144 | ␉{ 0xf4,0x01,0x00,0x00 }, //7 "AAPL00,T7"␊ |
145 | ␉{ 0x00,0x00,0x00,0x00 }, //8 "AAPL00,LinkType"␊ |
146 | ␉{ 0x00,0x00,0x00,0x00 }, //9 "AAPL00,LinkFormat"␊ |
147 | ␉{ 0x00,0x00,0x00,0x00 }, //10 "AAPL00,DualLink"␊ |
148 | ␉{ 0x00,0x00,0x00,0x00 }, //11 "AAPL00,Dither"␊ |
149 | ␉{ 0x00,0x00,0x00,0x00 }, //12 "AAPL00,DataJustify"␊ |
150 | ␉{ 0x00,0x00,0x00,0x00 }, //13 "graphic-options"␊ |
151 | ␉{ 0x00,0x00,0x00,0x00 }, //14␊ |
152 | ␉{ 0x01,0x00,0x00,0x00 }, //15␊ |
153 | ␉{ 0x00,0x00,0x01,0x00 } //16 AAPL,snb-platform-id␊ |
154 | };␊ |
155 | ␊ |
156 | uint8_t HD4000_vals[15][4] = {␊ |
157 | ␉{ 0x00,0x00,0x00,0x00 }, //0 "AAPL00,PixelFormat"␊ |
158 | ␉{ 0x00,0x00,0x00,0x00 }, //1 "AAPL00,T1"␊ |
159 | ␉{ 0x01,0x00,0x00,0x00 }, //2 "AAPL00,T2"␊ |
160 | ␉{ 0xc8,0x00,0x00,0x00 }, //3 "AAPL00,T3"␊ |
161 | ␉{ 0xc8,0x00,0x00,0x00 }, //4 "AAPL00,T4"␊ |
162 | ␉{ 0x01,0x00,0x00,0x00 }, //5 "AAPL00,T5"␊ |
163 | ␉{ 0x00,0x00,0x00,0x00 }, //6 "AAPL00,T6"␊ |
164 | ␉{ 0x90,0x01,0x00,0x00 }, //7 "AAPL00,T7"␊ |
165 | ␉{ 0x01,0x00,0x00,0x00 }, //8 "AAPL00,LinkType"␊ |
166 | ␉{ 0x00,0x00,0x00,0x00 }, //9 "AAPL00,LinkFormat"␊ |
167 | ␉{ 0x01,0x00,0x00,0x00 }, //10 "AAPL00,DualLink"␊ |
168 | ␉{ 0x00,0x00,0x00,0x00 }, //11 "AAPL00,Dither"␊ |
169 | ␉{ 0xc3,0x8c,0x64,0x00 }, //12 "AAPL,gray-value"␊ |
170 | ␉{ 0x01,0x00,0x00,0x00 }, //13 "AAPL,gray-page"␊ |
171 | ␉{ 0x0c,0x00,0x00,0x00 } //14 "graphics-options"␊ |
172 | };␊ |
173 | ␊ |
174 | // http://www.insanelymac.com/forum/topic/286092-guide-1st-generation-intel-hd-graphics-qeci/␊ |
175 | uint8_t HDx000_os_info[20] = {␊ |
176 | ␉0x30,0x49,0x01,0x11,0x01,0x10,0x08,0x00,0x00,0x01,␊ |
177 | ␉0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF␊ |
178 | };␊ |
179 | ␊ |
180 | uint8_t HD2000_tbl_info[18] = {␊ |
181 | ␉0x30,0x44,0x02,0x02,0x02,0x02,0x00,0x00,0x00,␊ |
182 | ␉0x00,0x01,0x02,0x02,0x02,0x00,0x01,0x02,0x02␊ |
183 | };␊ |
184 | uint8_t HD2000_os_info[20] = {␊ |
185 | ␉0x30,0x49,0x01,0x11,0x11,0x11,0x08,0x00,0x00,0x01,␊ |
186 | ␉0xf0,0x1f,0x01,0x00,0x00,0x00,0x10,0x07,0x00,0x00␊ |
187 | };␊ |
188 | ␊ |
189 | // The following values came from a Sandy Bridge MacBook Air␊ |
190 | uint8_t HD3000_tbl_info[18] = {␊ |
191 | ␉0x30,0x44,0x02,0x02,0x02,0x02,0x00,0x00,0x00,␊ |
192 | ␉0x00,0x02,0x02,0x02,0x02,0x01,0x01,0x01,0x01␊ |
193 | };␊ |
194 | ␊ |
195 | // The following values came from a Sandy Bridge MacBook Air␊ |
196 | uint8_t HD3000_os_info[20] = {␊ |
197 | ␉0x30,0x49,0x01,0x12,0x12,0x12,0x08,0x00,0x00,0x01,␊ |
198 | ␉0xf0,0x1f,0x01,0x00,0x00,0x00,0x10,0x07,0x00,0x00␊ |
199 | };␊ |
200 | ␊ |
201 | ␊ |
202 | uint8_t reg_TRUE[]␉= { 0x01, 0x00, 0x00, 0x00 };␊ |
203 | uint8_t reg_FALSE[] = { 0x00, 0x00, 0x00, 0x00 };␊ |
204 | ␊ |
205 | // https://en.wikipedia.org/wiki/Comparison_of_Intel_graphics_processing_units#Seventh_generation␊ |
206 | ␊ |
207 | /* http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/intel_module.c */␊ |
208 | ␊ |
209 | static intel_gfx_info_t intel_gfx_chipsets[] = {␊ |
210 | ␉{GMA_I810, "i810"},␊ |
211 | ␉{GMA_I810_DC100, "i810-dc100"},␊ |
212 | ␉{GMA_I810_E, "i810e"},␊ |
213 | ␉{GMA_I815, "i815"},␊ |
214 | ␉{GMA_I830_M, "i830M"},␊ |
215 | ␉{GMA_845_G, "845G"},␊ |
216 | ␉{GMA_I854, "854"},␊ |
217 | ␉{GMA_I855_GM, "852GM/855GM"},␊ |
218 | ␉{GMA_I865_G, "865G"},␊ |
219 | ␉{GMA_I915_G, "915G"},␊ |
220 | ␉{GMA_E7221_G, "E7221 (i915)"},␊ |
221 | ␉{GMA_I915_GM, "915GM"},␊ |
222 | ␉{GMA_I945_G, "945G"},␊ |
223 | // 2776 /* Desktop GMA950 */␊ |
224 | // 2782 /* GMA 915 */␊ |
225 | // 2792 /* Mobile GMA915 */␊ |
226 | ␉{GMA_I945_GM, "945GM"},␊ |
227 | ␉{GMA_I945_GME, "945GME"},␊ |
228 | // 27A6 /* Mobile GMA950 */␊ |
229 | // 29C3 /* Desktop GMA3100 */␊ |
230 | ␉{GMA_PINEVIEW_M, "Pineview GM"},␊ |
231 | ␉{GMA_GMA3150_M, "Pineview GM"}, // A012 /* Mobile GMA3150 */␊ |
232 | ␉{GMA_PINEVIEW_G, "Pineview G"},␊ |
233 | ␉{GMA_GMA3150_D, "Desktop GMA3150"}, // A002 /* Desktop GMA3150 */␊ |
234 | ␉{GMA_I965_G, "965G"},␊ |
235 | ␉{GMA_G35_G, "G35"},␊ |
236 | ␉{GMA_I965_Q, "965Q"},␊ |
237 | ␉{GMA_I946_GZ, "946GZ"},␊ |
238 | ␉{GMA_I965_GM, "965GM"},␊ |
239 | ␉{GMA_I965_GME, "965GME/GLE"},␊ |
240 | ␉{GMA_G33_G, "G33"},␊ |
241 | // 2A13 /* GMAX3100 */␊ |
242 | // 2A43 /* GMAX3100 */␊ |
243 | ␉{GMA_Q35_G, "Q35"},␊ |
244 | ␉{GMA_Q33_G, "Q33"},␊ |
245 | ␉{GMA_GM45_GM, "GM45"},␊ |
246 | ␉{GMA_G45_E_G, "4 Series"},␊ |
247 | ␉{GMA_G45_G, "G45/G43"},␊ |
248 | ␉{GMA_Q45_G, "Q45/Q43"},␊ |
249 | ␉{GMA_G41_G, "G41"},␊ |
250 | ␉{GMA_B43_G, "B43"},␊ |
251 | ␉{GMA_B43_G1, "B43"},␊ |
252 | /**/␊ |
253 | ␉{GMA_IRONLAKE_D_G, HD_GRAPHICS},␊ |
254 | ␉{GMA_IRONLAKE_M_G, HD_GRAPHICS},␊ |
255 | // 004A /* HD2000 */␊ |
256 | ␊ |
257 | /* Sandy */␊ |
258 | ␉{GMA_SANDYBRIDGE_GT1, HD_GRAPHICS_2000 },␊ |
259 | ␉{GMA_SANDYBRIDGE_GT2, HD_GRAPHICS_3000 },␊ |
260 | ␉{GMA_SANDYBRIDGE_GT2_PLUS, HD_GRAPHICS_3000 },␊ |
261 | ␉{GMA_SANDYBRIDGE_M_GT1, HD_GRAPHICS_2000 },␊ |
262 | ␉{GMA_SANDYBRIDGE_M_GT2, HD_GRAPHICS_3000 },␊ |
263 | ␉{GMA_SANDYBRIDGE_M_GT2_PLUS, HD_GRAPHICS_3000 },␊ |
264 | ␉{GMA_SANDYBRIDGE_S_GT, HD_GRAPHICS },␊ |
265 | // 010B /* ??? */␊ |
266 | // 010E /* ??? */␊ |
267 | ␊ |
268 | /* Ivy */␊ |
269 | ␉{GMA_IVYBRIDGE_M_GT1, HD_GRAPHICS_2500 },␊ |
270 | ␉{GMA_IVYBRIDGE_M_GT2, HD_GRAPHICS_4000 },␊ |
271 | ␉{GMA_IVYBRIDGE_D_GT1, HD_GRAPHICS_2500 },␊ |
272 | ␉{GMA_IVYBRIDGE_D_GT2, HD_GRAPHICS_4000 },␊ |
273 | ␉{GMA_IVYBRIDGE_S_GT1, HD_GRAPHICS },␊ |
274 | ␉{GMA_IVYBRIDGE_S_GT2, "HD Graphics P4000" },␊ |
275 | ␉{GMA_IVYBRIDGE_S_GT3, HD_GRAPHICS }, // 015e␊ |
276 | ␉{GMA_IVYBRIDGE_S_GT4, HD_GRAPHICS_2500 }, // 0172 /* HD Graphics 2500 Mobile */␊ |
277 | ␉{GMA_IVYBRIDGE_S_GT5, HD_GRAPHICS_2500 }, // 0176 /* HD Graphics 2500 Mobile */␊ |
278 | ␊ |
279 | /* Haswell */␊ |
280 | // 0090 /* ??? */␊ |
281 | // 0091 /* ??? */␊ |
282 | // 0092 /* ??? */␊ |
283 | ␉{GMA_HASWELL_D_GT1, HD_GRAPHICS },␊ |
284 | ␉{GMA_HASWELL_D_GT2, HD_GRAPHICS_4600 },␊ |
285 | ␉{GMA_HASWELL_D_GT3, HD_GRAPHICS_5000 }, /* ??? */␊ |
286 | ␉{GMA_HASWELL_M_GT1, HD_GRAPHICS },␊ |
287 | ␉{GMA_HASWELL_M_GT2, HD_GRAPHICS_4600 },␊ |
288 | ␉{GMA_HASWELL_M_GT3, HD_GRAPHICS_5000 }, /* ??? */␊ |
289 | ␉{GMA_HASWELL_S_GT1, HD_GRAPHICS },␊ |
290 | ␉{GMA_HASWELL_S_GT2, "HD Graphics P4600/P4700" },␊ |
291 | ␉{GMA_HASWELL_S_GT3, HD_GRAPHICS_5000 }, /* ??? */␊ |
292 | ␉{GMA_HASWELL_B_GT1, HD_GRAPHICS }, /* ??? */␊ |
293 | ␉{GMA_HASWELL_B_GT2, HD_GRAPHICS }, /* ??? */␊ |
294 | ␉{GMA_HASWELL_B_GT3, HD_GRAPHICS }, /* ??? */␊ |
295 | ␉{GMA_HASWELL_E_GT1, HD_GRAPHICS },␊ |
296 | ␉{GMA_HASWELL_E_GT2, HD_GRAPHICS }, /* ??? */␊ |
297 | ␉{GMA_HASWELL_E_GT3, HD_GRAPHICS }, /* ??? */␊ |
298 | ␉{GMA_HASWELL_ULT_D_GT1, HD_GRAPHICS }, /* ??? */␊ |
299 | ␉{GMA_HASWELL_ULT_D_GT2, HD_GRAPHICS }, /* ??? */␊ |
300 | ␉{GMA_HASWELL_ULT_D_GT3, IRIS_5100 },␊ |
301 | ␉{GMA_HASWELL_ULT_M_GT1, HD_GRAPHICS },␊ |
302 | ␉{GMA_HASWELL_ULT_M_GT2, HD_GRAPHICS_4400 },␊ |
303 | ␉{GMA_HASWELL_ULT_M_GT3, HD_GRAPHICS_5000 },␊ |
304 | ␉{GMA_HASWELL_ULT_S_GT1, HD_GRAPHICS }, /* ??? */␊ |
305 | ␉{GMA_HASWELL_ULT_S_GT2, HD_GRAPHICS }, /* ??? */␊ |
306 | ␉{GMA_HASWELL_ULT_S_GT3, IRIS_5100 },␊ |
307 | ␉{GMA_HASWELL_ULT_B_GT1, HD_GRAPHICS }, /* ??? */␊ |
308 | ␉{GMA_HASWELL_ULT_B_GT2, HD_GRAPHICS }, /* ??? */␊ |
309 | ␉{GMA_HASWELL_ULT_B_GT3, IRIS_5100 },␊ |
310 | ␉{GMA_HASWELL_ULT_E_GT1, HD_GRAPHICS },␊ |
311 | ␉{GMA_HASWELL_ULT_E_GT2, HD_GRAPHICS_4200 },␊ |
312 | ␉// 0A2A /* ??? */␊ |
313 | ␉{GMA_HASWELL_ULT_E_GT3, IRIS_5100 },␊ |
314 | ␉// 0C02 /* Intel Haswell HD Graphics - GTL */␊ |
315 | ␉// 0C04 /* ??? */␊ |
316 | ␉// 0C06 /* Intel Haswell HD Graphics - GTL */␊ |
317 | ␉// 0C12 /* Intel Haswell HD Graphics - GTM */␊ |
318 | ␉// 0C16 /* Intel Haswell HD Graphics - GTH */␊ |
319 | ␉// 0C22 /* Intel Haswell HD Graphics - GTH */␊ |
320 | ␉// 0C26 /* Intel Haswell HD Graphics - GTH */␊ |
321 | ␉{GMA_HASWELL_CRW_D_GT1, HD_GRAPHICS }, /* ??? */␊ |
322 | ␉{GMA_HASWELL_CRW_D_GT2, HD_GRAPHICS_4600 },␊ |
323 | ␉{GMA_HASWELL_CRW_D_GT3, IRIS_5200 },␊ |
324 | ␉{GMA_HASWELL_CRW_M_GT1, HD_GRAPHICS }, /* ??? */␊ |
325 | ␉{GMA_HASWELL_CRW_M_GT2, HD_GRAPHICS_4600 },␊ |
326 | ␉{GMA_HASWELL_CRW_M_GT3, IRIS_5200 },␊ |
327 | ␉{GMA_HASWELL_CRW_S_GT1, HD_GRAPHICS }, /* ??? */␊ |
328 | ␉{GMA_HASWELL_CRW_S_GT2, HD_GRAPHICS }, /* ??? */␊ |
329 | ␉{GMA_HASWELL_CRW_S_GT3, IRIS_5200 },␊ |
330 | ␉{GMA_HASWELL_CRW_B_GT1, HD_GRAPHICS }, /* ??? */␊ |
331 | ␉{GMA_HASWELL_CRW_B_GT2, HD_GRAPHICS }, /* ??? */␊ |
332 | ␉{GMA_HASWELL_CRW_B_GT3, IRIS_5200 },␊ |
333 | ␉{GMA_HASWELL_CRW_E_GT1, HD_GRAPHICS }, /* ??? */␊ |
334 | ␉{GMA_HASWELL_CRW_E_GT2, HD_GRAPHICS }, /* ??? */␊ |
335 | ␉{GMA_HASWELL_CRW_E_GT3, IRIS_5200 },␊ |
336 | ␉{GMA_HASWELL_CRW_M_GT2_PLUS_IG, HD_GRAPHICS },␊ |
337 | ␊ |
338 | /* Brodwell */␊ |
339 | {GMA_BRODWELL_BDW_M_GT1,␉␉HD_GRAPHICS }, /* 1602 */␊ |
340 | {GMA_BRODWELL_BDW_M_GT2,␉␉HD_GRAPHICS_5600},␉/* 1612 */␊ |
341 | {GMA_BRODWELL_BDW_M_GT3e,␉␉IRIS_Pro_6200}, /* 1622 */␊ |
342 | {GMA_BRODWELL_BDW_M_1632,␉␉HD_GRAPHICS },␉␉/* 1632 */␊ |
343 | {GMA_BRODWELL_ULT_M_GT1, HD_GRAPHICS }, /* 1606 */␊ |
344 | {GMA_BRODWELL_ULT_M_GT2, HD_GRAPHICS_5500}, /* 1616 */␊ |
345 | {GMA_BRODWELL_ULT_M_GT3,␉␉HD_GRAPHICS_6000},␉/* 1626 */␊ |
346 | {GMA_BRODWELL_ULT_M_1636,␉␉HD_GRAPHICS },␉␉/* 1636 */␊ |
347 | {GMA_BRODWELL_BDW_S_GT1, HD_GRAPHICS }, /* 160a */␊ |
348 | {GMA_BRODWELL_BDW_S_GT2,␉␉HD_GRAPHICS },␉␉/* 161a */␊ |
349 | {GMA_BRODWELL_BDW_S_GT3e,␉␉IRIS_Pro_P6300}, /* 162a */␊ |
350 | {GMA_BRODWELL_BDW_S_163A,␉␉HD_GRAPHICS },␉␉/* 163a */␊ |
351 | {GMA_BRODWELL_LVT_M_GT1, HD_GRAPHICS }, /* 160b */␊ |
352 | {GMA_BRODWELL_LVT_M_GT2, HD_GRAPHICS }, /* 161b */␊ |
353 | {GMA_BRODWELL_LVT_M_GT3,␉␉IRIS_6100 },␉␉/* 162b */␊ |
354 | {GMA_BRODWELL_LVT_M_163B,␉␉HD_GRAPHICS },␉␉/* 163b */␊ |
355 | {GMA_BRODWELL_BDW_D_GT1,␉␉HD_GRAPHICS }, /* 160d */␊ |
356 | {GMA_BRODWELL_BDW_D_GT2,␉␉HD_GRAPHICS },␉␉/* 161d */␊ |
357 | {GMA_BRODWELL_BDW_D_GT3,␉␉HD_GRAPHICS },␉␉/* 162d */␊ |
358 | {GMA_BRODWELL_BDW_D_163D,␉␉HD_GRAPHICS },␉␉/* 163d */␊ |
359 | {GMA_BRODWELL_ULX_M_GT1, HD_GRAPHICS }, /* 160e */␊ |
360 | {GMA_BRODWELL_ULX_M_GT2,␉␉HD_GRAPHICS_5300},␉/* 161e */␊ |
361 | {GMA_BRODWELL_ULX_M_GT3,␉␉HD_GRAPHICS },␉␉/* 162e */␊ |
362 | {GMA_BRODWELL_ULX_M_163E,␉␉HD_GRAPHICS }␉␉/* 163e */␊ |
363 | };␊ |
364 | ␊ |
365 | #define GFX_DEVICES_LEN (sizeof(intel_gfx_chipsets) / sizeof(intel_gfx_chipsets[0]))␊ |
366 | ␊ |
367 | /* END http://cgit.freedesktop.org/xorg/driver/xf86-video-intel/tree/src/intel_module.c */␊ |
368 | ␊ |
369 | /* Get Intel GFX device name */␊ |
370 | static char *get_gma_controller_name(uint16_t device_id, uint16_t vendor_id)␊ |
371 | {␊ |
372 | ␉int i = 0;␊ |
373 | ␉static char desc[128];␊ |
374 | ␊ |
375 | ␉for (i = 0; i < GFX_DEVICES_LEN; i++)␊ |
376 | ␉{␊ |
377 | ␉␉if (intel_gfx_chipsets[i].model == ((device_id << 16) | vendor_id))␊ |
378 | ␉␉{␊ |
379 | ␉␉␉snprintf(desc, sizeof(desc), "%s %s", INTEL_NAME, intel_gfx_chipsets[i].label_info);␊ |
380 | ␉␉␉return desc;␊ |
381 | ␉␉}␊ |
382 | ␉}␊ |
383 | ␉snprintf(desc, sizeof(desc), "Unknown %s Graphics card", INTEL_NAME);␊ |
384 | ␉return desc;␊ |
385 | }␊ |
386 | ␊ |
387 | bool setup_gma_devprop(pci_dt_t *gma_dev)␊ |
388 | {␊ |
389 | ␉char *devicepath = NULL;␊ |
390 | ␉volatile uint8_t *regs;␊ |
391 | ␉uint32_t bar[7];␊ |
392 | ␉char *model = NULL;␊ |
393 | ␉uint8_t BuiltIn = 0x00;␊ |
394 | ␉int len;␊ |
395 | ␉const char *value;␊ |
396 | ␉uint16_t vendor_id = gma_dev->vendor_id;␊ |
397 | ␉uint16_t device_id = gma_dev->device_id;␊ |
398 | ␉uint8_t ClassFix[4] = { 0x00, 0x00, 0x03, 0x00 };␊ |
399 | ␊ |
400 | uint8_t hd3k_kmobile_device_id[4] = { 0x26, 0x01, 0x00, 0x00 }; // MacMan␊ |
401 | uint8_t hd4k_device_id[4] = { 0x62, 0x01, 0x00, 0x00 }; // MacMan␊ |
402 | uint8_t hd4400_mobile_device_id[4] = { 0x26, 0x0A, 0x00, 0x00 }; // MacMan␊ |
403 | uint8_t hd4600_device_id[4] = { 0x12, 0x04, 0x00, 0x00 }; // MacMan␊ |
404 | uint8_t hd4600_mobile_device_id[4] = { 0x16, 0x04, 0x00, 0x00 }; // MacMan␊ |
405 | uint8_t igp_device_id[4] = { 0x00, 0x00, 0x00, 0x00 }; // MacMan␊ |
406 | ␊ |
407 | uint8_t snb_id_3k[4] = { 0x10, 0x00, 0x03, 0x00 }; // MacMan␊ |
408 | uint8_t snb_id_3k_mobile[4] = { 0x00, 0x00, 0x01, 0x00 }; // MacMan␊ |
409 | uint8_t ig_id_4k[4] = { 0x0A, 0x00, 0x66, 0x01 }; // MacMan␊ |
410 | uint8_t ig_id_4k_mobile[4] = { 0x03, 0x00, 0x66, 0x01 }; // MacMan␊ |
411 | uint8_t ig_id_4600[4] = { 0x03, 0x00, 0x22, 0x0D }; // MacMan␊ |
412 | uint8_t ig_id_4600_mobile[4] = { 0x06, 0x00, 0x26, 0x0A }; // MacMan␊ |
413 | uint8_t ig_id_5500_mobile[4] = { 0x00, 0x00, 0x16, 0x16 }; // MacMan␊ |
414 | uint8_t ig_platform_id[4] = { 0x00, 0x00, 0x00, 0x00 }; // MacMan␊ |
415 | ␊ |
416 | ␉devicepath = get_pci_dev_path(gma_dev);␊ |
417 | ␊ |
418 | ␉bar[0] = pci_config_read32(gma_dev->dev.addr, 0x10);␊ |
419 | ␉regs = (uint8_t *) (bar[0] & ~0x0f);␊ |
420 | ␊ |
421 | ␉model = get_gma_controller_name(device_id, vendor_id);␊ |
422 | ␊ |
423 | ␉verbose("---------------------------------------------\n");␊ |
424 | ␉verbose("------------ INTEL DEVICE INFO --------------\n");␊ |
425 | ␉verbose("---------------------------------------------\n");␊ |
426 | ␉verbose("Class code: [%04x]\n%s [%04x:%04x] (rev %02x)\nSubsystem: [%04x:%04x] :: %s\n",␊ |
427 | ␉␉␉gma_dev->class_id, 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);␊ |
428 | ␊ |
429 | ␉if (!string) {␊ |
430 | ␉␉string = devprop_create_string();␊ |
431 | ␉}␊ |
432 | ␊ |
433 | ␉struct DevPropDevice *device = devprop_add_device(string, devicepath);␊ |
434 | ␉if (!device) {␊ |
435 | ␉␉printf("Failed initializing dev-prop string dev-entry.\n");␊ |
436 | ␉␉pause();␊ |
437 | ␉␉return false;␊ |
438 | ␉}␊ |
439 | ␊ |
440 | ␉devprop_add_value(device, "model", (uint8_t*)model, (strlen(model) + 1));␊ |
441 | ␉devprop_add_value(device, "device_type", (uint8_t*)"display", 8);␊ |
442 | ␊ |
443 | ␊ |
444 | ␉switch ((device_id << 16) | vendor_id)␊ |
445 | ␉{␊ |
446 | case GMA_IRONLAKE_D_G: // 0042␊ |
447 | case GMA_IRONLAKE_M_G: // 0046␊ |
448 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
449 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
450 | devprop_add_value(device, "hda-gfx",␉(uint8_t *)"onboard-1", 10);␊ |
451 | devprop_add_value(device, "AAPL,os-info", HDx000_os_info, 20);␊ |
452 | break;␊ |
453 | case GMA_I945_GM: // Mobile GMA950 Mobile GMA3150␊ |
454 | case GMA_I945_GME:␊ |
455 | //case GMA_945GM:␊ |
456 | case GMA_PINEVIEW_G:␊ |
457 | case GMA_PINEVIEW_M:␊ |
458 | case GMA_GMA3150_M:␊ |
459 | devprop_add_value(device, "AAPL,HasPanel", reg_TRUE, 4);␊ |
460 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
461 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
462 | break;␊ |
463 | ␊ |
464 | case GMA_I945_G: // Desktop GMA950 Desktop GMA3150␊ |
465 | //case GMA_82945G:␊ |
466 | case GMA_GMA3150_D:␊ |
467 | BuiltIn = 0x01;␊ |
468 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
469 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
470 | break;␊ |
471 | ␊ |
472 | case GMA_I965_GM: // GMAX3100␊ |
473 | case GMA_I965_GME:␊ |
474 | //case 0x80862A13:␊ |
475 | case GMA_GM45_GM:␊ |
476 | //case GMA_GM45_GM2:␊ |
477 | devprop_add_value(device, "AAPL,HasPanel", GMAX3100_vals[0], 4);␊ |
478 | devprop_add_value(device, "AAPL,SelfRefreshSupported", GMAX3100_vals[1], 4);␊ |
479 | devprop_add_value(device, "AAPL,aux-power-connected", GMAX3100_vals[2], 4);␊ |
480 | devprop_add_value(device, "AAPL,backlight-control", GMAX3100_vals[3], 4);␊ |
481 | devprop_add_value(device, "AAPL00,blackscreen-preferences",␉GMAX3100_vals[4], 4);␊ |
482 | devprop_add_value(device, "AAPL01,BacklightIntensity", GMAX3100_vals[5], 4);␊ |
483 | devprop_add_value(device, "AAPL01,blackscreen-preferences",␉GMAX3100_vals[6], 4);␊ |
484 | devprop_add_value(device, "AAPL01,DataJustify", GMAX3100_vals[7], 4);␊ |
485 | devprop_add_value(device, "AAPL01,Depth", GMAX3100_vals[8], 4);␊ |
486 | devprop_add_value(device, "AAPL01,Dither", GMAX3100_vals[9], 4);␊ |
487 | devprop_add_value(device, "AAPL01,DualLink", GMAX3100_vals[10], 4);␊ |
488 | devprop_add_value(device, "AAPL01,Height", GMAX3100_vals[11], 4);␊ |
489 | devprop_add_value(device, "AAPL01,Interlace", GMAX3100_vals[12], 4);␊ |
490 | devprop_add_value(device, "AAPL01,Inverter", GMAX3100_vals[13], 4);␊ |
491 | devprop_add_value(device, "AAPL01,InverterCurrent", GMAX3100_vals[14], 4);␊ |
492 | devprop_add_value(device, "AAPL01,InverterCurrency", GMAX3100_vals[15], 4);␊ |
493 | devprop_add_value(device, "AAPL01,LinkFormat", GMAX3100_vals[16], 4);␊ |
494 | devprop_add_value(device, "AAPL01,LinkType", GMAX3100_vals[17], 4);␊ |
495 | devprop_add_value(device, "AAPL01,Pipe", GMAX3100_vals[18], 4);␊ |
496 | devprop_add_value(device, "AAPL01,PixelFormat", GMAX3100_vals[19], 4);␊ |
497 | devprop_add_value(device, "AAPL01,Refresh", GMAX3100_vals[20], 4);␊ |
498 | devprop_add_value(device, "AAPL01,Stretch", GMAX3100_vals[21], 4);␊ |
499 | //devprop_add_value(device, "AAPL01,InverterFrequency",␉GMAX3100_vals[22], 4);␊ |
500 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
501 | break;␊ |
502 | ␊ |
503 | case GMA_SANDYBRIDGE_GT1: // HD Graphics 2000, found in kext␊ |
504 | devprop_add_value(device, "built-in",␉␉␉&BuiltIn, 1);␊ |
505 | devprop_add_value(device, "class-code",␉␉␉ClassFix, 4);␊ |
506 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
507 | devprop_add_value(device, "hda-gfx",␉␉␉(uint8_t *)"onboard-1", 10);␊ |
508 | devprop_add_value(device, "AAPL,tbl-info",␉␉HD2000_tbl_info, 18);␊ |
509 | devprop_add_value(device, "AAPL,os-info",␉␉HD2000_os_info, 20);␊ |
510 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
511 | {␊ |
512 | verbose("Setting 0x%s for snb-platform-id\n", value);␊ |
513 | hex2devprop(value, ig_platform_id, 4);␊ |
514 | devprop_add_value(device, "AAPL,snb-platform-id", ig_platform_id, 4);␊ |
515 | }␊ |
516 | else␊ |
517 | {␊ |
518 | devprop_add_value(device, "AAPL,snb-platform-id", snb_id_3k, 4);␊ |
519 | verbose("Using default snb-platform-id of 0x00030010\n");␊ |
520 | }␊ |
521 | break;␊ |
522 | ␊ |
523 | case GMA_SANDYBRIDGE_M_GT1: // HD Graphics 2000 Mobile, found in kext␊ |
524 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
525 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
526 | devprop_add_value(device, "hda-gfx",␉␉␉(uint8_t *)"onboard-1", 10);␊ |
527 | devprop_add_value(device, "AAPL00,PixelFormat",␉HD2000_vals[0], 4);␊ |
528 | devprop_add_value(device, "AAPL00,T1", HD2000_vals[1], 4);␊ |
529 | devprop_add_value(device, "AAPL00,T2", HD2000_vals[2], 4);␊ |
530 | devprop_add_value(device, "AAPL00,T3", HD2000_vals[3], 4);␊ |
531 | devprop_add_value(device, "AAPL00,T4", HD2000_vals[4], 4);␊ |
532 | devprop_add_value(device, "AAPL00,T5", HD2000_vals[5], 4);␊ |
533 | devprop_add_value(device, "AAPL00,T6", HD2000_vals[6], 4);␊ |
534 | devprop_add_value(device, "AAPL00,T7", HD2000_vals[7], 4);␊ |
535 | devprop_add_value(device, "AAPL00,LinkType",␉HD2000_vals[8], 4);␊ |
536 | devprop_add_value(device, "AAPL00,LinkFormat",␉HD2000_vals[9], 4);␊ |
537 | devprop_add_value(device, "AAPL00,DualLink",␉HD2000_vals[10], 4);␊ |
538 | devprop_add_value(device, "AAPL00,Dither",␉␉HD2000_vals[11], 4);␊ |
539 | devprop_add_value(device, "AAPL00,DataJustify",␉HD2000_vals[12], 4);␊ |
540 | devprop_add_value(device, "graphic-options",␉HD2000_vals[13], 4);␊ |
541 | devprop_add_value(device, "AAPL,tbl-info",␉␉HD2000_tbl_info, 18);␊ |
542 | devprop_add_value(device, "AAPL,os-info",␉␉HD2000_os_info, 20);␊ |
543 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
544 | {␊ |
545 | verbose("Setting 0x%s for snb-platform-id\n", value);␊ |
546 | hex2devprop(value, ig_platform_id, 4);␊ |
547 | devprop_add_value(device, "AAPL,snb-platform-id", ig_platform_id, 4);␊ |
548 | }␊ |
549 | else␊ |
550 | {␊ |
551 | devprop_add_value(device, "AAPL,snb-platform-id", snb_id_3k_mobile, 4);␊ |
552 | verbose("Using default snb-platform-id of 0x00030010\n");␊ |
553 | }␊ |
554 | break;␊ |
555 | ␊ |
556 | case GMA_SANDYBRIDGE_GT2: // HD Graphics 3000␊ |
557 | case GMA_SANDYBRIDGE_GT2_PLUS: // HD Graphics 3000␊ |
558 | devprop_add_value(device, "built-in",␉␉␉&BuiltIn, 1);␊ |
559 | devprop_add_value(device, "class-code",␉␉␉ClassFix, 4);␊ |
560 | devprop_add_value(device, "hda-gfx",␉␉␉(uint8_t *)"onboard-1", 10);␊ |
561 | devprop_add_value(device, "AAPL,tbl-info",␉␉HD3000_tbl_info, 18);␊ |
562 | devprop_add_value(device, "AAPL,os-info",␉␉HD3000_os_info, 20);␊ |
563 | if (getValueForKey(kIGPDeviceID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
564 | {␊ |
565 | verbose("Using 0x%s for unsupported device id injection.\n", value);␊ |
566 | hex2devprop(value, igp_device_id, 2);␊ |
567 | devprop_add_value(device, "device-id",igp_device_id, 4);␊ |
568 | }␊ |
569 | else␊ |
570 | {␊ |
571 | devprop_add_value(device, "device-id", hd3k_kmobile_device_id, 4); // MacMan Inject Mobile ID Instead of Patching Kext␊ |
572 | verbose("Using default unsupported device id injection of 0x0126\n");␊ |
573 | }␊ |
574 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
575 | {␊ |
576 | verbose("Using 0x%s for snb-platform-id\n", value);␊ |
577 | hex2devprop(value, ig_platform_id, 4);␊ |
578 | devprop_add_value(device, "AAPL,snb-platform-id", ig_platform_id, 4);␊ |
579 | }␊ |
580 | else␊ |
581 | {␊ |
582 | devprop_add_value(device, "AAPL,snb-platform-id", snb_id_3k, 4);␊ |
583 | verbose("Using default snb-platform-id of 0x00030010\n");␊ |
584 | }␊ |
585 | break;␊ |
586 | ␊ |
587 | case GMA_SANDYBRIDGE_M_GT2: // HD Graphics 3000 Mobile, found in kext␊ |
588 | case GMA_SANDYBRIDGE_M_GT2_PLUS: // HD Graphics 3000 Mobile, found in kext␊ |
589 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
590 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
591 | devprop_add_value(device, "hda-gfx",␉␉␉(uint8_t *)"onboard-1", 10);␊ |
592 | devprop_add_value(device, "AAPL00,PixelFormat",␉HD3000_vals[0], 4);␊ |
593 | devprop_add_value(device, "AAPL00,T1", HD3000_vals[1], 4);␊ |
594 | devprop_add_value(device, "AAPL00,T2", HD3000_vals[2], 4);␊ |
595 | devprop_add_value(device, "AAPL00,T3", HD3000_vals[3], 4);␊ |
596 | devprop_add_value(device, "AAPL00,T4", HD3000_vals[4], 4);␊ |
597 | devprop_add_value(device, "AAPL00,T5", HD3000_vals[5], 4);␊ |
598 | devprop_add_value(device, "AAPL00,T6", HD3000_vals[6], 4);␊ |
599 | devprop_add_value(device, "AAPL00,T7", HD3000_vals[7], 4);␊ |
600 | devprop_add_value(device, "AAPL00,LinkType",␉HD3000_vals[8], 4);␊ |
601 | devprop_add_value(device, "AAPL00,LinkFormat",␉HD3000_vals[9], 4);␊ |
602 | devprop_add_value(device, "AAPL00,DualLink",␉HD3000_vals[10], 4);␊ |
603 | devprop_add_value(device, "AAPL00,Dither",␉␉HD3000_vals[11], 4);␊ |
604 | devprop_add_value(device, "AAPL00,DataJustify",␉HD3000_vals[12], 4);␊ |
605 | devprop_add_value(device, "graphic-options",␉HD3000_vals[13], 4);␊ |
606 | devprop_add_value(device, "AAPL,tbl-info",␉␉HD3000_tbl_info, 18);␊ |
607 | devprop_add_value(device, "AAPL,os-info",␉␉HD3000_os_info, 20);␊ |
608 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
609 | {␊ |
610 | verbose("Setting 0x%s for snb-platform-id\n", value);␊ |
611 | hex2devprop(value, ig_platform_id, 4);␊ |
612 | devprop_add_value(device, "AAPL,snb-platform-id", ig_platform_id, 4);␊ |
613 | }␊ |
614 | else␊ |
615 | {␊ |
616 | devprop_add_value(device, "AAPL,snb-platform-id", snb_id_3k_mobile, 4);␊ |
617 | verbose("Using default snb-platform-id of 0x00010000\n");␊ |
618 | }␊ |
619 | break;␊ |
620 | ␊ |
621 | //␊ |
622 | // Supported Ivy Bridge Desktop Device IDs␊ |
623 | //␊ |
624 | case GMA_IVYBRIDGE_D_GT1: // HD Graphics 2500, found in kext␊ |
625 | case GMA_IVYBRIDGE_D_GT2: // HD Graphics 4000, found in kext␊ |
626 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
627 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
628 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
629 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
630 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
631 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
632 | {␊ |
633 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
634 | hex2devprop(value, ig_platform_id, 4);␊ |
635 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
636 | }␊ |
637 | else␊ |
638 | {␊ |
639 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4k, 4);␊ |
640 | verbose("Using default ig-platform-id of 0x0166000a\n");␊ |
641 | }␊ |
642 | break;␊ |
643 | ␊ |
644 | //␊ |
645 | // Supported Ivy Bridge Mobile Device IDs␊ |
646 | //␊ |
647 | case GMA_IVYBRIDGE_M_GT1: // HD Graphics 2500 Mobile, found in kext␊ |
648 | case GMA_IVYBRIDGE_M_GT2: // HD Graphics 4000 Mobile, found in kext␊ |
649 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
650 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
651 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
652 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
653 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
654 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
655 | {␊ |
656 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
657 | hex2devprop(value, ig_platform_id, 4);␊ |
658 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
659 | }␊ |
660 | else␊ |
661 | {␊ |
662 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4k_mobile, 4);␊ |
663 | verbose("Using default ig-platform-id of 0x01660003\n");␊ |
664 | }␊ |
665 | break;␊ |
666 | ␊ |
667 | //␊ |
668 | // Unsupported Ivy Bridge Desktop Device IDs␊ |
669 | //␊ |
670 | case GMA_IVYBRIDGE_S_GT1: // HD Graphics 4000␊ |
671 | case GMA_IVYBRIDGE_S_GT2: // HD Graphics P4000␊ |
672 | case GMA_IVYBRIDGE_S_GT3: // Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller␊ |
673 | case GMA_IVYBRIDGE_S_GT4: // HD Graphics 2500 // Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller␊ |
674 | case GMA_IVYBRIDGE_S_GT5: // HD Graphics 2500 // 3rd Gen Core processor Graphics Controller␊ |
675 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
676 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
677 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
678 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
679 | if (getValueForKey(kIGPDeviceID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
680 | {␊ |
681 | verbose("Using %s for unsupported device id injection.\n", value);␊ |
682 | hex2devprop(value, igp_device_id, 2);␊ |
683 | devprop_add_value(device, "device-id",igp_device_id, 4);␊ |
684 | }␊ |
685 | else␊ |
686 | {␊ |
687 | devprop_add_value(device, "device-id", hd4k_device_id, 4); // MacMan Inject Supported ID Instead of Patching Kext␊ |
688 | verbose("Using default unsupported device id injection of 0162\n");␊ |
689 | }␊ |
690 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
691 | {␊ |
692 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
693 | hex2devprop(value, ig_platform_id, 4);␊ |
694 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
695 | }␊ |
696 | else␊ |
697 | {␊ |
698 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4k, 4);␊ |
699 | verbose("Using default ig-platform-id of 0x0166000a\n");␊ |
700 | }␊ |
701 | break;␊ |
702 | ␊ |
703 | //␊ |
704 | // Supported Haswell Desktop Device IDs␊ |
705 | //␊ |
706 | case GMA_HASWELL_D_GT2: // HD Graphics 4600, found in kext␊ |
707 | case GMA_HASWELL_CRW_D_GT3: // HD Graphics 5200 Iris Pro and found in kext␊ |
708 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
709 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
710 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
711 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
712 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
713 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
714 | {␊ |
715 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
716 | hex2devprop(value, ig_platform_id, 4);␊ |
717 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
718 | }␊ |
719 | else␊ |
720 | {␊ |
721 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4600, 4);␊ |
722 | verbose("Using default ig-platform-id of 0x0d220003\n");␊ |
723 | }␊ |
724 | break;␊ |
725 | ␊ |
726 | //␊ |
727 | // Supported Haswell Mobile Device IDs␊ |
728 | //␊ |
729 | case GMA_HASWELL_M_GT1: // HD Graphics Mobile, found in kext␊ |
730 | case GMA_HASWELL_M_GT2: // HD Graphics 4600 Mobile, found in kext␊ |
731 | case GMA_HASWELL_M_GT3: // HD Graphics 5000 Mobile, found in kext␊ |
732 | case GMA_HASWELL_ULT_M_GT2: // HD Graphics 4400 Mobile, found in kext␊ |
733 | case GMA_HASWELL_ULT_M_GT3: // HD Graphics 5000 Iris Mobile, found in kext␊ |
734 | case GMA_HASWELL_ULT_E_GT2: // HD Graphics 4200 Mobile, found in kext␊ |
735 | case GMA_HASWELL_ULT_E_GT3: // HD Graphics 5100 Iris Mobile, found in kext␊ |
736 | case GMA_HASWELL_CRW_M_GT3: // HD Graphics 5200 Iris Pro Mobile and found in kext␊ |
737 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
738 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
739 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
740 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
741 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
742 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
743 | {␊ |
744 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
745 | hex2devprop(value, ig_platform_id, 4);␊ |
746 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
747 | }␊ |
748 | else␊ |
749 | {␊ |
750 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4600_mobile, 4);␊ |
751 | verbose("Using default ig-platform-id of 0x0a260006\n");␊ |
752 | }␊ |
753 | break;␊ |
754 | ␊ |
755 | //␊ |
756 | // Unsupported Haswell Desktop Device IDs␊ |
757 | //␊ |
758 | //case 0x80860090:␊ |
759 | //case 0x80860091:␊ |
760 | //case 0x80860092:␊ |
761 | case GMA_HASWELL_D_GT1: // HD Graphics␊ |
762 | case GMA_HASWELL_D_GT3: // HD Graphics 5000␊ |
763 | case GMA_HASWELL_S_GT1: // HD Graphics␊ |
764 | case GMA_HASWELL_S_GT2: // HD Graphics␊ |
765 | case GMA_HASWELL_S_GT3: //␊ |
766 | case GMA_HASWELL_B_GT1: //␊ |
767 | case GMA_HASWELL_B_GT2: // HD Graphics␊ |
768 | case GMA_HASWELL_B_GT3: //␊ |
769 | case GMA_HASWELL_E_GT1: //␊ |
770 | case GMA_HASWELL_E_GT3: //␊ |
771 | case GMA_HASWELL_ULT_D_GT1: //␊ |
772 | case GMA_HASWELL_ULT_D_GT2: //␊ |
773 | case GMA_HASWELL_ULT_D_GT3: // HD Graphics 5000 Iris␊ |
774 | case GMA_HASWELL_ULT_S_GT1: //␊ |
775 | case GMA_HASWELL_ULT_S_GT2: //␊ |
776 | case GMA_HASWELL_ULT_S_GT3: //␊ |
777 | case GMA_HASWELL_ULT_B_GT1: //␊ |
778 | case GMA_HASWELL_ULT_B_GT2: //␊ |
779 | case GMA_HASWELL_ULT_B_GT3: //␊ |
780 | case GMA_HASWELL_ULT_E_GT1: // HD Graphics␊ |
781 | //case GMA_HASWELL_SDV_D_GT1_IG: // ␊ |
782 | //case GMA_HASWELL_SDV_D_GT2_IG: // ␊ |
783 | //case GMA_HASWELL_SDV_D_GT2_PLUS_IG: // ␊ |
784 | case GMA_HASWELL_CRW_D_GT1: // ␊ |
785 | case GMA_HASWELL_CRW_D_GT2: // HD Graphics␊ |
786 | case GMA_HASWELL_CRW_S_GT1: // ␊ |
787 | case GMA_HASWELL_CRW_S_GT2: // ␊ |
788 | case GMA_HASWELL_CRW_S_GT3: // HD Graphics Iris Pro␊ |
789 | case GMA_HASWELL_CRW_B_GT1: // ␊ |
790 | case GMA_HASWELL_CRW_B_GT2: // ␊ |
791 | case GMA_HASWELL_CRW_B_GT3: // ␊ |
792 | case GMA_HASWELL_CRW_E_GT1: // ␊ |
793 | case GMA_HASWELL_CRW_E_GT2: // ␊ |
794 | case GMA_HASWELL_CRW_E_GT3: //␊ |
795 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
796 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
797 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
798 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
799 | if (getValueForKey(kIGPDeviceID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
800 | {␊ |
801 | verbose("Using 0x%s for unsupported device id injection.\n", value);␊ |
802 | hex2devprop(value, igp_device_id, 2);␊ |
803 | devprop_add_value(device, "device-id",igp_device_id, 4);␊ |
804 | }␊ |
805 | else␊ |
806 | {␊ |
807 | devprop_add_value(device, "device-id", hd4600_device_id, 4); // MacMan Inject Supported ID Instead of Patching Kext␊ |
808 | verbose("Using default unsupported device id injection of 0x0412\n");␊ |
809 | }␊ |
810 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
811 | {␊ |
812 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
813 | hex2devprop(value, ig_platform_id, 4);␊ |
814 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
815 | }␊ |
816 | else␊ |
817 | {␊ |
818 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4600, 4);␊ |
819 | verbose("Using default ig-platform-id of 0x0d220003\n");␊ |
820 | }␊ |
821 | break;␊ |
822 | ␊ |
823 | case GMA_HASWELL_E_GT2: // HD Graphics 4400␊ |
824 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
825 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
826 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
827 | if (getValueForKey(kIGPDeviceID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
828 | {␊ |
829 | verbose("Using 0x%s for unsupported device id injection.\n", value);␊ |
830 | hex2devprop(value, igp_device_id, 2);␊ |
831 | devprop_add_value(device, "device-id",igp_device_id, 4);␊ |
832 | }␊ |
833 | else␊ |
834 | {␊ |
835 | devprop_add_value(device, "device-id", hd4400_mobile_device_id, 4); // MacMan Inject Supported ID Instead of Patching Kext␊ |
836 | verbose("Using default unsupported device id injection of 0a26\n");␊ |
837 | }␊ |
838 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
839 | {␊ |
840 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
841 | hex2devprop(value, ig_platform_id, 4);␊ |
842 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
843 | }␊ |
844 | else␊ |
845 | {␊ |
846 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4600, 4);␊ |
847 | verbose("Using default ig-platform-id of 0x0d220003\n");␊ |
848 | }␊ |
849 | break;␊ |
850 | ␊ |
851 | //␊ |
852 | // Unsupported Haswell Mobile Device IDs␊ |
853 | //␊ |
854 | case GMA_HASWELL_ULT_M_GT1: // HD Graphics Mobile␊ |
855 | case GMA_HASWELL_CRW_M_GT1: //␊ |
856 | case GMA_HASWELL_CRW_M_GT2: // HD Graphics 4600 Mobile␊ |
857 | case GMA_HASWELL_CRW_M_GT2_PLUS_IG: //␊ |
858 | // devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);␊ |
859 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
860 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
861 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
862 | if (getValueForKey(kIGPDeviceID, &value, &len, &bootInfo->chameleonConfig)) // MacMan␊ |
863 | {␊ |
864 | verbose("Using 0x%s for unsupported device id injection.\n", value);␊ |
865 | hex2devprop(value, igp_device_id, 2);␊ |
866 | devprop_add_value(device, "device-id",igp_device_id, 4);␊ |
867 | }␊ |
868 | else␊ |
869 | {␊ |
870 | devprop_add_value(device, "device-id", hd4600_mobile_device_id, 4); // MacMan Inject Supported ID Instead of Patching Kext␊ |
871 | verbose("Using default unsupported device id injection of 0x0416\n");␊ |
872 | }␊ |
873 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
874 | {␊ |
875 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
876 | hex2devprop(value, ig_platform_id, 4);␊ |
877 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
878 | }␊ |
879 | else␊ |
880 | {␊ |
881 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_4600_mobile, 4);␊ |
882 | verbose("Using default ig-platform-id of 0x0a260006\n");␊ |
883 | }␊ |
884 | break;␊ |
885 | ␊ |
886 | //␊ |
887 | // Supported Broadwell Desktop Device IDs␊ |
888 | //␊ |
889 | ␊ |
890 | //␊ |
891 | // Currently none available as of 2015-04-08␊ |
892 | //␊ |
893 | ␊ |
894 | //␊ |
895 | // Supported Broadwell Mobile Device IDs␊ |
896 | //␊ |
897 | case GMA_BRODWELL_ULT_M_GT1:␉// HD Graphics ??? found in kext␊ |
898 | case GMA_BRODWELL_ULX_M_GT1:␉// HD Graphics ??? found in kext␊ |
899 | case GMA_BRODWELL_BDW_M_GT2:␉// HD Graphics 5600 and found in kext␊ |
900 | case GMA_BRODWELL_ULT_M_GT2:␉// HD Graphics 5500 and found in kext␊ |
901 | case GMA_BRODWELL_ULX_M_GT2:␉// HD Graphics 5300 and found in kext␊ |
902 | case GMA_BRODWELL_ULT_M_GT3:␉// HD Graphics 6000 and found in kext␊ |
903 | case GMA_BRODWELL_BDW_M_GT3e:␉// Iris Pro 6200 and found in kext␊ |
904 | case GMA_BRODWELL_LVT_M_GT3:␉// Iris 6100 and found in kext␊ |
905 | devprop_add_value(device, "built-in", &BuiltIn, 1);␊ |
906 | devprop_add_value(device, "class-code", ClassFix, 4);␊ |
907 | devprop_add_value(device, "device-id",␉␉␉(uint8_t*)&device_id, sizeof(device_id));␊ |
908 | devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);␊ |
909 | if (getValueForKey(kIGPlatformID, &value, &len, &bootInfo->chameleonConfig))␊ |
910 | {␊ |
911 | verbose("Using 0x%s for ig-platform-id\n", value);␊ |
912 | hex2devprop(value, ig_platform_id, 4);␊ |
913 | devprop_add_value(device, "AAPL,ig-platform-id", ig_platform_id, 4);␊ |
914 | }␊ |
915 | else␊ |
916 | {␊ |
917 | devprop_add_value(device, "AAPL,ig-platform-id", ig_id_5500_mobile, 4);␊ |
918 | verbose("Using default ig-platform-id of 0x16160000\n");␊ |
919 | }␊ |
920 | break;␊ |
921 | ␊ |
922 | default:␊ |
923 | break;␊ |
924 | ␉}␊ |
925 | ␊ |
926 | ␉stringdata = malloc(sizeof(uint8_t) * string->length);␊ |
927 | ␉if (!stringdata)␊ |
928 | ␉{␊ |
929 | ␉␉printf("No stringdata.\n");␊ |
930 | ␉␉pause();␊ |
931 | ␉␉return false;␊ |
932 | ␉}␊ |
933 | ␊ |
934 | ␉verbose("---------------------------------------------\n");␊ |
935 | ␉memcpy(stringdata, (uint8_t*)devprop_generate_string(string), string->length);␊ |
936 | ␉stringlength = string->length;␊ |
937 | ␊ |
938 | ␉return true;␊ |
939 | }␊ |
940 | |