Chameleon

Chameleon Commit Details

Date:2017-03-24 20:19:47 (7 years 26 days ago)
Author:ErmaC
Commit:2859
Parents: 2858
Message:Update hda stuff, typo
Changes:
M/trunk/i386/libsaio/hda.h
M/trunk/i386/libsaio/smbios.h
M/trunk/i386/libsaio/ati.h
M/trunk/i386/libsaio/console.c
M/trunk/i386/libsaio/bootargs.h
M/trunk/i386/libsaio/spd.c
M/trunk/i386/libsaio/cpu.c
M/trunk/i386/libsaio/smbios_getters.c
M/trunk/i386/libsaio/hda.c
M/trunk/i386/libsaio/smbios.c
M/trunk/i386/libsaio/ati.c
M/trunk/i386/libsaio/smbios_getters.h
M/trunk/i386/libsaio/stringTable.c
M/trunk/i386/libsaio/sys.c
M/trunk/i386/libsaio/smbios_decode.c

File differences

trunk/i386/libsaio/smbios_getters.h
3333
3434
3535
36
36
37
3738
3839
3940
extern bool getProcessorInformationExternalClock(returnType *value);
extern bool getProcessorInformationMaximumClock(returnType *value);
extern bool getSMBOemProcessorBusSpeed(returnType *value);
//extern bool getSMBOemPlatformFeature(returnType *value);
extern bool getSMBOemPlatformFeature(returnType *value);
//external bool getSMBOemSMCVersion(returnType *value);
extern bool getSMBOemProcessorType(returnType *value);
extern bool getSMBMemoryDeviceMemoryType(returnType *value);
extern bool getSMBMemoryDeviceMemoryErrorHandle(returnType *value);
trunk/i386/libsaio/console.c
207207
208208
209209
210
211
212
213
214
215210
216211
217212
......
228223
229224
230225
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249226
250227
251228
int getchar()
{
register int c = getc();
//if ( c == '\r' ) c = '\n';
//if ( c >= ' ' && c < 0x7f) putchar(c);
return (c);
}
{
vprf(fmt, ap);
}
/*
{
// Kabyl: BooterLog
struct putc_info pi;
if (!msgbuf) {
return 0;
}
if (((cursor - msgbuf) > (BOOTER_LOG_SIZE - SAFE_LOG_SIZE))) {
return 0;
}
pi.str = cursor;
pi.last_str = 0;
prf(fmt, ap, sputc, &pi);
cursor += strlen((char *)cursor);
}
*/
va_end(ap);
return 0;
}
trunk/i386/libsaio/bootargs.h
148148
149149
150150
151
151152
152153
153154
......
156157
157158
158159
159
160
161
160162
161163
162164
#define CSR_ALLOW_UNRESTRICTED_DTRACE(1 << 5) /* Allow unrestricted dtrace */
#define CSR_ALLOW_UNRESTRICTED_NVRAM(1 << 6) /* Allow unrestricted NVRAM */
#define CSR_ALLOW_DEVICE_CONFIGURATION(1 << 7) /* Allow device configuration */
#define CSR_DISABLE_BASESYSTEM_VERIFICATION(1 << 8)
#define CSR_VALID_FLAGS (CSR_ALLOW_UNTRUSTED_KEXTS | \
CSR_ALLOW_UNRESTRICTED_FS | \
CSR_ALLOW_APPLE_INTERNAL | \
CSR_ALLOW_UNRESTRICTED_DTRACE | \
CSR_ALLOW_UNRESTRICTED_NVRAM | \
CSR_ALLOW_DEVICE_CONFIGURATION)
CSR_ALLOW_DEVICE_CONFIGURATION | \
CSR_DISABLE_BASESYSTEM_VERIFICATION)
typedef struct boot_args
{
trunk/i386/libsaio/spd.c
6161
6262
6363
64
6465
6566
6667
6768
6869
70
6971
7072
7173
#define rdtsc(low,high) \
__asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high))
// Intel SMB reg offsets
#define SMBHSTSTS 0
#define SMBHSTCNT 2
#define SMBHSTCMD 3
#define SMBHSTADD 4
#define SMBHSTDAT 5
#define SMBHSTDAT1 6
#define SBMBLKDAT 7
int spd_indexes[] = {
trunk/i386/libsaio/hda.c
113113
114114
115115
116
116117
117118
118119
......
127128
128129
129130
131
130132
131133
132134
......
137139
138140
139141
142
140143
144
145
146
147
141148
142149
143150
......
328335
329336
330337
338
331339
332340
333341
......
349357
350358
351359
352
353
354
355
356
357
360
361
362
363
364
365
358366
359367
360368
......
571579
572580
573581
582
583
574584
575585
576586
......
590600
591601
592602
603
604
605
593606
594607
595608
{ HDA_INTEL_HSW2,"Haswell"/*, 0, 0 */ },
{ HDA_INTEL_HSW3,"Haswell"/*, 0, 0 */ },
{ HDA_INTEL_BDW,"Broadwell"/*, 0, 0 */ },
{ HDA_INTEL_BROXTON_T,"Broxton-T"/*, 0, 0 */ },
{ HDA_INTEL_CPT,"Cougar Point"/*, 0, 0 */ },
{ HDA_INTEL_PATSBURG,"Patsburg"/*, 0, 0 */ },
{ HDA_INTEL_PPT1,"Panther Point"/*, 0, 0 */ },
{ HDA_INTEL_82801JD,"82801JD"/*, 0, 0 */ },
{ HDA_INTEL_PCH,"5 Series/3400 Series"/*, 0, 0 */ },
{ HDA_INTEL_PCH2,"5 Series/3400 Series"/*, 0, 0 */ },
{ HDA_INTEL_BROXTON_P,"Apollolake"/*, 0, 0 */ }, // Broxton-P
{ HDA_INTEL_SCH,"SCH"/*, 0, 0 */ },
{ HDA_INTEL_LPT1,"Lynx Point"/*, 0, 0 */ },
{ HDA_INTEL_LPT2,"Lynx Point"/*, 0, 0 */ },
{ HDA_INTEL_LPTLP1,"Lynx Point-LP"/*, 0, 0 */ },
{ HDA_INTEL_LPTLP2,"Lynx Point-LP"/*, 0, 0 */ },
{ HDA_INTEL_SRSPLP,"Sunrise Point-LP"/*, 0, 0 */ },
{ HDA_INTEL_KABYLAKE_LP, "Kabylake-LP"/*, 0, 0 */ }, // Kabylake-LP
{ HDA_INTEL_SRSP,"Sunrise Point"/*, 0, 0 */ },
{ HDA_INTEL_KABYLAKE,"Kabylake"/*, 0, 0 */ }, // Kabylake
{ HDA_INTEL_LEWISBURG1,"Lewisburg"/*, 0, 0 */ }, // Lewisburg
{ HDA_INTEL_LEWISBURG2,"Lewisburg"/*, 0, 0 */ }, // Lewisburg
{ HDA_INTEL_UNPT,"Union Point"/*, 0, 0 */ }, // Kabylake-H
//10de NVIDIA Corporation
{ HDA_NVIDIA_MCP51,"MCP51" /*, 0, HDAC_QUIRK_MSI */ },
{ HDA_CODEC_ALC898, 0, "ALC898" },
//{ HDA_CODEC_ALC899, 0,"ALC899" },
{ HDA_CODEC_ALC900, 0, "ALC1150" },
{ HDA_CODEC_ALCS1220A, 0,"ALCS1220A" },
{ HDA_CODEC_ALC1220, 0, "ALC1220" },
{ HDA_CODEC_AD1882, 0, "AD1882" },
{ HDA_CODEC_AD1989B, 0x0300,"AD2000B" }, // Revision Id: 0x100300
{ HDA_CODEC_AD1989B, 0, "AD1989B" },
{ HDA_CODEC_XFIEA, 0, "Creative X-Fi Extreme A" },
{ HDA_CODEC_XFIED, 0, "Creative X-Fi Extreme D" },
{ HDA_CODEC_CA0132, 0, "Creative CA0132" },
{ HDA_CODEC_SB0880, 0, "Creative SB0880 X-Fi" },
{ HDA_CODEC_CMI9880, 0, "CMedia CMI9880" },
{ HDA_CODEC_CMI98802, 0, "CMedia CMI9880" },
{ HDA_CODEC_XFIEA, 0, "X-Fi Extreme A" },
{ HDA_CODEC_XFIED, 0, "X-Fi Extreme D" },
{ HDA_CODEC_CA0132, 0, "CA0132" },
{ HDA_CODEC_SB0880, 0, "SB0880 X-Fi" },
{ HDA_CODEC_CMI9880, 0, "CMI9880" },
{ HDA_CODEC_CMI98802, 0, "CMI9880" },
{ HDA_CODEC_CXD9872RDK, 0, "CXD9872RD/K" },
{ HDA_CODEC_CXD9872AKD, 0, "CXD9872AKD" },
{ HDA_CODEC_INTELLLP, 0, "Haswell" },
{ HDA_CODEC_INTELBRW, 0, "Broadwell" },
{ HDA_CODEC_INTELSKL, 0, "Skylake" },
{ HDA_CODEC_INTELBRO, 0, "Broxton" },
{ HDA_CODEC_INTELKAB, 0, "Kabylake" },
{ HDA_CODEC_INTELCDT, 0, "CedarTrail" },
{ HDA_CODEC_INTELVLV, 0, "Valleyview2" },
{ HDA_CODEC_INTELBSW, 0, "Braswell" },
{ HDA_CODEC_CSXXXX, 0, "Cirrus Logic" },
{ HDA_CODEC_CXXXXX, 0, "Conexant" },
{ HDA_CODEC_CHXXXX, 0, "Chrontel" },
//{ HDA_CODEC_LGXXXX, 0, "LG" },
//{ HDA_CODEC_WMXXXX, 0, "Wolfson Microelectronics" },
//{ HDA_CODEC_QEMUXXXX, 0, "QEMU" },
{ HDA_CODEC_IDTXXXX, 0, "IDT" },
{ HDA_CODEC_INTELXXXX, 0, "Intel" },
{ HDA_CODEC_MOTOXXXX, 0, "Motorola" },
trunk/i386/libsaio/hda.h
9696
9797
9898
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
119121
120
121
122
123
124
125
126
127
128
129
130
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
131138
132139
133140
134141
135
136
137142
138143
139144
......
157162
158163
159164
160
165
161166
162167
163168
......
177182
178183
179184
180
181
182
183
184
185
186
187
188
189
190
191
192
193
185194
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
209225
210226
211227
212228
213
229
214230
215231
216232
217
233
234
235
218236
219237
220238
221239
222
240
223241
224242
225243
226244
227
245
228246
229247
230
248
249
250
231251
232
233
252
253
254
234255
235
236
237
238
239
240
241
242
243
244
245
246
247
248
256
257
249258
250
251
252
253
254
255
256
257
258
259
259
260
260261
261
262
263
264
262
263
265264
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387265
388266
389267
......
456334
457335
458336
337
459338
460339
461340
......
497376
498377
499378
379
500380
501381
502382
......
620500
621501
622502
623
503
624504
625505
626506
......
734614
735615
736616
617
618
619
620
621
622
623
624
625
626
627
628
737629
738630
739631
......
745637
746638
747639
640
641
748642
749643
750644
/* Intel */
#define INTEL_VENDORIDPCI_VENDOR_ID_INTEL
#define HDA_INTEL_OAKHDA_MODEL_CONSTRUCT(INTEL, 0x080a)
#define HDA_INTEL_BAYHDA_MODEL_CONSTRUCT(INTEL, 0x0f04)
#define HDA_INTEL_HSW1HDA_MODEL_CONSTRUCT(INTEL, 0x0a0c)
#define HDA_INTEL_HSW2HDA_MODEL_CONSTRUCT(INTEL, 0x0c0c)
#define HDA_INTEL_HSW3HDA_MODEL_CONSTRUCT(INTEL, 0x0d0c)
#define HDA_INTEL_BDWHDA_MODEL_CONSTRUCT(INTEL, 0x160c)
#define HDA_INTEL_CPTHDA_MODEL_CONSTRUCT(INTEL, 0x1c20)
#define HDA_INTEL_PATSBURGHDA_MODEL_CONSTRUCT(INTEL, 0x1d20)
#define HDA_INTEL_PPT1HDA_MODEL_CONSTRUCT(INTEL, 0x1e20) // Macmini6,2
#define HDA_INTEL_BRASWELL HDA_MODEL_CONSTRUCT(INTEL, 0x2284)
#define HDA_INTEL_82801FHDA_MODEL_CONSTRUCT(INTEL, 0x2668)
#define HDA_INTEL_63XXESBHDA_MODEL_CONSTRUCT(INTEL, 0x269a)
#define HDA_INTEL_82801GHDA_MODEL_CONSTRUCT(INTEL, 0x27d8)
#define HDA_INTEL_82801HHDA_MODEL_CONSTRUCT(INTEL, 0x284b)
#define HDA_INTEL_82801IHDA_MODEL_CONSTRUCT(INTEL, 0x293e)
#define HDA_INTEL_ICH9HDA_MODEL_CONSTRUCT(INTEL, 0x293f)
#define HDA_INTEL_82801JIHDA_MODEL_CONSTRUCT(INTEL, 0x3a3e)
#define HDA_INTEL_82801JDHDA_MODEL_CONSTRUCT(INTEL, 0x3a6e)
#define HDA_INTEL_PCHHDA_MODEL_CONSTRUCT(INTEL, 0x3b56)
#define HDA_INTEL_PCH2HDA_MODEL_CONSTRUCT(INTEL, 0x3b57)
#define HDA_INTEL_OAKHDA_MODEL_CONSTRUCT(INTEL, 0x080a) /* Oaktrail */
#define HDA_INTEL_BAYHDA_MODEL_CONSTRUCT(INTEL, 0x0f04) /* BayTrail */
#define HDA_INTEL_HSW1HDA_MODEL_CONSTRUCT(INTEL, 0x0a0c) /* Haswell */
#define HDA_INTEL_HSW2HDA_MODEL_CONSTRUCT(INTEL, 0x0c0c) /* Haswell */
#define HDA_INTEL_HSW3HDA_MODEL_CONSTRUCT(INTEL, 0x0d0c) /* Haswell */
#define HDA_INTEL_BDWHDA_MODEL_CONSTRUCT(INTEL, 0x160c) /* Broadwell */
#define HDA_INTEL_BROXTON_THDA_MODEL_CONSTRUCT(INTEL, 0x1a98) /* Broxton-T */
#define HDA_INTEL_CPTHDA_MODEL_CONSTRUCT(INTEL, 0x1c20) /* CPT */
#define HDA_INTEL_PATSBURGHDA_MODEL_CONSTRUCT(INTEL, 0x1d20) /* PBG */
#define HDA_INTEL_PPT1HDA_MODEL_CONSTRUCT(INTEL, 0x1e20) /* Panther Point */
#define HDA_INTEL_BRASWELL HDA_MODEL_CONSTRUCT(INTEL, 0x2284) /* Braswell */
#define HDA_INTEL_82801FHDA_MODEL_CONSTRUCT(INTEL, 0x2668) /* ICH6 */
#define HDA_INTEL_63XXESBHDA_MODEL_CONSTRUCT(INTEL, 0x269a) /* ESB2 */
#define HDA_INTEL_82801GHDA_MODEL_CONSTRUCT(INTEL, 0x27d8) /* ICH7 */
#define HDA_INTEL_82801HHDA_MODEL_CONSTRUCT(INTEL, 0x284b) /* ICH8 */
#define HDA_INTEL_82801IHDA_MODEL_CONSTRUCT(INTEL, 0x293e) /* ICH9 */
#define HDA_INTEL_ICH9HDA_MODEL_CONSTRUCT(INTEL, 0x293f) /* ICH9 */
#define HDA_INTEL_82801JIHDA_MODEL_CONSTRUCT(INTEL, 0x3a3e) /* ICH10 */
#define HDA_INTEL_82801JDHDA_MODEL_CONSTRUCT(INTEL, 0x3a6e) /* ICH10 */
#define HDA_INTEL_PCHHDA_MODEL_CONSTRUCT(INTEL, 0x3b56) /* 5 Series/3400 */
#define HDA_INTEL_PCH2HDA_MODEL_CONSTRUCT(INTEL, 0x3b57) /* 5 Series/3400 */
#define HDA_INTEL_BROXTON_PHDA_MODEL_CONSTRUCT(INTEL, 0x5a98) /* Broxton-P(Apollolake) */
#define HDA_INTEL_MACBOOKPRO92HDA_MODEL_CONSTRUCT(INTEL, 0x7270)
#define HDA_INTEL_SCHHDA_MODEL_CONSTRUCT(INTEL, 0x811b)
#define HDA_INTEL_LPT1HDA_MODEL_CONSTRUCT(INTEL, 0x8c20)
#define HDA_INTEL_LPT2HDA_MODEL_CONSTRUCT(INTEL, 0x8c21)
#define HDA_INTEL_WCPTHDA_MODEL_CONSTRUCT(INTEL, 0x8ca0)
#define HDA_INTEL_WELLS1HDA_MODEL_CONSTRUCT(INTEL, 0x8d20)
#define HDA_INTEL_WELLS2HDA_MODEL_CONSTRUCT(INTEL, 0x8d21)
#define HDA_INTEL_WCPTLP HDA_MODEL_CONSTRUCT(INTEL, 0x9ca0)
#define HDA_INTEL_LPTLP1HDA_MODEL_CONSTRUCT(INTEL, 0x9c20)
#define HDA_INTEL_LPTLP2HDA_MODEL_CONSTRUCT(INTEL, 0x9c21)
#define HDA_INTEL_SRSPLP HDA_MODEL_CONSTRUCT(INTEL, 0x9d70)
#define HDA_INTEL_SRSPHDA_MODEL_CONSTRUCT(INTEL, 0xa170)
#define HDA_INTEL_SCHHDA_MODEL_CONSTRUCT(INTEL, 0x811b) /* Poulsbo */
#define HDA_INTEL_LPT1HDA_MODEL_CONSTRUCT(INTEL, 0x8c20) /* Lynx Point */
#define HDA_INTEL_LPT2HDA_MODEL_CONSTRUCT(INTEL, 0x8c21) /* Lynx Point */
#define HDA_INTEL_WCPTHDA_MODEL_CONSTRUCT(INTEL, 0x8ca0) /* 9 Series */
#define HDA_INTEL_WELLS1HDA_MODEL_CONSTRUCT(INTEL, 0x8d20) /* Wellsburg */
#define HDA_INTEL_WELLS2HDA_MODEL_CONSTRUCT(INTEL, 0x8d21) /* Wellsburg */
#define HDA_INTEL_WCPTLP HDA_MODEL_CONSTRUCT(INTEL, 0x9ca0) /* Wildcat Point-LP */
#define HDA_INTEL_LPTLP1HDA_MODEL_CONSTRUCT(INTEL, 0x9c20) /* Lynx Point-LP */
#define HDA_INTEL_LPTLP2HDA_MODEL_CONSTRUCT(INTEL, 0x9c21) /* Lynx Point-LP */
#define HDA_INTEL_SRSPLP HDA_MODEL_CONSTRUCT(INTEL, 0x9d70) /* Sunrise Point-LP */
#define HDA_INTEL_KABYLAKE_LPHDA_MODEL_CONSTRUCT(INTEL, 0x9d71) /* Kabylake-LP */
#define HDA_INTEL_SRSPHDA_MODEL_CONSTRUCT(INTEL, 0xa170) /* Sunrise Point */
#define HDA_INTEL_KABYLAKEHDA_MODEL_CONSTRUCT(INTEL, 0xa171) /* Kabylake */
#define HDA_INTEL_LEWISBURG1HDA_MODEL_CONSTRUCT(INTEL, 0xa1f0) /* Lewisburg */
#define HDA_INTEL_LEWISBURG2HDA_MODEL_CONSTRUCT(INTEL, 0xa270) /* Lewisburg */
#define HDA_INTEL_UNPTHDA_MODEL_CONSTRUCT(INTEL, 0xa2f0) /* Kabylake-H */
#define HDA_INTEL_ALLHDA_MODEL_CONSTRUCT(INTEL, 0xffff)
/* Nvidia */
#define NVIDIA_VENDORIDPCI_VENDOR_ID_NVIDIA
// AppleHDA binary contain 0a00de10 (10de000a)
// AppleHDAController binary contain de10ea0b (10de0bea)
#define HDA_NVIDIA_MCP51HDA_MODEL_CONSTRUCT(NVIDIA, 0x026c)
#define HDA_NVIDIA_MCP55HDA_MODEL_CONSTRUCT(NVIDIA, 0x0371)
#define HDA_NVIDIA_MCP61_1HDA_MODEL_CONSTRUCT(NVIDIA, 0x03e4)
#define HDA_NVIDIA_0BE4HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be4) // [GeForge GT 240] HDACodec 10de000d (0d00de10)
#define HDA_NVIDIA_GT100HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be5) // [GeForge GTX 470] HDACodec 10de0010 (1000de10)
#define HDA_NVIDIA_GT106HDA_MODEL_CONSTRUCT(NVIDIA, 0x0be9)
#define HDA_NVIDIA_GT108HDA_MODEL_CONSTRUCT(NVIDIA, 0x0bea) // HDACodec
#define HDA_NVIDIA_GT108HDA_MODEL_CONSTRUCT(NVIDIA, 0x0bea) // HDACodec
#define HDA_NVIDIA_GT104HDA_MODEL_CONSTRUCT(NVIDIA, 0x0beb)
#define HDA_NVIDIA_GT116HDA_MODEL_CONSTRUCT(NVIDIA, 0x0bee)
#define HDA_NVIDIA_MCP89_1HDA_MODEL_CONSTRUCT(NVIDIA, 0x0d94)
/* ATI */
#define ATI_VENDORIDPCI_VENDOR_ID_ATI
#define HDA_ATI_SB450HDA_MODEL_CONSTRUCT(ATI, 0x437b)
#define HDA_ATI_SB600HDA_MODEL_CONSTRUCT(ATI, 0x4383)
#define HDA_ATI_HUDSONHDA_MODEL_CONSTRUCT(ATI, 0x780d)
#define HDA_ATI_RS600HDA_MODEL_CONSTRUCT(ATI, 0x793b)
#define HDA_ATI_RS690HDA_MODEL_CONSTRUCT(ATI, 0x7919)
//#define HDA_ATI_0002HDA_MODEL_CONSTRUCT(ATI, 0x0002) /* ATI HDMI */
//#define HDA_ATI_1308HDA_MODEL_CONSTRUCT(ATI, 0x1308) /* ATI HDMI */
//#define HDA_ATI_177AHDA_MODEL_CONSTRUCT(ATI, 0x157a) /* ATI HDMI */
//#define HDA_ATI_15B3HDA_MODEL_CONSTRUCT(ATI, 0x15b3) /* ATI HDMI */
#define HDA_ATI_SB450HDA_MODEL_CONSTRUCT(ATI, 0x437b) /* ATI SB 450/600/700/800/900 */
#define HDA_ATI_SB600HDA_MODEL_CONSTRUCT(ATI, 0x4383) /* ATI SB 450/600/700/800/900 */
#define HDA_ATI_HUDSONHDA_MODEL_CONSTRUCT(ATI, 0x780d) /* PCI_DEVICE(0x1022, 0x780d) */
#define HDA_ATI_RS600HDA_MODEL_CONSTRUCT(ATI, 0x793b) /* ATI HDMI */
#define HDA_ATI_RS690HDA_MODEL_CONSTRUCT(ATI, 0x7919) /* ATI HDMI */
#define HDA_ATI_RS780HDA_MODEL_CONSTRUCT(ATI, 0x960f)
#define HDA_ATI_RS880HDA_MODEL_CONSTRUCT(ATI, 0x970f)
#define HDA_ATI_TRINITYHDA_MODEL_CONSTRUCT(ATI, 0x9902)
#define HDA_ATI_R600HDA_MODEL_CONSTRUCT(ATI, 0xaa00)
#define HDA_ATI_RV630HDA_MODEL_CONSTRUCT(ATI, 0xaa08)
#define HDA_ATI_RV610HDA_MODEL_CONSTRUCT(ATI, 0xaa10)
#define HDA_ATI_RV670HDA_MODEL_CONSTRUCT(ATI, 0xaa18)
#define HDA_ATI_RV635HDA_MODEL_CONSTRUCT(ATI, 0xaa20)
#define HDA_ATI_RV620HDA_MODEL_CONSTRUCT(ATI, 0xaa28)
#define HDA_ATI_RV770HDA_MODEL_CONSTRUCT(ATI, 0xaa30)
#define HDA_ATI_RV730HDA_MODEL_CONSTRUCT(ATI, 0xaa38)
#define HDA_ATI_RV710HDA_MODEL_CONSTRUCT(ATI, 0xaa40)
#define HDA_ATI_RV740HDA_MODEL_CONSTRUCT(ATI, 0xaa48)
#define HDA_ATI_RV870HDA_MODEL_CONSTRUCT(ATI, 0xaa50)
#define HDA_ATI_RV840HDA_MODEL_CONSTRUCT(ATI, 0xaa58) // Codec 021001aa (1002aa01)
#define HDA_ATI_RV830HDA_MODEL_CONSTRUCT(ATI, 0xaa60)
#define HDA_ATI_RV810HDA_MODEL_CONSTRUCT(ATI, 0xaa68)
#define HDA_ATI_RV970HDA_MODEL_CONSTRUCT(ATI, 0xaa80)
#define HDA_ATI_RV940HDA_MODEL_CONSTRUCT(ATI, 0xaa88)
#define HDA_ATI_RV930HDA_MODEL_CONSTRUCT(ATI, 0xaa90)
#define HDA_ATI_RV910HDA_MODEL_CONSTRUCT(ATI, 0xaa98)
#define HDA_ATI_R1000HDA_MODEL_CONSTRUCT(ATI, 0xaaa0)
#define HDA_ATI_SIHDA_MODEL_CONSTRUCT(ATI, 0xaaa8)
#define HDA_ATI_VERDEHDA_MODEL_CONSTRUCT(ATI, 0xaab0)
#define HDA_ATI_RS880HDA_MODEL_CONSTRUCT(ATI, 0x970f) /* ATI HDMI */
//#define HDA_ATI_9840HDA_MODEL_CONSTRUCT(ATI, 0x9840) /* ATI HDMI */
#define HDA_ATI_TRINITYHDA_MODEL_CONSTRUCT(ATI, 0x9902) /* ATI HDMI */
#define HDA_ATI_R600HDA_MODEL_CONSTRUCT(ATI, 0xaa00) /* ATI HDMI */
#define HDA_ATI_RV630HDA_MODEL_CONSTRUCT(ATI, 0xaa08) /* ATI HDMI */
#define HDA_ATI_RV610HDA_MODEL_CONSTRUCT(ATI, 0xaa10) /* ATI HDMI */
#define HDA_ATI_RV670HDA_MODEL_CONSTRUCT(ATI, 0xaa18) /* ATI HDMI */
#define HDA_ATI_RV635HDA_MODEL_CONSTRUCT(ATI, 0xaa20) /* ATI HDMI */
#define HDA_ATI_RV620HDA_MODEL_CONSTRUCT(ATI, 0xaa28) /* ATI HDMI */
#define HDA_ATI_RV770HDA_MODEL_CONSTRUCT(ATI, 0xaa30) /* ATI HDMI */
#define HDA_ATI_RV730HDA_MODEL_CONSTRUCT(ATI, 0xaa38) /* ATI HDMI */
#define HDA_ATI_RV710HDA_MODEL_CONSTRUCT(ATI, 0xaa40) /* ATI HDMI */
#define HDA_ATI_RV740HDA_MODEL_CONSTRUCT(ATI, 0xaa48) /* ATI HDMI */
#define HDA_ATI_RV870HDA_MODEL_CONSTRUCT(ATI, 0xaa50) /* ATI HDMI */
#define HDA_ATI_RV840HDA_MODEL_CONSTRUCT(ATI, 0xaa58) /* ATI HDMI */
#define HDA_ATI_RV830HDA_MODEL_CONSTRUCT(ATI, 0xaa60) /* ATI HDMI */
#define HDA_ATI_RV810HDA_MODEL_CONSTRUCT(ATI, 0xaa68) /* ATI HDMI */
#define HDA_ATI_RV970HDA_MODEL_CONSTRUCT(ATI, 0xaa80) /* ATI HDMI */
#define HDA_ATI_RV940HDA_MODEL_CONSTRUCT(ATI, 0xaa88) /* ATI HDMI */
#define HDA_ATI_RV930HDA_MODEL_CONSTRUCT(ATI, 0xaa90) /* ATI HDMI */
#define HDA_ATI_RV910HDA_MODEL_CONSTRUCT(ATI, 0xaa98) /* ATI HDMI */
#define HDA_ATI_R1000HDA_MODEL_CONSTRUCT(ATI, 0xaaa0) /* ATI HDMI */
#define HDA_ATI_SIHDA_MODEL_CONSTRUCT(ATI, 0xaaa8) /* ATI HDMI */
#define HDA_ATI_VERDEHDA_MODEL_CONSTRUCT(ATI, 0xaab0) /* ATI HDMI */
//#define HDA_ATI_AAC0HDA_MODEL_CONSTRUCT(ATI, 0xaac0) /* ATI HDMI */
//#define HDA_ATI_AAC8HDA_MODEL_CONSTRUCT(ATI, 0xaac8) /* ATI HDMI */
//#define HDA_ATI_AAD8HDA_MODEL_CONSTRUCT(ATI, 0xaad8) /* ATI HDMI */
//#define HDA_ATI_AAE8HDA_MODEL_CONSTRUCT(ATI, 0xaae8) /* ATI HDMI */
//#define HDA_ATI_AAE0HDA_MODEL_CONSTRUCT(ATI, 0xaae0) /* ATI HDMI */
//#define HDA_ATI_AAF0HDA_MODEL_CONSTRUCT(ATI, 0xaaf0) /* ATI HDMI */
#define HDA_ATI_ALLHDA_MODEL_CONSTRUCT(ATI, 0xffff)
/* RDC */
#define RDC_VENDORID0x17f3
#define HDA_RDC_M3010HDA_MODEL_CONSTRUCT(RDC, 0x3010)
#define HDA_RDC_M3010HDA_MODEL_CONSTRUCT(RDC, 0x3010) /* Vortex86MX */
/* VIA */
#define VIA_VENDORID0x1106
#define HDA_VIA_VT82XXHDA_MODEL_CONSTRUCT(VIA, 0x3288)
#define HDA_VIA_VT82XXHDA_MODEL_CONSTRUCT(VIA, 0x3288) /* VIA VT8251/VT8237A */
//#define HDA_VIA_VT71XXHDA_MODEL_CONSTRUCT(VIA, 0x9170) /* VIA GFX VT7122/VX900 */
//#define HDA_VIA_VT61XXHDA_MODEL_CONSTRUCT(VIA, 0x9140) /* VIA GFX VT6122/VX11 */
#define HDA_VIA_ALLHDA_MODEL_CONSTRUCT(VIA, 0xffff)
/* SiS */
#define SIS_VENDORID0x1039
#define HDA_SIS_966HDA_MODEL_CONSTRUCT(SIS, 0x7502)
#define HDA_SIS_966HDA_MODEL_CONSTRUCT(SIS, 0x7502) /* SIS966 */
#define HDA_SIS_ALLHDA_MODEL_CONSTRUCT(SIS, 0xffff)
/* ULI */
#define ULI_VENDORID0x10b9
#define HDA_ULI_M5461HDA_MODEL_CONSTRUCT(ULI, 0x5461)
#define HDA_ULI_M5461HDA_MODEL_CONSTRUCT(ULI, 0x5461) /* ULI M5461 */
#define HDA_ULI_ALLHDA_MODEL_CONSTRUCT(ULI, 0xffff)
/* OEM/subvendors */
/* Teradici */
//{ PCI_DEVICE(0x6549, 0x1200),
//{ PCI_DEVICE(0x6549, 0x2200}
/* Intel */
#define INTEL_D101GGC_SUBVENDORHDA_MODEL_CONSTRUCT(INTEL, 0xd600)
/* CTHDA chips */
//{ PCI_DEVICE(0x1102, 0x0010),
//{ PCI_DEVICE(0x1102, 0x0012),
/* HP/Compaq */
#define HP_VENDORID0x103c
#define HP_V3000_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x30b5)
#define HP_NX7400_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x30a2)
#define HP_NX6310_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x30aa)
#define HP_NX6325_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x30b0)
#define HP_XW4300_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x3013)
#define HP_3010_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x3010)
#define HP_DV5000_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x30a5)
#define HP_DC7700S_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x2801)
#define HP_DC7700_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0x2802)
#define HP_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(HP, 0xffff)
/* What is wrong with XN 2563 anyway? (Got the picture ?) */
#define HP_NX6325_SUBVENDORX0x103c30b0
/* this entry seems still valid -- i.e. without emu20kx chip */
//{ PCI_DEVICE(0x1102, 0x0009
/* Dell */
#define DELL_VENDORID0x1028
#define DELL_D630_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x01f9)
#define DELL_D820_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x01cc)
#define DELL_V1400_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x0227)
#define DELL_V1500_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x0228)
#define DELL_I1300_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x01c9)
#define DELL_XPSM1210_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x01d7)
#define DELL_OPLX745_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0x01da)
#define DELL_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(DELL, 0xffff)
/* CM8888 */
//{ PCI_DEVICE(0x13f6, 0x5011),
/* Clevo */
#define CLEVO_VENDORID0x1558
#define CLEVO_D900T_SUBVENDORHDA_MODEL_CONSTRUCT(CLEVO, 0x0900)
#define CLEVO_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(CLEVO, 0xffff)
/* VMware HDAudio */
//{ PCI_DEVICE(0x15ad, 0x1977),
/* Acer */
#define ACER_VENDORID0x1025
#define ACER_A5050_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x010f)
#define ACER_A4520_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x0127)
#define ACER_A4710_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x012f)
#define ACER_A4715_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x0133)
#define ACER_3681WXM_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x0110)
#define ACER_T6292_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x011b)
#define ACER_T5320_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0x011f)
#define ACER_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(ACER, 0xffff)
/* Asus */
#define ASUS_VENDORID0x1043
#define ASUS_A8X_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1153)
#define ASUS_U5F_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1263)
#define ASUS_W6F_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1263)
#define ASUS_A7M_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1323)
#define ASUS_F3JC_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1338)
#define ASUS_G2K_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1339)
#define ASUS_A7T_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x13c2)
#define ASUS_W2J_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1971)
#define ASUS_M5200_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x1993)
#define ASUS_P5PL2_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x817f)
#define ASUS_P1AH2_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x81cb)
#define ASUS_M2NPVMX_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x81cb)
#define ASUS_M2V_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x81e7)
#define ASUS_P5BWD_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x81ec)
#define ASUS_M2N_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0x8234)
#define ASUS_A8NVMCSM_SUBVENDORHDA_MODEL_CONSTRUCT(NVIDIA, 0xcb84)
#define ASUS_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(ASUS, 0xffff)
/* IBM / Lenovo */
#define IBM_VENDORID0x1014
#define IBM_M52_SUBVENDORHDA_MODEL_CONSTRUCT(IBM, 0x02f6)
#define IBM_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(IBM, 0xffff)
/* Lenovo */
#define LENOVO_VENDORID0x17aa
#define LENOVO_3KN100_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x2066)
#define LENOVO_3KN200_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x384e)
#define LENOVO_B450_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x3a0d)
#define LENOVO_TCA55_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x1015)
#define LENOVO_X300_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x20ac)
#define LENOVO_X1_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21e8)
#define LENOVO_X1CRBN_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21f9)
#define LENOVO_X220_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21da)
#define LENOVO_T420_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21ce)
#define LENOVO_T430_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21f3)
#define LENOVO_T430S_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21fb)
#define LENOVO_T520_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21cf)
#define LENOVO_T530_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0x21f6)
#define LENOVO_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(LENOVO, 0xffff)
/* Samsung */
#define SAMSUNG_VENDORID0x144d
#define SAMSUNG_Q1_SUBVENDORHDA_MODEL_CONSTRUCT(SAMSUNG, 0xc027)
#define SAMSUNG_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(SAMSUNG, 0xffff)
/* Medion ? */
#define MEDION_VENDORID0x161f
#define MEDION_MD95257_SUBVENDORHDA_MODEL_CONSTRUCT(MEDION, 0x203d)
#define MEDION_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(MEDION, 0xffff)
/* Apple Computer Inc. */
#define APPLE_VENDORIDPCI_VENDOR_ID_APPLE
#define APPLE_MB3_SUBVENDORHDA_MODEL_CONSTRUCT(APPLE, 0x00a1)
/* Sony */
#define SONY_VENDORID0x104d
#define SONY_S5_SUBVENDORHDA_MODEL_CONSTRUCT(SONY, 0x81cc)
#define SONY_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(SONY, 0xffff)
/*
* Apple Intel MacXXXX seems using Sigmatel codec/vendor id
* instead of their own, which is beyond my comprehension
* (see HDA_CODEC_STAC9221 below).
*/
#define APPLE_INTEL_MAC 0x76808384
#define APPLE_MACBOOKAIR31 0x0d9410de
#define APPLE_MACBOOKPRO55 0xcb7910de
#define APPLE_MACBOOKPRO71 0xcb8910de
/* LG Electronics */
#define LG_VENDORID0x1854
#define LG_LW20_SUBVENDORHDA_MODEL_CONSTRUCT(LG, 0x0018)
#define LG_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(LG, 0xffff)
/* Fujitsu Siemens */
#define FS_VENDORID0x1734
#define FS_PA1510_SUBVENDORHDA_MODEL_CONSTRUCT(FS, 0x10b8)
#define FS_SI1848_SUBVENDORHDA_MODEL_CONSTRUCT(FS, 0x10cd)
#define FS_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(FS, 0xffff)
/* Fujitsu Limited */
#define FL_VENDORID0x10cf
#define FL_S7020D_SUBVENDORHDA_MODEL_CONSTRUCT(FL, 0x1326)
#define FL_U1010_SUBVENDORHDA_MODEL_CONSTRUCT(FL, 0x142d)
#define FL_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(FL, 0xffff)
/* Toshiba */
#define TOSHIBA_VENDORID0x1179
#define TOSHIBA_U200_SUBVENDORHDA_MODEL_CONSTRUCT(TOSHIBA, 0x0001)
#define TOSHIBA_A135_SUBVENDORHDA_MODEL_CONSTRUCT(TOSHIBA, 0xff01)
#define TOSHIBA_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(TOSHIBA, 0xffff)
/* Micro-Star International (MSI) */
#define MSI_VENDORID0x1462
#define MSI_MS1034_SUBVENDORHDA_MODEL_CONSTRUCT(MSI, 0x0349)
#define MSI_MS034A_SUBVENDORHDA_MODEL_CONSTRUCT(MSI, 0x034a)
#define MSI_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(MSI, 0xffff)
/* Giga-Byte Technology */
#define GB_VENDORID0x1458
#define GB_G33S2H_SUBVENDORHDA_MODEL_CONSTRUCT(GB, 0xa022)
#define GP_ALL_SUBVENDORHDA_MODEL_CONSTRUCT(GB, 0xffff)
/* Uniwill ? */
#define UNIWILL_VENDORID0x1584
#define UNIWILL_9075_SUBVENDORHDA_MODEL_CONSTRUCT(UNIWILL, 0x9075)
#define UNIWILL_9080_SUBVENDORHDA_MODEL_CONSTRUCT(UNIWILL, 0x9080)
//#define HDEF_PATH "PciRoot(0x0)/Pci(0x1b,0x0)"
//#define PINCONF_LEN ( sizeof(default_PinConfiguration) / sizeof(uint8_t) )
#define HDA0_LEN ( sizeof(default_HDEF_layout_id) / sizeof(uint8_t) )
//#define HDA_CODEC_ALC898 HDA_CODEC_CONSTRUCT(REALTEK, 0x0898)
//#define HDA_CODEC_ALC899 HDA_CODEC_CONSTRUCT(REALTEK, 0x0899)
#define HDA_CODEC_ALC900 HDA_CODEC_CONSTRUCT(REALTEK, 0x0900)
#define HDA_CODEC_ALCS1220AHDA_CODEC_CONSTRUCT(REALTEK, 0x1168)
#define HDA_CODEC_ALC1220 HDA_CODEC_CONSTRUCT(REALTEK, 0x1220)
#define HDA_CODEC_ALCXXXX HDA_CODEC_CONSTRUCT(REALTEK, 0xffff)
#define HDA_CODEC_CMI9880 HDA_CODEC_CONSTRUCT(CMEDIA, 0x9880)
#define HDA_CODEC_CMIXXXX HDA_CODEC_CONSTRUCT(CMEDIA, 0xffff)
/* CMedia */
#define CMEDIA2_VENDORID 0x434d
#define HDA_CODEC_CMI98802 HDA_CODEC_CONSTRUCT(CMEDIA2, 0x4980)
#define HDA_CODEC_CMIXXXX2 HDA_CODEC_CONSTRUCT(CMEDIA2, 0xffff)
#define HDA_CODEC_SII1392 HDA_CODEC_CONSTRUCT(SII, 0x1392)
#define HDA_CODEC_SIIXXXX HDA_CODEC_CONSTRUCT(SII, 0xffff)
/* Lucent/Agere */
/* LSI - Lucent/Agere */
#define AGERE_VENDORID 0x11c1
#define HDA_CODEC_AGEREXXXX HDA_CODEC_CONSTRUCT(AGERE, 0xffff)
#define CHRONTEL_VENDORID 0x17e8
#define HDA_CODEC_CHXXXX HDA_CODEC_CONSTRUCT(CHRONTEL, 0xffff)
/* LG */
#define LG_VENDORID 0x1854
#define HDA_CODEC_LGXXXX HDA_CODEC_CONSTRUCT(LG, 0xffff)
/* Wolfson Microelectronics */
#define WOLFSON_VENDORID 0x14ec
#define HDA_CODEC_WMXXXX HDA_CODEC_CONSTRUCT(WOLFSON, 0xffff)
/* QEMU */
#define QEMU_VENDORID 0x1af4
#define HDA_CODEC_QEMUXXXX HDA_CODEC_CONSTRUCT(QEMU, 0xffff)
/* INTEL */
#define HDA_CODEC_INTELIPHDA_CODEC_CONSTRUCT(INTEL, 0x0054)
#define HDA_CODEC_INTELBLHDA_CODEC_CONSTRUCT(INTEL, 0x2801)
#define HDA_CODEC_INTELLLPHDA_CODEC_CONSTRUCT(INTEL, 0x2807) // Haswell HDMI
#define HDA_CODEC_INTELBRWHDA_CODEC_CONSTRUCT(INTEL, 0x2808) // Broadwell HDMI
#define HDA_CODEC_INTELSKLHDA_CODEC_CONSTRUCT(INTEL, 0x2809) // Skylake HDMI
#define HDA_CODEC_INTELBROHDA_CODEC_CONSTRUCT(INTEL, 0x280a) // Broxton HDMI
#define HDA_CODEC_INTELKABHDA_CODEC_CONSTRUCT(INTEL, 0x280b) // Kabylake HDMI
#define HDA_CODEC_INTELCDTHDA_CODEC_CONSTRUCT(INTEL, 0x2880) // CedarTrail HDMI
#define HDA_CODEC_INTELVLVHDA_CODEC_CONSTRUCT(INTEL, 0x2882) // Valleyview2 HDMI
#define HDA_CODEC_INTELBSWHDA_CODEC_CONSTRUCT(INTEL, 0x2883) // Braswell HDMI
trunk/i386/libsaio/ati.c
12321232
12331233
12341234
1235
1235
12361236
12371237
12381238
......
12441244
12451245
12461246
1247
1248
1249
1250
1251
1252
1253
1254
1255
12471256
12481257
12491258
......
18321841
18331842
18341843
1844
18351845
18361846
18371847
......
23212331
23222332
23232333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
23242381
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
23752382
23762383
23772384
......
23792386
23802387
23812388
2382
2389
23832390
23842391
23852392
......
24262433
24272434
24282435
2429
2430
2436
2437
24312438
24322439
24332440
......
24652472
24662473
24672474
2468
2475
24692476
24702477
24712478
24722479
2473
2480
24742481
24752482
24762483
......
25092516
25102517
25112518
2512
2513
2514
2519
25152520
25162521
25172522
......
25232528
25242529
25252530
2526
2527
2528
2531
25292532
25302533
25312534
{ 0x67CA, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull },
{ 0x67CC, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull },
{ 0x67CF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon Polaris 10", kNull },
{ 0x67DF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon RX480", kDayman },
{ 0x67DF, 0x00000000, CHIP_FAMILY_ELLESMERE, "AMD Radeon RX480", kBaladi },
// Polaris 11
{ 0x67E0, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon RX460", kAcre },
{ 0x67EB, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull },
{ 0x67EF, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon RX460", kAcre },
{ 0x67FF, 0x00000000, CHIP_FAMILY_BAFFIN, "AMD Radeon Polaris 11", kNull },
// Polaris 12
{ 0x6980, 0x00000000, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull },
{ 0x6981, 0x00000000, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull },
{ 0x6985, 0x00000000, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull },
{ 0x6986, 0x00000000, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull },
{ 0x6987, 0x00000000, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull },
{ 0x699F, 0x00000000, CHIP_FAMILY_GREENLAND, "AMD Radeon Polaris 12", kNull },
// PITCAIRN
{ 0x6800,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 7970M",kBuri}, // Mobile
{ 0x6801,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 8970M Series",kFutomaki}, // Mobile
"Tobago",
"Ellesmere",
"Baffin",
"Greenland",
""
};
RegWrite32(AVIVO_D2VGA_CONTROL, d2vga_control);
RegWrite32(AVIVO_VGA_RENDER_CONTROL, vga_render_control);
RegWrite32(R600_ROM_CNTL, rom_cntl);
} else if (chip_family >= CHIP_FAMILY_R600) {
uint32_t viph_control= RegRead32(RADEON_VIPH_CONTROL);
uint32_t bus_cntl= RegRead32(RADEON_BUS_CNTL);
uint32_t d1vga_control= RegRead32(AVIVO_D1VGA_CONTROL);
uint32_t d2vga_control= RegRead32(AVIVO_D2VGA_CONTROL);
uint32_t vga_render_control= RegRead32(AVIVO_VGA_RENDER_CONTROL);
uint32_t rom_cntl= RegRead32(R600_ROM_CNTL);
uint32_t general_pwrmgt= RegRead32(R600_GENERAL_PWRMGT);
uint32_t low_vid_lower_gpio_cntl= RegRead32(R600_LOW_VID_LOWER_GPIO_CNTL);
uint32_t medium_vid_lower_gpio_cntl= RegRead32(R600_MEDIUM_VID_LOWER_GPIO_CNTL);
uint32_t high_vid_lower_gpio_cntl= RegRead32(R600_HIGH_VID_LOWER_GPIO_CNTL);
uint32_t ctxsw_vid_lower_gpio_cntl= RegRead32(R600_CTXSW_VID_LOWER_GPIO_CNTL);
uint32_t lower_gpio_enable= RegRead32(R600_LOWER_GPIO_ENABLE);
// disable VIP
RegWrite32(RADEON_VIPH_CONTROL, (viph_control & ~RADEON_VIPH_EN));
// enable the rom
RegWrite32(RADEON_BUS_CNTL, (bus_cntl & ~RADEON_BUS_BIOS_DIS_ROM));
// Disable VGA mode
RegWrite32(AVIVO_D1VGA_CONTROL, (d1vga_control & ~(AVIVO_DVGA_CONTROL_MODE_ENABLE | AVIVO_DVGA_CONTROL_TIMING_SELECT)));
RegWrite32(AVIVO_D2VGA_CONTROL, (d2vga_control & ~(AVIVO_DVGA_CONTROL_MODE_ENABLE | AVIVO_DVGA_CONTROL_TIMING_SELECT)));
RegWrite32(AVIVO_VGA_RENDER_CONTROL, (vga_render_control & ~AVIVO_VGA_VSTATUS_CNTL_MASK));
RegWrite32(R600_ROM_CNTL, ((rom_cntl & ~R600_SCK_PRESCALE_CRYSTAL_CLK_MASK) | (1 << R600_SCK_PRESCALE_CRYSTAL_CLK_SHIFT) | R600_SCK_OVERWRITE));
RegWrite32(R600_GENERAL_PWRMGT, (general_pwrmgt & ~R600_OPEN_DRAIN_PADS));
RegWrite32(R600_LOW_VID_LOWER_GPIO_CNTL, (low_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_MEDIUM_VID_LOWER_GPIO_CNTL, (medium_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_HIGH_VID_LOWER_GPIO_CNTL, (high_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_CTXSW_VID_LOWER_GPIO_CNTL, (ctxsw_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_LOWER_GPIO_ENABLE, (lower_gpio_enable | 0x400));
ret = read_vbios(true);
// restore regs
RegWrite32(RADEON_VIPH_CONTROL, viph_control);
RegWrite32(RADEON_BUS_CNTL, bus_cntl);
RegWrite32(AVIVO_D1VGA_CONTROL, d1vga_control);
RegWrite32(AVIVO_D2VGA_CONTROL, d2vga_control);
RegWrite32(AVIVO_VGA_RENDER_CONTROL, vga_render_control);
RegWrite32(R600_ROM_CNTL, rom_cntl);
RegWrite32(R600_GENERAL_PWRMGT, general_pwrmgt);
RegWrite32(R600_LOW_VID_LOWER_GPIO_CNTL, low_vid_lower_gpio_cntl);
RegWrite32(R600_MEDIUM_VID_LOWER_GPIO_CNTL, medium_vid_lower_gpio_cntl);
RegWrite32(R600_HIGH_VID_LOWER_GPIO_CNTL, high_vid_lower_gpio_cntl);
RegWrite32(R600_CTXSW_VID_LOWER_GPIO_CNTL, ctxsw_vid_lower_gpio_cntl);
RegWrite32(R600_LOWER_GPIO_ENABLE, lower_gpio_enable);
}
else
if (chip_family >= CHIP_FAMILY_R600)
{
uint32_t viph_control= RegRead32(RADEON_VIPH_CONTROL);
uint32_t bus_cntl= RegRead32(RADEON_BUS_CNTL);
uint32_t d1vga_control= RegRead32(AVIVO_D1VGA_CONTROL);
uint32_t d2vga_control= RegRead32(AVIVO_D2VGA_CONTROL);
uint32_t vga_render_control= RegRead32(AVIVO_VGA_RENDER_CONTROL);
uint32_t rom_cntl= RegRead32(R600_ROM_CNTL);
uint32_t general_pwrmgt= RegRead32(R600_GENERAL_PWRMGT);
uint32_t low_vid_lower_gpio_cntl= RegRead32(R600_LOW_VID_LOWER_GPIO_CNTL);
uint32_t medium_vid_lower_gpio_cntl= RegRead32(R600_MEDIUM_VID_LOWER_GPIO_CNTL);
uint32_t high_vid_lower_gpio_cntl= RegRead32(R600_HIGH_VID_LOWER_GPIO_CNTL);
uint32_t ctxsw_vid_lower_gpio_cntl= RegRead32(R600_CTXSW_VID_LOWER_GPIO_CNTL);
uint32_t lower_gpio_enable= RegRead32(R600_LOWER_GPIO_ENABLE);
// disable VIP
RegWrite32(RADEON_VIPH_CONTROL, (viph_control & ~RADEON_VIPH_EN));
// enable the rom
RegWrite32(RADEON_BUS_CNTL, (bus_cntl & ~RADEON_BUS_BIOS_DIS_ROM));
// Disable VGA mode
RegWrite32(AVIVO_D1VGA_CONTROL, (d1vga_control & ~(AVIVO_DVGA_CONTROL_MODE_ENABLE | AVIVO_DVGA_CONTROL_TIMING_SELECT)));
RegWrite32(AVIVO_D2VGA_CONTROL, (d2vga_control & ~(AVIVO_DVGA_CONTROL_MODE_ENABLE | AVIVO_DVGA_CONTROL_TIMING_SELECT)));
RegWrite32(AVIVO_VGA_RENDER_CONTROL, (vga_render_control & ~AVIVO_VGA_VSTATUS_CNTL_MASK));
RegWrite32(R600_ROM_CNTL, ((rom_cntl & ~R600_SCK_PRESCALE_CRYSTAL_CLK_MASK) | (1 << R600_SCK_PRESCALE_CRYSTAL_CLK_SHIFT) | R600_SCK_OVERWRITE));
RegWrite32(R600_GENERAL_PWRMGT, (general_pwrmgt & ~R600_OPEN_DRAIN_PADS));
RegWrite32(R600_LOW_VID_LOWER_GPIO_CNTL, (low_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_MEDIUM_VID_LOWER_GPIO_CNTL, (medium_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_HIGH_VID_LOWER_GPIO_CNTL, (high_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_CTXSW_VID_LOWER_GPIO_CNTL, (ctxsw_vid_lower_gpio_cntl & ~0x400));
RegWrite32(R600_LOWER_GPIO_ENABLE, (lower_gpio_enable | 0x400));
ret = read_vbios(true);
// restore regs
RegWrite32(RADEON_VIPH_CONTROL, viph_control);
RegWrite32(RADEON_BUS_CNTL, bus_cntl);
RegWrite32(AVIVO_D1VGA_CONTROL, d1vga_control);
RegWrite32(AVIVO_D2VGA_CONTROL, d2vga_control);
RegWrite32(AVIVO_VGA_RENDER_CONTROL, vga_render_control);
RegWrite32(R600_ROM_CNTL, rom_cntl);
RegWrite32(R600_GENERAL_PWRMGT, general_pwrmgt);
RegWrite32(R600_LOW_VID_LOWER_GPIO_CNTL, low_vid_lower_gpio_cntl);
RegWrite32(R600_MEDIUM_VID_LOWER_GPIO_CNTL, medium_vid_lower_gpio_cntl);
RegWrite32(R600_HIGH_VID_LOWER_GPIO_CNTL, high_vid_lower_gpio_cntl);
RegWrite32(R600_CTXSW_VID_LOWER_GPIO_CNTL, ctxsw_vid_lower_gpio_cntl);
RegWrite32(R600_LOWER_GPIO_ENABLE, lower_gpio_enable);
}
return ret;
}
bool radeon_card_posted(void)
{
uint32_t reg;
// first check CRTCs
reg = RegRead32(RADEON_CRTC_GEN_CNTL) | RegRead32(RADEON_CRTC2_GEN_CNTL);
if (reg & RADEON_CRTC_EN)
static bool init_card(pci_dt_t *pci_dev)
{
booladd_vbios = true;
inti;
intn_ports = 0;
inti;
intn_ports = 0;
card = malloc(sizeof(card_t));
if (!card)
DBG("Framebuffer @0x%08X MMIO @0x%08XI/O Port @0x%08X ROM Addr @0x%08X\n",
(unsigned) card->fb, (unsigned) card->mmio, (unsigned) card->io, pci_config_read32(pci_dev->dev.addr, PCI_ROM_ADDRESS));
card->posted = radeon_card_posted();
DBG("ATI card %s, ", card->posted ? "POSTed" : "non-POSTed");
DBG("\n");
get_vram_size();
getBoolForKey(kATYbinimage, &add_vbios, &bootInfo->chameleonConfig);
if (add_vbios)
// which means one of the fb's or kNull
DBG("Framebuffer set to device's default: %s\n", card->cfg_name);
}
else
{
} else {
// else, use the fb name returned by AtiConfig.
verbose("(AtiConfig) Framebuffer set to: %s\n", card->cfg_name);
}
{
card->ports = (uint8_t)n_ports; // use it.
DBG("(AtiPorts) Nr of ports set to: %d\n", card->ports);
}
else
{
} else {
// else, match cfg_name with card_configs list and retrive default nr of ports.
for (i = 0; i < kCfgEnd; i++)
{
trunk/i386/libsaio/sys.c
102102
103103
104104
105
105106
106107
107108
// Device entries must be ordered by bios device numbers.
static struct devsw devsw[] =
{
//{ "sd", 0x80,kBIOSDevTypeHardDrive }, /* DEV_SD */
{ "hd", 0x80,kBIOSDevTypeHardDrive }, /* DEV_HD */
{ "en", 0xE0,kBIOSDevTypeNetwork }, /* DEV_EN */
{ "rd", 0x100,kBIOSDevTypeHardDrive },
trunk/i386/libsaio/ati.h
107107
108108
109109
110
110111
111112
112113
......
243244
244245
245246
247
246248
247249
248250
CHIP_FAMILY_TOBAGO,
CHIP_FAMILY_ELLESMERE, /* Polaris 10 */
CHIP_FAMILY_BAFFIN, /* Polaris 11 */
CHIP_FAMILY_GREENLAND, /* Polaris 12 */
CHIP_FAMILY_LAST
} ati_chip_family_t;
uint32_tflags;
boolposted;
} card_t;
card_t *card;
/* Flags */
trunk/i386/libsaio/cpu.c
12361236
12371237
12381238
1239
12391240
12401241
12411242
DBG("\tCores: %d\n",p->CPU.NoCores);// Cores
DBG("\tLogical processor: %d\n",p->CPU.NoThreads);// Logical procesor
DBG("\tFeatures: 0x%08x\n",p->CPU.Features);
//DBG("\tMicrocode version: %d\n",p->CPU.MCodeVersion);// CPU microcode version
verbose("\n");
#if DEBUG_CPU
trunk/i386/libsaio/smbios.c
104104
105105
106106
107
108
109
107
108
109
110110
111
112
113
114
111115
112116
113117
......
123127
124128
125129
130
131
132
133
134
135
126136
127137
128138
......
368378
369379
370380
381
382
383
384
385
386
371387
372388
373389
......
380396
381397
382398
399
400
401
402
403
383404
405
384406
385407
386408
......
414436
415437
416438
417
418
419439
420440
421441
422
423
424442
425443
426444
427445
428446
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448447
449448
450
451449
452450
453451
......
457455
458456
459457
460
461
462
463458
464459
465460
466461
467462
468463
469
470
471
472
473
474
475
476
477
478
479464
480465
481
482466
483467
484468
485469
486470
487471
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511472
512473
513
514474
515475
516476
......
524484
525485
526486
527
528
529487
530488
531489
......
533491
534492
535493
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559494
560495
561
562
563496
564497
565498
566499
567
568500
569
570501
571502
572503
......
574505
575506
576507
577
578508
579
580
581
582509
583510
584511
585512
586513
587
588514
589
590
591515
592516
593517
594518
595519
596
597520
598
599521
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614522
615523
616524
......
1087995
1088996
1089997
1090
998
1091999
10921000
10931001
10941002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
10951022
1096
10971023
10981024
10991025
......
12371163
12381164
12391165
1240
1166
1167
12411168
12421169
12431170
......
12651192
12661193
12671194
1195
12681196
12691197
12701198
// Bungo:
#define kSMBMemoryDeviceAssetTagKey"SMmemassettag" //
/* ===========================================
Memory SPD Data (Apple Specific - Type 130)
============================================= */
/* =====================================================
Firmware Volume Description (Apple Specific - Type 128)
======================================================= */
/* =========================================
Memory SPD Data (Apple Specific - Type 130)
=========================================== */
/* ============================================
OEM Processor Type (Apple Specific - Type 131)
============================================== */
================================================ */
//#define kSMBOemPlatformFeatureKey"SMoemplatformfeature"
/* ==========================================
OEM Platform SMC (Apple Specific - Type 134)
============================================ */
//#define kSMBOemSMCKey "SMoemsmc"
/* ==================================================*/
#define getFieldOffset(struct, field)((uint8_t)(uint32_t)&(((struct *)0)->field))
Apple Specific
============== */
// Firmware Volume Description (Apple Specific - Type 128)
// kSMBTypeFirmwareVolume
// Memory SPD Data (Apple Specific - Type 130)
// kSMBTypeMemorySPD
// OEM Processor Type (Apple Specific - Type 131)
{kSMBTypeOemProcessorType,kSMBWord,getFieldOffset(SMBOemProcessorType, ProcessorType),kSMBOemProcessorTypeKey,
getSMBOemProcessorType,NULL},
/*
{kSMBTypeOemPlatformFeature,kSMBWord,getFieldOffset(SMBOemPlatformFeature, PlatformFeature),kSMBOemPlatformFeatureKey,
getSMBOemPlatformFeature,NULL}
// OEM Platform Feature (Apple Specific - Type 134)
{kSMBTypeOemSMCVersion,kSMBWord,getFieldOffset(SMBOemSMCVersion, SMCVersion),kSMBOemSMCVersionKey,
getSMBOemSMCVersion,NULL}
*/
};
int numOfSetters = sizeof(SMBSetters) / sizeof(SMBValueSetter);
//#define kDefaultBoardProcessorType"11" // 0xB
#define kDefaultSystemVersion"1.0"
#define kDefaultBIOSRelease256 // 256 = 0x0100 -> swap bytes: 0x0001 -> Release: 0.1 (see SMBIOS spec. table Type 0)
//#define kDefaultLocatioInChassis"Part Component"
//#define KDefaultBoardSerialNumber"C02140302D5DMT31M" // new C07019501PLDCVHAD - C02032101R5DC771H
//=========== Mac mini ===========
#define kDefaultMacMiniFamily"Napa Mac" // Macmini2,1 family = "Napa Mac" not "Mac mini"
//#define kDefaultMacMiniBoardAssetTagNumber"Mini-Aluminum"
#define kDefaultMacMini"Macmini2,1"
#define kDefaultMacMiniBIOSVersion" MM21.88Z.009A.B00.0706281359"
#define kDefaultMacMiniBIOSReleaseDate"06/28/07"
#define kDefaultMacMiniBoardProduct"Mac-F4208EAA"
// MacMini5,1 Mac-8ED6AF5B48C039E1 - MM51.88Z.0077.B0F.1110201309
// MacMini5,2 Mac-4BC72D62AD45599E
// MacMini5,3
// Bios: MM51.88Z.0077.B10.1201241549
// Board: Mac-F65AE981FFA204ED
// Data: 01/24/2012
// MacMini 6,1
// Bios: MM61.88Z.0106.B03.1211161202
// Board: Mac-F65AE981FFA204ED
// Data: 10/14/2012
// MacMini 6,2
// Bios: MM61.88Z.0106.B03.1211161202
// Board: Mac-FC02E91DDD3FA6A4
// Data: 10/14/2012
//=========== MacBook ===========
#define kDefaultMacBookFamily"MacBook"
//#define kDefaultMacBookBoardAssetTagNumber"MacBook-Black"
#define kDefaultMacBook"MacBook4,1"
#define kDefaultMacBookBIOSVersion" MB41.88Z.00C1.B00.0802091535"
//=========== MacBookAir ===========
#define kDefaultMacBookAirFamily"MacBook Air"
// MacBookAir4,1 - Mac-C08A6BB70A942AC2
// MacBookAir4,2 - Mac-742912EFDBEE19B3
// MacBookAir5,2
#define kDefaultMacBookAir"MacBookAir5,2"
#define kDefaultMacBookAirBIOSVersion" MBA51.88Z.00EF.B00.1205221442"
#define kDefaultMacBookAirBIOSReleaseDate"05/10/12"
#define kDefaultMacBookBoardAirProduct"Mac-2E6FAB96566FE58C"
// MacBookAir6,1
// Bios: MBA61.88Z.0099.B04.1309271229
// Board: Mac-35C1E88140C3E6CF
// Data: 24/06/13
// MacBookAir6,2
// Bios: MBA62.88Z.00EF.B00.1205221442
// Board: Mac-7DF21CB3ED6977E5
// Data: 24/06/13
//=========== MacBookPro ===========
#define kDefaultMacBookProFamily"MacBook Pro"
//#define kDefaultMacBookProBoardAssetTagNumber"MacBook-Aluminum"
#define kDefaultMacBookPro"MacBookPro4,1"
#define kDefaultMacBookProBIOSVersion" MBP41.88Z.00C1.B03.0802271651"
#define kDefaultMacBookProBIOSReleaseDate"02/27/08"
#define kDefaultMacBookProBoardProduct"Mac-F42C89C8"
// MacBookPro8,1
// Bios: MBP81.88Z.0047.B24.1110141131
// Board: Mac-94245B3640C91C81
// Data: 10/14/11
// MacBookPro8,2
// Bios:
// Board: Mac_94245A3940C91C80
// Data: 10/14/11
// MacBookPro8,3
// Bios:
// Board: Mac-942459F5819B171B
// Data: 10/31/11
// MacBookPro10,2
// Bios: MBP102.88Z.0106.B01.1208311637
// Board: Mac-AFD8A9D944EA4843
// Data: 10/02/2012
// MacBookPro11,2 - Mac-3CBD00234E554E41 - MBP112.88Z.0138.B03.1310291227
// MacBookPro11,3 - Mac-2BD1B31983FE1663 - MBP112.88Z.0138.B02.1310181745
//=========== iMac ===========
#define kDefaultiMacFamily"iMac"
//#define kDefaultiMacBoardAssetTagNumber"iMac-Aluminum"
#define kDefaultiMac"iMac8,1"
#define kDefaultiMacBIOSVersion" IM81.88Z.00C1.B00.0903051113"
#define kDefaultiMacNehalemBIOSVersion" IM111.88Z.0034.B02.1003171314"
#define kDefaultiMacNehalemBIOSReleaseDate"03/17/10"
#define kDefaultiMacNehalemBoardProduct"Mac-F2268DAE"
// iMac11,2
// iMac11,3
// iMac12,1
#define kDefaultiMacSandy"iMac12,1"
#define kDefaultiMacSandyBIOSReleaseDate"04/22/11"
#define kDefaultiMacSandyBoardProduct"Mac-942B5BF58194151B"
// iMac12,2
// Bios: IM121.88Z.0047.B1D.1110171110"
// Data: 10/17/11
// Board: Mac-942B59F58194171B"
// iMac13,1
// Bios: IM131.88Z.010A.B05.1211151146
// Data: 11/15/2012
// Board: Mac-00BE6ED71E35EB86
// iMac13,2
// Bios: IM131.88Z.00CE.B00.1203281326
// Data: 03/28/2012
// Board: Mac-FC02E91DDD3FA6A4
// iMac14,1
// iMac14,2
// iMac14,3
// iMac14,4
// Bios: IM144.88Z.0179.B03.1405241029
// Data: 05/20/2014
// Board: Mac-81E3E92DD6088272
//=========== MacPro ===========
#define kDefaultMacProFamily"MacPro" // MacPro's family = "MacPro" not "Mac Pro"
//#define KDefauktMacProBoardAssetTagNumber"Pro-Enclosure"
//#define kDefaultMacProBoardType"0x0B" // 11
#define kDefaultMacPro"MacPro3,1"
#define kDefaultMacProBIOSVersion" MP31.88Z.006C.B05.0903051113"
#define kDefaultMacProBIOSReleaseDate"08/03/2010"
//#define kDefaultMacProSystemVersion"1.3"
#define kDefaultMacProBoardProduct"Mac-F42C88C8"
//#define KDefaultMacProBoardSerialNumber"J593902RA4MFE"
// Mac Pro 4,1 core i7/Xeon
#define kDefaultMacProNahWestSystemVersion"0.0"
#define kDefaultMacProNehalem"MacPro4,1"
#define kDefaultMacProNehalemBIOSVersion" MP41.88Z.0081.B07.0910130729"
#define kDefaultMacProNehalemBIOSReleaseDate"10/13/09"
//#define kDefaultMacProNehalemSystemVersion"1.4"
#define kDefaultMacProNehalemBoardProduct"Mac-F221BEC8"
//#define KDefaultMacProNehalemBoardSerialNumber"J593004RB1LUE"
//"J591302R61LUC " // 2-cpu board
//"J591002JV4MFB " // 1-cpu board
// Mac Pro 5,1 core i7/Xeon
#define kDefaultMacProWestmere"MacPro5,1"
#define kDefaultMacProWestmereBIOSVersion" MP51.88Z.007F.B03.1010071432"
#define kDefaultMacProWestmereBIOSReleaseDate"10/07/10"
//#define kDefaultMacProWestmereSystemVersion"1.2"
#define kDefaultMacProWestmereBoardProduct"Mac-F221BEC8"
//#define KDefaultMacProWestmereBoardSerialNumber"J522700H7BH8C"
//"J503104H1BH8A " // 2-cpu board
// Mac Pro 6,1
#define kDefaultMacProHaswell"MacPro6,1"
#define kDefaultMacProHaswellBIOSVersion"MP61.88Z.0116.B04.1312061508"
#define kDefaultMacProHaswellBIOSReleaseDate"12/06/2013"
//#define kDefaultMacProHaswellSystemVersion"1.?"
#define kDefaultMacProHaswellBoardProduct"Mac-F60DEB81FF30ACF6"
//#define KDefaultMacProHaswellBoardSerialNumber"F5K3474008JFNN215"
//#define KDefaultBoardSerialNumber"C02140302D5DMT31M"
// "C07019501PLDCVHAD"
// "C02032101R5DC771H"
// J593902RA4MFE 3,1
// J5031046RCZJA 5,1
// J521101A5CZJC 3,1
// J593004RB1LUE MacPro4,1
// J513401PZBH8C 5,1
// J590802LC4ACB 3,1
// J594900AH1LUE 4,1
// J512500HZBH8C 5,1
// J522700H7BH8C MacPro5,1
/* ============================================ */
bool useSMBIOSdefaults = true;// Bungo
setSMBValue(structPtr, numOfSetters - 2 , (returnType *)&(p->PlatformFeature));
structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemPPlatformFeature) + 2);
structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemPlatformFeature) + 2);
tableLength += sizeof(SMBOemPlatformFeature) + 2;
structureCount++;
}
*/
/* =========================================
OEM SMC Version (Apple Specific - Type 134)
=========================================== */
/*
void addSMBOemSMCVersion(SMBStructPtrs *structPtr)
{
SMBOemSMCVersion *p = (SMBOemSMCVersion *)structPtr->new;
p->header.type= kSMBTypeOemSMCVersion;
p->header.length= sizeof(SMBOemSMCVersion);
p->header.handle= handle++;
setSMBValue(structPtr, numOfSetters - 2 , (returnType *)&(p->SMCVersion));
structPtr->new = (SMBStructHeader *)((uint8_t *)structPtr->new + sizeof(SMBOemSMCVersion) + 2);
tableLength += sizeof(SMBOemSMCVersion) + 2;
structureCount++;
}
*/
/* ==============================================
EndOfTable
================================================ */
case kSMBTypeOemProcessorType:
case kSMBTypeOemProcessorBusSpeed:
//case kSMBTypeOemPlatformFeature:
/* And this one too, to be added at the end */
//case kSMBTypeOemSMCVersion:
/* And this one too, to be added at the end */
case kSMBTypeEndOfTable:
break;
addSMBOemProcessorType(structPtr);
addSMBOemProcessorBusSpeed(structPtr);
//addSMBOemPlatformFeature(structPtr);
//addSMBOemSMCVersion(structPtr);
addSMBEndOfTable(structPtr);
}
trunk/i386/libsaio/smbios_decode.c
8888
8989
9090
91
91
9292
9393
9494
......
100100
101101
102102
103
103
104
105
106
104107
105108
106109
......
164167
165168
166169
167
170
171
172
173
174
168175
169176
170177
......
217224
218225
219226
220
227
228
229
230
231
221232
222233
223234
"Sub Notebook", /* 0Eh */
"Space-saving", /* 0Fh */
"Lunch Box",/* 10h */
"Main Server Chassis",/* 11h */
"Main Server Chassis",/* 11h */ /* CIM_Chassis.ChassisPackageType says "Main System Chassis" */
"Expansion Chassis",/* 12h */
"SubChassis",/* 13h */
"Bus Expansion Chassis",/* 14h */
"Compact PCI",/* 1Ah */
"Advanced TCA",/* 1Bh */
"Blade",/* 1Ch */ // An SMBIOS implementation for a Blade would contain a Type 3 Chassis structure
"Blade Enclosing"/* 1Dh */ // A Blade Enclosure is a specialized chassis that contains a set of Blades.
"Blade Enclosing",/* 1Dh */ // A Blade Enclosure is a specialized chassis that contains a set of Blades.
"Tablet",/* 1Eh */
"Convertible",/* 1Fh */
"Detachable"/* 0x20h */
};
/*====
"Socket FM1",
"Socket FM2",
"Socket LGA2011-3",
"Socket LGA1356-3" /* 2Ch */
"Socket LGA1356-3", /* 2Ch */
"Socket LGA1150",
"Socket BGA1168",
"Socket BGA1234",
"Socket BGA1364" /* 0x30h */
};
static const char *SMBMemoryDeviceFormFactors[] = // Bungo: strings for form factor (Table Type 17 - Memory Device)
"RAM",/* 17h unused */
"DDR3",/* 18h DDR3, chosen in [5776134] */
"FBD2",/* 19h FBD2 */
"DDR4"/* 1Ah DDR4 */
"DDR4",/* 1Ah DDR4 */
"LPDDR",/* 1Bh LPDDR */
"LPDDR2",/* 1Ch LPDDR2 */
"LPDDR3",/* 1Dh LPDDR3 */
"LPDDR4"/* 1Eh LPDDR5 */
};
static const int kSMBMemoryDeviceTypeCount = sizeof(SMBMemoryDeviceTypes) / sizeof(SMBMemoryDeviceTypes[0]);
trunk/i386/libsaio/smbios.h
135135
136136
137137
138
138139
139140
140141
......
841842
842843
843844
844
845
845846
846847
847848
......
849850
850851
851852
853
854
855
856
857
858
859
860
861
862
863
852864
853865
854866
kSMBTypeOemProcessorType= 131, // Processor Type (Type 131)
kSMBTypeOemProcessorBusSpeed= 132, // Processor Bus Speed (Type 132)
kSMBTypeOemPlatformFeature= 133 // Platform Feature (Type 133)
//kSMBTypeOemSMCVersion= 134 // SMC Version (Type 134)
};
//----------------------------------------------------------------------------------------------------------
/* ==============================================
OEM Platform Feature (Apple Specific - Type 133)
================================================ */
struct SMBOemPlatformFeature
typedef struct SMBOemPlatformFeature
{
SMB_STRUCT_HEADER// Type 133
SMBWord PlatformFeature;
//----------------------------------------------------------------------------------------------------------
/* =========================================
OEM SMC Version (Apple Specific - Type 134)
=========================================== */
typedef struct SMBOemSMCVersion
{
SMB_STRUCT_HEADER// Type 134
SMBWord SMCVersion;
} __attribute__((packed)) SMBOemSMCVersion;
//----------------------------------------------------------------------------------------------------------
#define SMBIOS_ORIGINAL0
#define SMBIOS_PATCHED1
trunk/i386/libsaio/stringTable.c
361361
362362
363363
364
365
364
365
366366
367367
368368
......
703703
704704
705705
706
706
707707
708708
709709
......
755755
756756
757757
758
758
759759
760760
761761
......
849849
850850
851851
852
852
853853
854854
855855
*/
bool getBoolForKey(const char *key, bool *result_val, config_file_t *config)
{
const char *key_val;
int size;
const char *key_val;
int size;
if (getValueForKey(key, &key_val, &size, config))
{
{
char *dirspec[] = {
"/Extra/org.chameleon.Boot.plist",
"/Extra/com.apple.Boot.plist", /* DEPRECIATED */
"/Extra/com.apple.Boot.plist", /* DEPRECATED */
};
int i;
{
// Check for depreciated file names and annoy the user about it.
if(strstr(full_path, "com.apple.Boot.plist")) {
printf("%s is depreciated.\n", full_path);
printf("%s is deprecated.\n", full_path);
full_path[strlen(full_path) - strlen("com.apple.Boot.plist")] = 0;
printf("Please use the file %sorg.chameleon.Boot.plist instead.\n", full_path);
pause();
else
{
// use rfd
fixedsize = MIN(file_size(rfd), IO_CONFIG_DATA_SIZE);
fixedsize = MIN(file_size(rfd), IO_CONFIG_DATA_SIZE);
count = read(rfd, config->plist, fixedsize);
close(rfd);
if (count != fixedsize) return -1;
trunk/i386/libsaio/smbios_getters.c
107107
108108
109109
110
110
111
111112
112113
113114
114115
115116
116
117
118
119
117
118
120119
121120
122121
......
124123
125124
126125
127
128
129
126
130127
131128
132129
133
130
134131
135
132
136133
137134
138135
......
648645
649646
650647
651
652648
653649
654
655
650
651
652
656653
657654
658655
......
677674
678675
679676
680
int nhm_bus = 0x3F;
static long possible_nhm_bus[] = {0xFF, 0x7F, 0x3F};
unsigned long did, vid;
unsigned int i;
unsigned long qpimult, qpibusspeed = 0;
int i;
// Nehalem supports Scrubbing
// First, locate the PCI bus where the MCH is located
for(i = 0; i < (sizeof(possible_nhm_bus)/sizeof(possible_nhm_bus[0])); i++)
{
vid = pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x00);
did = pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x02);
vid &= 0xFFFF;
did &= 0xFF00;
vid = (pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x00) & 0xFFFF);
did = (pci_config_read16(PCIADDR(possible_nhm_bus[i], 3, 4), 0x02) & 0xFF00);
if(vid == 0x8086 && did >= 0x2C00)
{
}
}
unsigned long qpimult, qpibusspeed;
qpimult = pci_config_read32(PCIADDR(nhm_bus, 2, 1), 0x50);
qpimult &= 0x7F;
qpimult = (pci_config_read32(PCIADDR(nhm_bus, 2, 1), 0x50) & 0x7F);
DBG("qpimult %d\n", qpimult);
qpibusspeed = (qpimult * 2 * (Platform.CPU.FSBFrequency/1000000LL));
// Rek: rounding decimals to match original mac profile info
if (qpibusspeed%100 != 0)
if (qpibusspeed % 100 != 0)
{
qpibusspeed = ((qpibusspeed+50)/100)*100;
qpibusspeed = ((qpibusspeed + 50) / 100) * 100;
}
DBG("qpibusspeed %d\n", qpibusspeed);
value->word = qpibusspeed;
return true;
}
// getting smbios addr with fast compare ops, late checksum testing ...
#define COMPARE_DWORD(a,b) ( *((uint32_t *) a) == *((uint32_t *) b) )
static const char * const SMTAG = "_SM_";
static const char* const DMITAG = "_DMI_";
static const char *const SMTAG = "_SM_";
//static const char *const SM3TAG = "_SM3_"; // smbios3_decode
static const char *const DMITAG = "_DMI_";
SMBEntryPoint *getAddressOfSmbiosTable(void)
{
pause();
return NULL;
}

Archive Download the corresponding diff file

Revision: 2859