Chameleon

Chameleon Commit Details

Date:2014-06-25 18:52:41 (9 years 8 months ago)
Author:ErmaC
Commit:2383
Parents: 2382
Message:Minor update: Ati, nVidia, typos, changes ecc...
Changes:
M/trunk/i386/modules/KernelPatcher/Cconfig
M/trunk/i386/boot0/boot0.s
M/trunk/i386/libsaio/gma.c
M/trunk/i386/modules/FileNVRAM/Makefile
M/trunk/i386/boot2/boot.c
M/trunk/i386/modules/KernelPatcher/Makefile
M/trunk/i386/libsaio/nvidia.c
M/trunk/i386/boot2/boot.h
M/trunk/CHANGES
M/trunk/i386/libsaio/ati.c
M/trunk/i386/boot1/boot1h.s
M/trunk/i386/libsaio/stringTable.c
M/trunk/i386/libsaio/aml_generator.c
M/trunk/i386/libsaio/pci.h
M/trunk/i386/libsaio/ati.h
M/trunk/i386/libsaio/saio_types.h
M/trunk/i386/libsaio/spd.h
M/trunk/i386/libsaio/hda.c

File differences

trunk/i386/libsaio/spd.h
111111
112112
113113
114
115
114
115
116116
117
117
118118
119119
120120
121
122
121123
122124
123125
/* SPD_MEMORY_TYPE values. */
#define SPD_MEMORY_TYPE_FPM_DRAM1
#define SPD_MEMORY_TYPE_EDO2
#define SPD_MEMORY_TYPE_PIPELINED_NIBBLE3
#define SPD_MEMORY_TYPE_EDO2
#define SPD_MEMORY_TYPE_PIPELINED_NIBBLE3
#define SPD_MEMORY_TYPE_SDRAM4
#define SPD_MEMORY_TYPE_MULTIPLEXED_ROM5
#define SPD_MEMORY_TYPE_MULTIPLEXED_ROM5
#define SPD_MEMORY_TYPE_SGRAM_DDR6
#define SPD_MEMORY_TYPE_SDRAM_DDR7
#define SPD_MEMORY_TYPE_SDRAM_DDR28
#define SPD_MEMORY_TYPE_SDRAM_FB_DDR29
#define SPD_MEMORY_TYPE_SDRAM_FBP_DDR20xa
#define SPD_MEMORY_TYPE_SDRAM_DDR30xb
/* SPD_MODULE_VOLTAGE values. */
trunk/i386/libsaio/gma.c
512512
513513
514514
515
516
515
516
517
518
517519
518520
519521
......
522524
523525
524526
525
526
527
527
528
529
530
528531
529532
530533
......
534537
535538
536539
537
538
539
540
540
541
542
543
544
541545
542
543
544
545
546
546
547
548
549
550
547551
548552
549553
......
605609
606610
607611
608
612
613
609614
610615
611616
devprop_add_value(device, "AAPL,snb-platform-id",HD3000_vals[16], 4);// previusly commented
break;
/* 0102 */
case GMA_SANDYBRIDGE_GT1: // HD Graphics 2000
/* 0102 */
/* HD Graphics 2000 */
case GMA_SANDYBRIDGE_GT1: // 0102
device_id = 0x00000102;// Inject a valid mobile GPU device id instead of patching kexts
devprop_add_value(device, "built-in",&BuiltIn, 1);
devprop_add_value(device, "class-code",ClassFix, 4);
devprop_add_value(device, "device-id",(uint8_t*)&device_id, sizeof(device_id));
devprop_add_value(device, "AAPL,os-info",HD2000_os_info, 20);
break;
/* Sandy Bridge */ /* 0112, 0122 */
case GMA_SANDYBRIDGE_GT2: // HD Graphics 3000
case GMA_SANDYBRIDGE_GT2_PLUS:
/* Sandy Bridge */
/* HD Graphics 3000 */
case GMA_SANDYBRIDGE_GT2: // 0112
case GMA_SANDYBRIDGE_GT2_PLUS: // 0122
devprop_add_value(device, "built-in",&BuiltIn, 1);
devprop_add_value(device, "class-code",ClassFix, 4);
device_id = 0x00000126;// Inject a valid mobile GPU device id instead of patching kexts
devprop_add_value(device, "AAPL,os-info",HD3000_os_info, 20);
break;
/* Ivy Bridge */ /* 0152, 0156, 015a, 015e, 0162, 0166, 016a, 0172, 0176 */
case GMA_IVYBRIDGE_D_GT1: // HD Graphics 4000, HD Graphics 4000 Mobile, HD Graphics P4000, HD Graphics 2500 HD, Graphics 2500 Mobile
case GMA_IVYBRIDGE_M_GT1:
case GMA_IVYBRIDGE_S_GT1:
/* Ivy Bridge */
/* HD Graphics 4000, HD Graphics 4000 Mobile, HD Graphics P4000, HD Graphics 2500 HD, Graphics 2500 Mobile */
case GMA_IVYBRIDGE_D_GT1: // 0152
case GMA_IVYBRIDGE_M_GT1: // 0156
case GMA_IVYBRIDGE_S_GT1: // 015A
case GMA_IVYBRIDGE_S_GT3: // 015e
case GMA_IVYBRIDGE_D_GT2:
case GMA_IVYBRIDGE_M_GT2:
case GMA_IVYBRIDGE_S_GT2:
case GMA_IVYBRIDGE_S_GT4: // 0172:
case GMA_IVYBRIDGE_S_GT5: // 0176:
case GMA_IVYBRIDGE_D_GT2: // 0162
case GMA_IVYBRIDGE_M_GT2: // 0166
case GMA_IVYBRIDGE_S_GT2: // 016A
case GMA_IVYBRIDGE_S_GT4: // 0172
case GMA_IVYBRIDGE_S_GT5: // 0176
if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_IVY * 2)
{
devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);
break;
/* Haswell */ // HD Graphics 5000, HD Graphics 5000 Mobile, HD Graphics P5000, HD Graphics 4600, HD Graphics 4600 Mobile
/* Haswell */
/* HD Graphics 5000, HD Graphics 5000 Mobile, HD Graphics P5000, HD Graphics 4600, HD Graphics 4600 Mobile */
//case 0x80860090:
//case 0x80860091:
//case 0x80860092:
trunk/i386/libsaio/aml_generator.c
6767
6868
6969
70
70
71
7172
7273
7374
......
7677
7778
7879
79
80
81
8082
8183
8284
......
8789
8890
8991
90
92
93
9194
9295
9396
......
101104
102105
103106
104
107
108
105109
106110
107111
......
114118
115119
116120
117
121
122
118123
119124
120125
......
128133
129134
130135
131
136
137
132138
133139
134140
......
144150
145151
146152
147
153
154
148155
149156
150157
......
162169
163170
164171
165
172
173
166174
167175
168176
......
175183
176184
177185
178
186
187
179188
180189
181190
......
183192
184193
185194
186
195
196
187197
188198
189199
190200
191
201
202
192203
193204
194205
195
206
207
196208
197209
198210
......
200212
201213
202214
203
215
216
204217
205218
206219
......
224237
225238
226239
227
240
241
228242
229243
230244
......
236250
237251
238252
239
253
254
240255
241256
242257
......
248263
249264
250265
251
266
267
252268
253269
254270
......
263279
264280
265281
266
282
283
267284
268285
269286
......
276293
277294
278295
279
296
297
280298
281299
282300
......
292310
293311
294312
295
313
314
296315
297316
298317
......
304323
305324
306325
307
326
327
308328
309329
310330
......
316336
317337
318338
319
339
340
320341
321342
322343
......
328349
329350
330351
331
352
353
332354
333355
334356
......
340362
341363
342364
343
365
366
344367
345368
346369
......
352375
353376
354377
355
378
379
356380
357381
358382
......
369393
370394
371395
372
396
397
373398
374399
375400
376401
377402
378403
379
404
380405
381
406
382407
383408
384409
......
388413
389414
390415
391
416
417
392418
393419
394420
395
421
396422
397
423
398424
399425
400426
......
404430
405431
406432
407
433
434
408435
409436
410437
......
426453
427454
428455
429
456
457
430458
431459
432460
433461
434462
435
463
464
436465
437466
438467
......
440469
441470
442471
443
472
473
444474
445475
446476
......
466496
467497
468498
469
499
500
470501
471502
472503
......
529560
530561
531562
532
563
564
533565
534566
535567
......
538570
539571
540572
541
573
574
542575
543576
544577
......
559592
560593
561594
562
595
596
563597
564598
565599
566
600
601
567602
568603
569604
{
AML_CHUNK* next = child->Next;
if (child->Buffer) {
if (child->Buffer)
{
free(child->Buffer);
}
free(child);
}
// Free node
if (node->Buffer) {
if (node->Buffer)
{
free(node->Buffer);
}
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_NONE;
node->Length = (uint16_t)size;
node->Buffer = malloc(node->Length);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_BYTE;
node->Length = 1;
node->Buffer = malloc(node->Length);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_WORD;
node->Length = 2;
node->Buffer = malloc(node->Length);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_DWORD;
node->Length = 4;
node->Buffer = malloc(node->Length);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_QWORD;
node->Length = 8;
node->Buffer = malloc(node->Length);
uint32_t aml_fill_simple_name(char* buffer, char* name)
{
if (strlen(name) < 4) {
if (strlen(name) < 4)
{
verbose("aml_fill_simple_name: simple name %s has incorrect lengh! Must be 4.\n", name);
return 0;
}
int len, offset, count;
uint32_t root = 0;
if (!node) {
if (!node)
{
return 0;
}
offset = 0;
count = len >> 2;
if ((len % 4) > 1 || count == 0) {
if ((len % 4) > 1 || count == 0)
{
verbose("aml_fill_name: pathname %s has incorrect length! Must be 4, 8, 12, 16, etc...\n", name);
return 0;
}
if (((len % 4) == 1) && (name[0] == '\\')) {
if (((len % 4) == 1) && (name[0] == '\\'))
{
root++;
}
if (count == 1) {
if (count == 1)
{
node->Length = (uint16_t)(4 + root);
node->Buffer = malloc(node->Length+4);
memcpy(node->Buffer, name, 4 + root);
return (uint32_t)offset;
}
if (count == 2) {
if (count == 2)
{
node->Length = 2 + 8;
node->Buffer = malloc(node->Length+4);
node->Buffer[offset++] = 0x5c; // Root Char
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_SCOPE;
aml_fill_name(node, name);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_NAME;
aml_fill_name(node, name);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
unsigned int offset = aml_fill_name(node, name);
node->Type = AML_CHUNK_METHOD;
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_PACKAGE;
node->Length = 1;
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_ALIAS;
node->Length = 8;
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_RETURN;
aml_fill_name(node, name);
}
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_RETURN;
aml_add_byte(node, value);
}
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_DEVICE;
aml_fill_name(node, name);
}
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_LOCAL0;
node->Length = 1;
}
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_STORE_OP;
node->Length = 1;
}
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
int offset = 0;
node->Type = AML_CHUNK_BUFFER;
node->Length = (uint8_t)(size + 2);
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
unsigned int offset = 0;
unsigned int len = strlen(StringBuf);
node->Type = AML_CHUNK_BUFFER;
node->Length = (uint8_t)(len + 3);
node->Buffer = malloc (node->Length);
node->Buffer[offset++] = AML_CHUNK_BYTE;
node->Buffer[offset++] = (char)len;
node->Buffer[offset++] = (char)(len+1);
memcpy(node->Buffer+offset, StringBuf, len);
node->Buffer[offset+len] = '\0';
//node->Buffer[offset+len] = '\0';
}
return node;
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
int len = strlen(StringBuf);
node->Type = AML_CHUNK_STRING;
node->Length = (uint8_t)(len + 1);
node->Buffer = malloc (len);
node->Buffer = malloc (len+1);
memcpy(node->Buffer, StringBuf, len);
node->Buffer[len] = '\0';
//node->Buffer[len] = '\0';
}
return node;
{
AML_CHUNK* node = aml_create_node(parent);
if (node) {
if (node)
{
node->Type = AML_CHUNK_RETURN;
//aml_add_byte(node, value);
}
uint32_t aml_calculate_size(AML_CHUNK* node)
{
if (node) {
if (node)
{
// Calculate child nodes size
AML_CHUNK* child = node->First;
uint8_t child_count = 0;
node->Size = 0;
while (child) {
while (child)
{
child_count++;
node->Size += (uint16_t)aml_calculate_size(child);
child = child->Next;
}
switch (node->Type) {
switch (node->Type)
{
case AML_CHUNK_NONE:
case AML_STORE_OP:
case AML_CHUNK_LOCAL0:
break;
case AML_CHUNK_BYTE:
if (node->Buffer[0] == 0x0 || node->Buffer[0] == 0x1) {
if (node->Buffer[0] == 0x0 || node->Buffer[0] == 0x1)
{
node->Size += node->Length;
} else {
node->Size += 1 + node->Length;
uint32_t aml_write_buffer(const char* value, uint32_t size, char* buffer, uint32_t offset)
{
if (size > 0) {
if (size > 0)
{
memcpy(buffer + offset, value, size);
}
uint32_t aml_write_size(uint32_t size, char* buffer, uint32_t offset)
{
if (size <= 0x3f) { /* simple 1 byte length in 6 bits */
if (size <= 0x3f) /* simple 1 byte length in 6 bits */
{
buffer[offset++] = (char)size;
} else if (size <= 0xfff) {
buffer[offset++] = 0x40 | (size & 0xf); /* 0x40 is type, 0x0X is first nibble of length */
uint32_t aml_write_node(AML_CHUNK* node, char* buffer, uint32_t offset)
{
if (node && buffer) {
if (node && buffer)
{
uint32_t old = offset;
AML_CHUNK* child = node->First;
switch (node->Type) {
switch (node->Type)
{
case AML_CHUNK_NONE:
offset = aml_write_buffer(node->Buffer, node->Length, buffer, offset);
break;
trunk/i386/libsaio/hda.c
615615
616616
617617
618
619
620
618621
619
622
620623
621624
622625
default_HDEF_layout_id[0], default_HDEF_layout_id[1], default_HDEF_layout_id[2], default_HDEF_layout_id[3]);
}
devprop_add_value(device, "layout-id", default_HDEF_layout_id, HDEF_LEN);
devprop_add_value(device, "AAPL,slot-name", (uint8_t *)"Built-in", 9); // 0x09
devprop_add_value(device, "name", (uint8_t *)"audio", 6); // 0x06
devprop_add_value(device, "device_type", (uint8_t *)"High Definition Audio", 22); // 0x16
devprop_add_value(device, "built-in", &BuiltIn, 1);
devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);
devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10); // 0x0a
break;
/****************************************************************************************************************
trunk/i386/libsaio/nvidia.c
12201220
12211221
12221222
1223
12231224
12241225
12251226
......
12441245
12451246
12461247
1248
12471249
12481250
12491251
{ 0x10DE1281,"GeForce GT 710" },
{ 0x10DE1282,"GeForce GT 640" },
{ 0x10DE1284,"GeForce GT 630" },
{ 0x10DE1286,"GeForce GT 720" },
// 1290 - 129F
{ 0x10DE1290,"GeForce GT 730M" },
{ 0x10DE1291,"GeForce GT 735M" },
{ 0x10DE1341,"GeForce 840M" },
{ 0x10DE1380,"GeForce GTX 750 Ti" },
{ 0x10DE1381,"GeForce GTX 750" },
{ 0x10DE1382,"GeForce GTX 745" },
{ 0x10DE1390,"GeForce 845M" },
{ 0x10DE1391,"GeForce GTX 850M" },
{ 0x10DE1392,"GeForce GTX 860M" },
trunk/i386/libsaio/ati.c
4545
4646
4747
48
49
5048
51
5249
5350
5451
......
5653
5754
5855
59
60
61
62
56
57
58
59
60
61
62
63
64
6365
6466
6567
......
9698
9799
98100
99
101
100102
101103
102104
103105
104106
105107
106
108
107109
108110
109111
......
120122
121123
122124
123
125
124126
125127
126128
127
128
129
130
131
132
133
134
129
130
131
132
133
134
135
136
135137
136138
137139
......
144146
145147
146148
147
149
148150
149151
150152
......
327329
328330
329331
332
330333
331334
332335
......
413416
414417
415418
416
419
417420
418421
419422
......
712715
713716
714717
715
718
716719
717720
718721
......
873876
874877
875878
876
879
877880
878881
879882
......
10661069
10671070
10681071
1072
1073
10691074
1070
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
10711086
1072
1073
1074
1087
1088
1089
1090
1091
1092
1093
10751094
1076
1077
1078
1079
1080
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
10811110
1082
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
10831147
1084
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
10851165
1086
1166
1167
1168
1169
10871170
1088
1089
1090
1091
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
10921186
1093
1187
1188
10941189
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1190
1191
1192
11071193
1108
1109
1194
1195
11101196
1111
1112
1113
1114
1115
1116
1117
1118
1197
1198
11191199
1120
1121
1122
1123
1124
1125
1126
1200
1201
1202
1203
1204
11271205
1128
1129
1130
1206
1207
1208
1209
1210
11311211
1132
1133
1212
11341213
1135
1136
1137
1214
1215
1216
1217
1218
1219
11381220
1139
1140
1141
11421221
1143
1144
1145
1146
1222
1223
1224
1225
1226
11471227
1148
1228
11491229
1150
1230
1231
1232
1233
1234
1235
1236
1237
1238
11511239
1152
1240
1241
1242
1243
1244
1245
1246
1247
1248
11531249
1154
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
11551272
1156
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
11571287
1158
1159
1160
1161
1162
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
11631301
1164
1165
1166
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
11671317
1168
1169
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
11701329
1171
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
11721344
1173
1174
1175
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
11761355
1177
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
11781368
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
12211369
12221370
1223
1224
1225
1226
1227
1228
1371
1372
1373
1374
1375
1376
1377
1378
12291379
1230
1380
1381
1382
12311383
1232
1233
1234
1235
1236
1237
1238
1239
1384
1385
1386
1387
1388
12401389
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1390
1391
1392
12521393
1253
1254
1394
1395
12551396
1256
1257
1397
1398
1399
1400
1401
1402
12581403
1259
1260
1404
1405
1406
1407
1408
1409
1410
1411
12611412
1262
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
12631423
1264
1265
1266
1267
1268
1269
1270
1271
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
12721441
1273
1274
1275
1276
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
12771459
1278
1279
1280
1281
1282
1283
1284
1285
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
12861498
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
14191499
1420
14211500
1422
1423
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
14241511
1425
1426
1512
1513
1514
14271515
1428
1516
1517
14291518
1430
1431
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
14321533
1433
1434
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
14351544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
14361558
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
14801559
1481
1482
14831560
1484
1485
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
14861576
1487
1488
1577
1578
1579
1580
1581
1582
1583
14891584
1490
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
14911598
1492
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
14931609
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
15341610
15351611
1536
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
15371628
1538
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
15391642
1540
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
15411656
1542
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
15431681
1544
1545
1546
1682
1683
1684
1685
1686
1687
15471688
1548
1549
1550
1551
1689
1690
15521691
1553
1554
1692
1693
1694
1695
15551696
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1697
16101698
16111699
1612
16131700
16141701
16151702
......
23392426
23402427
23412428
2342
2429
23432430
23442431
23452432
......
23482435
23492436
23502437
2351
2438
23522439
23532440
23542441
......
23582445
23592446
23602447
2361
2448
23622449
23632450
23642451
"Juniper",
"Redwood",
"Broadway",
//"Madison",
//"Park",
/* Northern Islands */
//"Antilles",
"Barts",
"Caicos",
"Cayman",
/* Southern Islands */
"Tahiti",
"Pitcairn",
//"CapeVerde",
//"Thames",
//"Lombok",
//"NewZealand",
"Verde",
"Oland",
"Hainan",
"Bonaire",
"Kaveri",
"Abini",
"Hawaii",
/* ... */
"Mullins",
""
};
{"Uakari",4},
{"Zonalis",6},
{"Alouatta",4},
{"Hoolock",3},
{"Hoolock",1},
{"Vervet",4},
{"Baboon",3},
{"Eulemur",3},
{"Galago",2},
{"Colobus",2},
{"Mangabey",2},
{"Nomascus",4},
{"Nomascus",5},
{"Orangutan",2},
/* AMD6000Controller */
{"Pithecia",3},
{"Muskgrass",4},
{"Juncus",4},
{"Osmunda", 4},
{"Pondweed", 3},
{"Pondweed",3},
{"Spikerush", 4},
{"Typha", 5},
/* AMD7000Controller */
{"Aji", 4},
{"Buri", 4},
{"Chutoro", 5},
{"Dashimaki", 4},
{"Ebi", 5},
{"Gari", 5},
{"Futomaki", 4},
{"Hamachi", 4},
{"Aji",4},
{"Buri",4},
{"Chutoro",5},
{"Dashimaki",4},
{"Ebi",5},
{"Gari",5},
{"Futomaki",5},
{"Hamachi",4},
{"OPM", 6},
{"Ikura", 6},
{"IkuraS", 1}
// Layout is device_id, subsys_id (subsystem id plus vendor id), chip_family_name, display name, frame buffer
// Cards are grouped by device id and vendor id then sorted by subsystem id to make it easier to add new cards
//
/*
{ 0x9400,0x01611043, CHIP_FAMILY_R600,"ATI Radeon HD 2900 XT", kNull},
{ 0x9400,0x021E1043, CHIP_FAMILY_R600,"ATI Radeon HD 2900 XT", kNull},
{ 0x9400,0x25521002, CHIP_FAMILY_R600,"ATI Radeon HD 2900 XT", kNull},
{ 0x9553,0x1B321043, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4570",kShrike},
{ 0x9553,0x215B17AA, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4530/4570",kShrike},
{ 0x9553,0x3092174B, CHIP_FAMILY_RV710,"ATI Radeon HD 4300/4500 Series",kPeregrine},
{ 0x9553,0x3629103C, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4530", kShrike},
{ 0x9553,0x39291642, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4570",kPeregrine},
{ 0x9553,0xFD001179, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 5145",kPeregrine},
{ 0x9553,0xFD121179, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 5145",kPeregrine},
{ 0x95C5,0x30501787, CHIP_FAMILY_RV620,"ATI Radeon HD 4250", kNull},
{ 0x95C5,0x4250174B, CHIP_FAMILY_RV620,"ATI Radeon HD 4250", kNull},
/* Evergreen */
// Evergreen //
{ 0x6898,0x00D0106B, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5870", kLangur},
{ 0x6898,0x032E1043, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5870", kUakari},
{ 0x6898,0x038C1043, CHIP_FAMILY_CYPRESS,"ASUS 5870 Eyefinity 6", kNull},
{ 0x68F9,0xE153174B, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
{ 0x68F9,0xE164174B, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450", kEulemur},
/* Northen Islands */
// Northen Islands //
{ 0x6718,0x03B81043, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970", kGibba},
{ 0x6718,0x03BC1043, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970", kGibba},
{ 0x6718,0x0B001002, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970", kGibba},
{ 0x6779,0xE190174B, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450", kBulrushes},
{ 0x6779,0xE199174B, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450", kBulrushes},
/* Southen Islands */
// Southen Islands //
{ 0x6798,0x04181043, CHIP_FAMILY_TAHITI,"Asus HD7970 7970", kAji },
{ 0x6798,0x041C1043, CHIP_FAMILY_TAHITI,"Asus HD7970 7970", kAji },
{ 0x6840,0xFC561179, CHIP_FAMILY_LOMBOK,"Toshiba HD 7670M", kPondweed },
{ 0x6840,0xFCD41179, CHIP_FAMILY_LOMBOK,"Toshiba HD 7670M", kPondweed },
{ 0x6840,0xFCEE1179, CHIP_FAMILY_LOMBOK,"Toshiba HD 7670M", kPondweed },
*/
/* Old series */
/*old series*/
// R423
{ 0x5D48, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Mobile ",kNull},
{ 0x5D49, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Mobile ",kNull},
{ 0x5D4A, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Mobile ",kNull},
{ 0x5D4C, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D4D, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D4E, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D4F, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D50, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D52, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D57, 0x00000000, CHIP_FAMILY_R423, "ATI Radeon HD Desktop ",kNull},
{ 0x5D48,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Mobile ", kNull },
{ 0x5D49,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Mobile ", kNull },
{ 0x5D4A,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Mobile ", kNull },
// RV410
{ 0x5E48, 0x00000000, CHIP_FAMILY_RV410, "ATI Radeon HD Desktop ",kNull},
{ 0x5E4A, 0x00000000, CHIP_FAMILY_RV410, "ATI Radeon HD Desktop ",kNull},
{ 0x5E4B, 0x00000000, CHIP_FAMILY_RV410, "ATI Radeon HD Desktop ",kNull},
{ 0x5E4C, 0x00000000, CHIP_FAMILY_RV410, "ATI Radeon HD Desktop ",kNull},
{ 0x5E4D, 0x00000000, CHIP_FAMILY_RV410, "ATI Radeon HD Desktop ",kNull},
{ 0x5E4F, 0x00000000, CHIP_FAMILY_RV410, "ATI Radeon HD Desktop ",kNull},
{ 0x5D4C,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
{ 0x5D4D,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
{ 0x5D4E,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
{ 0x5D4F,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
{ 0x5D50,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
// R520
{ 0x7100, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x7101, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Mobile ",kNull},
{ 0x7102, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Mobile ",kNull},
{ 0x7103, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Mobile ",kNull},
{ 0x7104, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x7105, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x7106, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Mobile ",kNull},
{ 0x7108, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x7109, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x710A, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x710B, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x710C, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x710E, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x710F, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ",kNull},
{ 0x5D52,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
// RV515
{ 0x7140, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7141, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7142, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7143, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7144, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x7145, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x7146, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7147, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7149, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x714A, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x714B, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x714C, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x714D, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x714E, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x714F, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7151, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7152, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7153, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x715E, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x715F, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7180, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7181, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7183, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7186, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x7187, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7188, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD2300 Mobile ",kCaretta},
{ 0x718A, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x718B, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x718C, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x718D, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x718F, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7193, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x7196, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kCaretta},
{ 0x719B, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x719F, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kCaretta},
{ 0x5D57,0x00000000, CHIP_FAMILY_R420,"ATI Radeon HD Desktop ", kNull },
// RV530
{ 0x71C0, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71C1, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71C2, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71C3, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71C4, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Mobile ",kWormy},
{ 0x71C5, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD1600 Mobile ",kWormy},
{ 0x71C6, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71C7, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71CD, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71CE, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71D2, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71D4, 0x00000000, CHIP_FAMILY_RV530, "ATI Mobility FireGL V5250",kWormy},
{ 0x71D5, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Mobile ",kWormy},
{ 0x71D6, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Mobile ",kWormy},
{ 0x71DA, 0x00000000, CHIP_FAMILY_RV530, "ATI Radeon HD Desktop ",kWormy},
{ 0x71DE, 0x00000000, CHIP_FAMILY_RV530, "ASUS M66 ATI Radeon Mobile ",kWormy},
{ 0x5E48,0x00000000, CHIP_FAMILY_RV410,"ATI Radeon HD Desktop ", kNull },
// RV515
{ 0x7200, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Desktop ",kWormy},
{ 0x7210, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kWormy},
{ 0x7211, 0x00000000, CHIP_FAMILY_RV515, "ATI Radeon HD Mobile ",kWormy},
{ 0x5E4A,0x00000000, CHIP_FAMILY_RV410,"ATI Radeon HD Desktop ", kNull },
{ 0x5E4B,0x00000000, CHIP_FAMILY_RV410,"ATI Radeon HD Desktop ", kNull },
{ 0x5E4C,0x00000000, CHIP_FAMILY_RV410,"ATI Radeon HD Desktop ", kNull },
{ 0x5E4D,0x00000000, CHIP_FAMILY_RV410,"ATI Radeon HD Desktop ", kNull },
// R580
{ 0x7240, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7243, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7244, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7245, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7246, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7247, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7248, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7249, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x724A, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x724B, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x724C, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x724D, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x724E, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x724F, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Desktop ",kAlopias},
{ 0x5E4F,0x00000000, CHIP_FAMILY_RV410,"ATI Radeon HD Desktop ", kNull },
// RV570
{ 0x7280, 0x00000000, CHIP_FAMILY_RV570, "ATI Radeon X1950 Pro ",kAlopias},
{ 0x7100,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x7101,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Mobile ", kNull },
{ 0x7102,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Mobile ", kNull },
{ 0x7103,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Mobile ", kNull },
{ 0x7104,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x7105,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x7106,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Mobile ", kNull },
{ 0x7108,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x7109,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x710A,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x710B,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x710C,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
// RV560
{ 0x7281, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7283, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x710E,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
{ 0x710F,0x00000000, CHIP_FAMILY_R520,"ATI Radeon HD Desktop ", kNull },
// R580
{ 0x7284, 0x00000000, CHIP_FAMILY_R580, "ATI Radeon HD Mobile ",kAlopias},
{ 0x7140,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7141,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7142,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7143,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7144,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x7145,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x7146,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7147,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RV560
{ 0x7287, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7149,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x714A,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x714B,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x714C,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x714D,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x714E,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x714F,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RV570
{ 0x7288, 0x00000000, CHIP_FAMILY_RV570, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7289, 0x00000000, CHIP_FAMILY_RV570, "ATI Radeon HD Desktop ",kAlopias},
{ 0x728B, 0x00000000, CHIP_FAMILY_RV570, "ATI Radeon HD Desktop ",kAlopias},
{ 0x728C, 0x00000000, CHIP_FAMILY_RV570, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7151,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7152,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7153,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RV560
{ 0x7290, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7291, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7293, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x7297, 0x00000000, CHIP_FAMILY_RV560, "ATI Radeon HD Desktop ",kAlopias},
{ 0x715E,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x715F,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
/* IGP */
{ 0x7180,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7181,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7183,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RS690
{ 0x791E,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ",kNull},
{ 0x791F,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ",kNull},
{ 0x793F,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ",kNull},
{ 0x7941,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ",kNull},
{ 0x7942,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ",kNull},
{ 0x7186,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x7187,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
{ 0x7188,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD2300 Mobile ", kCaretta },
{ 0x718A,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x718B,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x718C,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
{ 0x718D,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
// RS740
{ 0x796C,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ",kNull},
{ 0x796D,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ",kNull},
{ 0x796E,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ",kNull},
{ 0x796F,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ",kNull},
{ 0x718F,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
/* standard/default models */
{ 0x7193,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RS600
{ 0x9400,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 XT",kNull},
{ 0x9401,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT",kNull},
{ 0x9402,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT",kNull},
{ 0x9403,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT",kNull},
{ 0x9405,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT",kNull},
{ 0x940A,0x00000000, CHIP_FAMILY_R600,"ATI FireGL V8650",kNull},
{ 0x940B,0x00000000, CHIP_FAMILY_R600,"ATI FireGL V8600",kNull},
{ 0x940F,0x00000000, CHIP_FAMILY_R600,"ATI FireGL V7600",kNull},
{ 0x7196,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kCaretta },
// RV740
{ 0x94A0,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4830M",kFlicker},
{ 0x94A1,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4860M",kFlicker},
{ 0x94A3,0x00000000, CHIP_FAMILY_RV740,"ATI FirePro M7740",kFlicker},
{ 0x94B1,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD",kFlicker},
{ 0x94B3,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4770",kFlicker},
{ 0x94B4,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4700 Series",kFlicker},
{ 0x94B5,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4770",kFlicker},
{ 0x94B9,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD",kFlicker},
{ 0x719B,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RV770
{ 0x9440,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4870 ",kMotmot},
{ 0x9441,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4870 X2",kMotmot},
{ 0x9442,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4850 Series",kMotmot},
{ 0x9443,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4850 X2",kMotmot},
{ 0x9444,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V8750 (FireGL)", kMotmot},
{ 0x9446,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V7770 (FireGL)",kMotmot},
{ 0x9447,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V8700 Duo (FireGL)",kMotmot},
{ 0x944A,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon HD 4850",kMotmot},//iMac - Quail
{ 0x944B,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon HD 4850 X2",kMotmot},//iMac - Quail
{ 0x944C,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4830 Series",kMotmot},
{ 0x944E,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4810 Series",kMotmot},
{ 0x9450,0x00000000, CHIP_FAMILY_RV770,"AMD FireStream 9270",kMotmot},
{ 0x9452,0x00000000, CHIP_FAMILY_RV770,"AMD FireStream 9250",kMotmot},
{ 0x9456,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V8700 (FireGL)",kMotmot},
{ 0x945A,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon HD 4870",kMotmot},
{ 0x9460,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4800 Series",kMotmot},
{ 0x9462,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4800 Series",kMotmot},
//{ 0x946A,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon",kMotmot},
//{ 0x946B,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon",kMotmot},
//{ 0x947A,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon",kMotmot},
//{ 0x947B,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon",kMotmot},
{ 0x719F,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kCaretta },
// RV730
{ 0x9480,0x00000000, CHIP_FAMILY_RV730,"ATI Mobility Radeon HD 550v",kGliff},
{ 0x9487,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x9488,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4650 Series",kGliff},
{ 0x9489,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x948A,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x948F,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x9490,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4670 Series",kGliff},
{ 0x9491,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4600 Series",kGliff},
{ 0x9495,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4650 Series",kGliff},
{ 0x9498,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4710 Series",kGliff},
{ 0x949C,0x00000000, CHIP_FAMILY_RV730,"ATI FirePro V7750 (FireGL)",kGliff},
{ 0x949E,0x00000000, CHIP_FAMILY_RV730,"ATI FirePro V5700 (FireGL)",kGliff},
{ 0x949F,0x00000000, CHIP_FAMILY_RV730,"ATI FirePro V3750 (FireGL)",kGliff},
{ 0x71C0,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
{ 0x71C1,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
{ 0x71C2,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
{ 0x71C3,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
{ 0x71C4,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Mobile ", kWormy },
// RV610
{ 0x94C0,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD Series",kIago},
{ 0x94C1,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94C3,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2350 Series",kIago},
{ 0x94C4,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94C5,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94C6,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94C7,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2350",kIago},
{ 0x94C8,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94C9,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94CB,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94CC,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series",kIago},
{ 0x94CD,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO Series",kIago},
{ 0x71C5,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD 1600 Mobile ", kWormy },
{ 0x71C6,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
{ 0x71C7,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
// RV670
{ 0x9500,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3800 Series",kMegalodon},
{ 0x9501,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3690 Series",kMegalodon},
{ 0x9504,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850M Series",kMegalodon},
{ 0x9505,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3800 Series",kMegalodon},
{ 0x9506,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 X2 M Series",kMegalodon},
{ 0x9507,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3830",kMegalodon},
{ 0x9508,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3870M Series",kMegalodon},
{ 0x9509,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3870 X2 MSeries",kMegalodon},
{ 0x950F,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3870 X2",kMegalodon},
{ 0x9511,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 X2",kMegalodon},
{ 0x9513,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 X2",kMegalodon},
{ 0x9515,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 Series",kMegalodon},
{ 0x9517,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD Series",kMegalodon},
{ 0x9519,0x00000000, CHIP_FAMILY_RV670,"AMD FireStream 9170",kMegalodon},
{ 0x71CD,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
{ 0x71CE,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
// RV710
{ 0x9540,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD 4550",kFlicker},
{ 0x9541,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD",kFlicker},
{ 0x9542,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD",kFlicker},
{ 0x954E,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD",kFlicker},
{ 0x954F,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD 4350",kFlicker},
{ 0x9552,0x00000000, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4330", kShrike },
{ 0x9553,0x00000000, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4570", kShrike },
{ 0x9555,0x00000000, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4550", kShrike },
{ 0x9557,0x00000000, CHIP_FAMILY_RV710,"ATI FirePro RG220",kFlicker},
{ 0x955F,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD 4330M series",kFlicker},
{ 0x71D2,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
// RV630
{ 0x9580,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD Series",kHypoprion},
{ 0x9581,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT",kHypoprion },
{ 0x9583,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT",kHypoprion },
{ 0x9586,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT Series",kHypoprion},
{ 0x9587,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 Pro Series",kHypoprion},
{ 0x9588,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT", kHypoprion },
{ 0x9589,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 PRO", kHypoprion },
{ 0x958A,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna },
{ 0x958B,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna },
{ 0x958C,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna },
{ 0x958D,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna },
{ 0x958E,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna },
{ 0x958F,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD Series",kHypoprion},
{ 0x71D4,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Mobile ", kWormy },
{ 0x71D5,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Mobile ", kWormy },
{ 0x71D6,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Mobile ", kWormy },
// RV635
//{ 0x9590,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon },
{ 0x9591,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD 3600 Series",kMegalodon }, // Mobile
//{ 0x9593,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon }, // Mobile
//{ 0x9595,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon }, // Mobile
//{ 0x9596,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon },
//{ 0x9597,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon },
{ 0x9598,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD 3600 Series",kMegalodon },
//{ 0x9599,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon },
//{ 0x959B,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD",kMegalodon }, // Mobile
{ 0x71DA,0x00000000, CHIP_FAMILY_RV530,"ATI Radeon HD Desktop ", kWormy },
// RV620
{ 0x95C0,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3550 Series",kIago },
//{ 0x95C2,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago }, // Mobile
{ 0x95C4,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3470 Series",kIago }, // Mobile
{ 0x95C5,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3450 Series",kIago },
{ 0x95C6,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3450 AGP",kIago },
//{ 0x95C7,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago },
//{ 0x95C9,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago },
//{ 0x95CC,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago },
//{ 0x95CD,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago },
//{ 0x95CE,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago },
//{ 0x95CF,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD",kIago },
{ 0x71DE,0x00000000, CHIP_FAMILY_RV530,"ASUS M66 ATI Radeon Mobile ", kWormy },
{ 0x7200,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Desktop ", kWormy },
{ 0x7210,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kWormy },
{ 0x7211,0x00000000, CHIP_FAMILY_RV515,"ATI Radeon HD Mobile ", kWormy },
{ 0x7240,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7243,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7244,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7245,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7246,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7247,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7248,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7249,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x724A,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x724B,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x724C,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x724D,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x724E,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x724F,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7280,0x00000000, CHIP_FAMILY_RV570,"ATI Radeon X1950 Pro ", kAlopias },
{ 0x7281,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7283,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7284,0x00000000, CHIP_FAMILY_R580,"ATI Radeon HD Mobile ", kAlopias },
{ 0x7287,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7288,0x00000000, CHIP_FAMILY_RV570,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7289,0x00000000, CHIP_FAMILY_RV570,"ATI Radeon HD Desktop ", kAlopias },
{ 0x728B,0x00000000, CHIP_FAMILY_RV570,"ATI Radeon HD Desktop ", kAlopias },
{ 0x728C,0x00000000, CHIP_FAMILY_RV570,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7290,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7291,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7293,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
{ 0x7297,0x00000000, CHIP_FAMILY_RV560,"ATI Radeon HD Desktop ", kAlopias },
/* IGP */
{ 0x791E,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ", kNull},
{ 0x791F,0x00000000, CHIP_FAMILY_RS690,"ATI Radeon IGP ", kNull},
{ 0x796C,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ", kNull},
{ 0x796D,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ", kNull},
{ 0x796E,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ", kNull},
{ 0x796F,0x00000000, CHIP_FAMILY_RS740,"ATI Radeon IGP ", kNull},
// RS780
{ 0x9610,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD 3200 Graphics",kNull },
{ 0x9611,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD 3100 Graphics",kNull },
//{ 0x9612,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD",kNull },
//{ 0x9613,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD",kNull },
{ 0x9614,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD 3300 Graphics",kNull },
//{ 0x9615,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD",kNull },
{ 0x9616,0x00000000, CHIP_FAMILY_RS780,"AMD 760G", kNull },
/* standard/default models */
// SUMO
{ 0x9640,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6550D",kNull },
{ 0x9641,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6620G",kNull }, // Mobile
{ 0x9400,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 XT", kNull},
{ 0x9401,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT", kNull},
{ 0x9402,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT", kNull},
{ 0x9403,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT", kNull},
{ 0x9405,0x00000000, CHIP_FAMILY_R600,"ATI Radeon HD 2900 GT", kNull},
{ 0x940A,0x00000000, CHIP_FAMILY_R600,"ATI FireGL V8650", kNull},
{ 0x940B,0x00000000, CHIP_FAMILY_R600,"ATI FireGL V8600", kNull},
{ 0x940F,0x00000000, CHIP_FAMILY_R600,"ATI FireGL V7600", kNull},
// SUMO2
{ 0x9642,0x00000000, CHIP_FAMILY_SUMO2,"AMD Radeon HD 6370D",kNull },
{ 0x9643,0x00000000, CHIP_FAMILY_SUMO2,"AMD Radeon HD 6380G",kNull }, // Mobile
{ 0x9644,0x00000000, CHIP_FAMILY_SUMO2,"AMD Radeon HD 6410D",kNull },
{ 0x9645,0x00000000, CHIP_FAMILY_SUMO2,"AMD Radeon HD 6410D",kNull }, // Mobile
{ 0x9440,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4870 ",kMotmot},
{ 0x9441,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4870 X2", kMotmot},
{ 0x9442,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4850 Series",kMotmot},
{ 0x9443,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4850 X2", kMotmot},
{ 0x9444,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V8750 (FireGL)", kMotmot},
{ 0x9446,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V7770 (FireGL)",kMotmot},
{ 0x9447,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V8700 Duo (FireGL)",kMotmot},
{ 0x944A,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon HD 4850",kMotmot},
{ 0x944B,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon HD 4850 X2",kMotmot},
{ 0x944C,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4830 Series",kMotmot},
{ 0x944E,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4810 Series",kMotmot},
// SUMO
{ 0x9647,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6520G",kNull }, // Mobile
{ 0x9648,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6480G",kNull }, // Mobile
{ 0x9450,0x00000000, CHIP_FAMILY_RV770,"AMD FireStream 9270", kMotmot},
{ 0x9452,0x00000000, CHIP_FAMILY_RV770,"AMD FireStream 9250", kMotmot},
// SUMO2
{ 0x9649,0x00000000, CHIP_FAMILY_SUMO2,"AMD Radeon(TM) HD 6480G",kNull }, // Mobile
{ 0x9456,0x00000000, CHIP_FAMILY_RV770,"ATI FirePro V8700 (FireGL)",kMotmot},
{ 0x945A,0x00000000, CHIP_FAMILY_RV770,"ATI Mobility Radeon HD 4870",kMotmot},
// SUMO
{ 0x964A,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6530D",kNull },
//{ 0x964B,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD",kNull },
//{ 0x964C,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD",kNull },
//{ 0x964E,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD",kNull }, // Mobile
//{ 0x964F,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD",kNull }, // Mobile
{ 0x9460,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4800 Series",kMotmot},
{ 0x9462,0x00000000, CHIP_FAMILY_RV770,"ATI Radeon HD 4800 Series",kMotmot},
// RS880
{ 0x9710,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4200 Series",kNull},
//{ 0x9711,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD",kNull},
{ 0x9712,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4200 Series",kNull}, // Mobile
//{ 0x9713,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD",kNull}, // Mobile
{ 0x9714,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4290",kNull},
{ 0x9715,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4250",kNull},
{ 0x9723,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 5450 Series",kNull},
{ 0x9480,0x00000000, CHIP_FAMILY_RV730,"ATI Mobility Radeon HD 550v",kGliff},
// PALM
{ 0x9802,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 6310 Graphics", kNull },
{ 0x9803,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 6250 Graphics", kNull },
{ 0x9804,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 6250 Graphics", kNull },
{ 0x9805,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 6250 Graphics", kNull },
{ 0x9806,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 6320 Graphics", kNull },
{ 0x9807,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 6290 Graphics", kNull },
{ 0x9808,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 7340 Graphics", kNull },
{ 0x9809,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD 7310 Graphics", kNull },
//{ 0x980A,0x00000000, CHIP_FAMILY_PALM,"AMD Radeon HD", kNull },
{ 0x9487,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x9488,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4650 Series",kGliff},
{ 0x9489,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x948A,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x948F,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD Series",kGliff},
{ 0x9490,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4670 Series",kGliff},
{ 0x9491,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4600 Series",kGliff},
{ 0x9495,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4650 Series",kGliff},
// KABINI
//{ 0x9830,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9831,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x9832,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9833,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x9834,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9835,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x9836,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9837,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x9838,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9839,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x983A,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x983B,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull }, // Mobile
//{ 0x983C,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x983D,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x983E,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
//{ 0x983F,0x00000000, CHIP_FAMILY_KABINI,"AMD Radeon HD", kNull },
{ 0x9498,0x00000000, CHIP_FAMILY_RV730,"ATI Radeon HD 4710 Series",kGliff},
{ 0x949C,0x00000000, CHIP_FAMILY_RV730,"ATI FirePro V7750 (FireGL)",kGliff},
{ 0x949E,0x00000000, CHIP_FAMILY_RV730,"ATI FirePro V5700 (FireGL)",kGliff},
{ 0x949F,0x00000000, CHIP_FAMILY_RV730,"ATI FirePro V3750 (FireGL)",kGliff},
// MULLINS
{ 0x9850,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9851,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9852,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9853,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9854,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9855,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9856,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9857,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9858,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x9859,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x985A,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x985B,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x985C,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x985D,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x985E,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x985F,0x00000000, CHIP_FAMILY_MULLINS,"AMD Radeon HD", kNull }, // Mobile
{ 0x94A0,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4830M", kFlicker},
{ 0x94A1,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4860M", kFlicker},
{ 0x94A3,0x00000000, CHIP_FAMILY_RV740,"ATI FirePro M7740", kFlicker},
{ 0x94B1,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD", kFlicker},
{ 0x94B3,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4770", kFlicker},
{ 0x94B4,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4700 Series",kFlicker},
{ 0x94B5,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD 4770", kFlicker},
{ 0x94B9,0x00000000, CHIP_FAMILY_RV740,"ATI Radeon HD", kFlicker},
// ARUBA
{ 0x9900,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7660G", kNull }, // Mobile
{ 0x9901,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7660D", kNull },
{ 0x9903,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7640G", kNull }, // Mobile
{ 0x9904,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7560D", kNull },
//{ 0x9905,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
{ 0x9906,0x00000000, CHIP_FAMILY_ARUBA,"AMD FirePro A300 Series", kNull },
{ 0x9907,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7620G", kNull }, // Mobile
{ 0x9908,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7600G", kNull }, // Mobile
//{ 0x9909,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x990A,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x990B,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x990C,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
//{ 0x990D,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x990E,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
//{ 0x990F,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
{ 0x9910,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7660G", kNull }, // Mobile
{ 0x9913,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7640G", kNull }, // Mobile
//{ 0x9917,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon", kNull },
//{ 0x9918,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon", kNull },
//{ 0x9919,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon", kNull },
{ 0x9990,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7520G", kNull }, // Mobile
{ 0x9991,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7540D", kNull },
{ 0x9992,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7420G", kNull }, // Mobile
//{ 0x9993,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
{ 0x9994,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD 7400G", kNull }, // Mobile
//{ 0x9995,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9996,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
//{ 0x9997,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x9998,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
//{ 0x9999,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x999A,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x999B,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x999C,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
//{ 0x999D,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
//{ 0x99A0,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x99A2,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull }, // Mobile
//{ 0x99A4,0x00000000, CHIP_FAMILY_ARUBA,"AMD Radeon HD", kNull },
{ 0x94C0,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD Series", kIago},
{ 0x94C1,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94C3,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2350 Series", kIago},
{ 0x94C4,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94C5,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94C6,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94C7,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2350", kIago},
{ 0x94C8,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94C9,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94CB,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94CC,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 Series", kIago},
{ 0x94CD,0x00000000, CHIP_FAMILY_RV610,"ATI Radeon HD 2400 PRO Series", kIago},
{ 0x9500,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3800 Series", kMegalodon},
{ 0x9501,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3690 Series", kMegalodon},
{ 0x9504,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850M Series", kMegalodon},
{ 0x9505,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3800 Series", kMegalodon},
{ 0x9506,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 X2 M Series", kMegalodon},
{ 0x9507,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3830", kMegalodon},
{ 0x9508,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3870M Series", kMegalodon},
{ 0x9509,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3870 X2 MSeries", kMegalodon},
{ 0x950F,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3870 X2", kMegalodon},
{ 0x9511,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 X2", kMegalodon},
{ 0x9513,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 3850 X2", kMegalodon},
{ 0x9515,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD 3850 Series", kMegalodon},
{ 0x9517,0x00000000, CHIP_FAMILY_RV670,"ATI Radeon HD Series", kMegalodon},
{ 0x9519,0x00000000, CHIP_FAMILY_RV670,"AMD FireStream 9170", kMegalodon},
{ 0x9540,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD 4550", kFlicker},
{ 0x9541,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD", kFlicker},
{ 0x9542,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD", kFlicker},
{ 0x954E,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD", kFlicker},
{ 0x954F,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD 4350", kFlicker},
{ 0x9552,0x00000000, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4300/4500 Series",kShrike},
{ 0x9553,0x00000000, CHIP_FAMILY_RV710,"ATI Mobility Radeon HD 4500M/5100M Series",kShrike},
{ 0x9555,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD4300/HD4500 series",kShrike},
{ 0x9557,0x00000000, CHIP_FAMILY_RV710,"ATI FirePro RG220",kFlicker},
{ 0x955F,0x00000000, CHIP_FAMILY_RV710,"ATI Radeon HD 4330M series", kFlicker},
{ 0x9580,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD Series",kHypoprion},
{ 0x9581,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT",kHypoprion},
{ 0x9583,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT",kHypoprion},
{ 0x9586,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT Series",kHypoprion},
{ 0x9587,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 Pro Series",kHypoprion},
{ 0x9588,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 XT",kHypoprion},
{ 0x9589,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 PRO",kHypoprion},
{ 0x958A,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna},
{ 0x958B,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna},
{ 0x958C,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna},
{ 0x958D,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna},
{ 0x958E,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 2600 X2 Series",kLamna},
{ 0x958F,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD Series",kHypoprion},
{ 0x9591,0x00000000, CHIP_FAMILY_RV635,"ATI Radeon HD 3600 Series",kMegalodon},
{ 0x9598,0x00000000, CHIP_FAMILY_RV630,"ATI Radeon HD 3600 Series",kMegalodon},
{ 0x95C0,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3550 Series",kIago},
{ 0x95C4,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3470 Series",kIago},
{ 0x95C5,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3450 Series",kIago},
{ 0x95C6,0x00000000, CHIP_FAMILY_RV620,"ATI Radeon HD 3450 AGP",kIago},
/* IGP */
{ 0x9610,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD 3200 Graphics",kNull},
{ 0x9611,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD 3100 Graphics", kNull},
{ 0x9614,0x00000000, CHIP_FAMILY_RS780,"ATI Radeon HD 3300 Graphics",kNull},
{ 0x9616,0x00000000, CHIP_FAMILY_RS780,"AMD 760G", kNull},
{ 0x9640,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6550D",kNull },
{ 0x9641,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6620G",kNull },
{ 0x9642,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6370D",kNull },
{ 0x9643,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6380G",kNull },
{ 0x9644,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6410D",kNull },
{ 0x9645,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6410D",kNull },
{ 0x9647,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6520G",kNull },
{ 0x9648,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6480G",kNull },
{ 0x9649,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon(TM) HD 6480G",kNull },
{ 0x964A,0x00000000, CHIP_FAMILY_SUMO,"AMD Radeon HD 6530D",kNull },
{ 0x9710,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4200 Series",kNull},
{ 0x9712,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4200 Series",kNull},
{ 0x9714,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4290",kNull},
{ 0x9715,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 4250",kNull},
{ 0x9723,0x00000000, CHIP_FAMILY_RS880,"ATI Radeon HD 5450 Series",kNull},
{ 0x9802,0x00000000, CHIP_FAMILY_WRESTLER,"ATI Radeon HD 6310 Series",kNull},
{ 0x9803,0x00000000, CHIP_FAMILY_WRESTLER,"ATI Radeon HD 6310 Series",kNull},
{ 0x9804,0x00000000, CHIP_FAMILY_WRESTLER,"ATI Radeon HD 6310 Series",kNull},
{ 0x9805,0x00000000, CHIP_FAMILY_WRESTLER,"ATI Radeon HD 6250 Series",kNull},
{ 0x9806,0x00000000, CHIP_FAMILY_WRESTLER,"ATI Radeon HD 6320 Series",kNull},
{ 0x9806,0x00000000, CHIP_FAMILY_WRESTLER,"AMD Radeon HD 6320 Graphics",kNull },
{ 0x9807,0x00000000, CHIP_FAMILY_WRESTLER,"AMD Radeon HD 6290 Graphics",kNull },
{ 0x9808,0x00000000, CHIP_FAMILY_WRESTLER,"AMD Radeon HD 7340 Graphics",kNull },
{ 0x9809,0x00000000, CHIP_FAMILY_WRESTLER,"AMD Radeon HD 7310 Graphics",kNull },
{ 0x9900,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7660G", kNull },
{ 0x9901,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7660D", kNull },
{ 0x9903,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7640G", kNull },
{ 0x9904,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7560D", kNull },
{ 0x9906,0x00000000, CHIP_FAMILY_TRINITY,"AMD FirePro A300 Series", kNull },
{ 0x9907,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7620G", kNull },
{ 0x9908,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7600G", kNull },
{ 0x9910,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7660G", kNull },
{ 0x9913,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7640G", kNull },
{ 0x9990,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7520G", kNull },
{ 0x9991,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7540D", kNull },
{ 0x9992,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7420G", kNull },
{ 0x9994,0x00000000, CHIP_FAMILY_TRINITY,"AMD Radeon HD 7400G", kNull },
/* Evergreen */
{ 0x688D,0x00000000, CHIP_FAMILY_CYPRESS,"AMD FireStream 9350",kZonalis},
{ 0x6898,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5870 Series",kUakari},
{ 0x6899,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5850 Series",kUakari},
// CYPRESS
//{ 0x6880,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD",kNull}, // Mobile
//{ 0x6888,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD",kNull},
//{ 0x6889,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD",kNull},
//{ 0x688A,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD",kNull},
//{ 0x688C,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD",kNull},
{ 0x688D,0x00000000, CHIP_FAMILY_CYPRESS,"AMD FireStream 9350",kZonalis},
{ 0x6898,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5870 Series",kUakari},
{ 0x6899,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5850 Series",kUakari},
{ 0x689B,0x00000000, CHIP_FAMILY_CYPRESS,"AMD Radeon HD 6800 Series",kNull},
//{ 0x689B,0x00000000, CHIP_FAMILY_???,"AMD Radeon HD 6800 Series",kNull},
{ 0x689C,0x00000000, CHIP_FAMILY_HEMLOCK,"ATI Radeon HD 5900 Series",kUakari},
// HEMLOCK
{ 0x689C,0x00000000, CHIP_FAMILY_HEMLOCK,"ATI Radeon HD 5970 Series",kUakari},
{ 0x689D,0x00000000, CHIP_FAMILY_HEMLOCK,"ATI Radeon HD 5900 Series",kUakari},
{ 0x689E,0x00000000, CHIP_FAMILY_HEMLOCK,"ATI Radeon HD 5800 Series",kUakari},
// CYPRESS
{ 0x689E,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Radeon HD 5800 Series",kUakari},
{ 0x68A0,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Radeon HD 5770 Series",kHoolock}, // CHIP_FAMILY_BROADWAY ??
{ 0x68A1,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Radeon HD 5850 Series",kHoolock}, // CHIP_FAMILY_BROADWAY ??
// JUNIPER
{ 0x68A0,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock}, // Mobile
{ 0x68A1,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5850 Series",kHoolock}, // Mobile
{ 0x68A8,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 6850M",kHoolock},
{ 0x68A9,0x00000000, CHIP_FAMILY_JUNIPER,"ATI FirePro V5800 (FireGL)",kHoolock},
{ 0x68B0,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock}, // Mobile
{ 0x68B1,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock},
{ 0x68B8,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock},
{ 0x68B9,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5700 Series",kHoolock},
{ 0x68BA,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 6770 Series",kHoolock},
{ 0x68BC,0x00000000, CHIP_FAMILY_JUNIPER,"AMD FireStream 9370",kHoolock},
{ 0x68BD,0x00000000, CHIP_FAMILY_JUNIPER,"AMD FireStream 9350",kHoolock},
{ 0x68BE,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5750 Series",kHoolock},
{ 0x68BF,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 6750 Series",kHoolock},
{ 0x68A8,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Radeon HD 6850M",kHoolock},
{ 0x68A9,0x00000000, CHIP_FAMILY_JUNIPER,"ATI FirePro V5800 (FireGL)",kHoolock},
// REDWOOD
{ 0x68C0,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5730 Series",kBaboon}, // Mobile
{ 0x68C1,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5650 Series",kBaboon}, // Mobile
{ 0x68C7,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Mobility Radeon HD 5570",kEulemur}, // Mobile
{ 0x68C8,0x00000000, CHIP_FAMILY_REDWOOD,"ATI FirePro v4800", kBaboon},
{ 0x68C9,0x00000000, CHIP_FAMILY_REDWOOD,"FirePro 3D V3800",kBaboon},
{ 0x68D8,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5670 Series",kBaboon},
{ 0x68D9,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5570 Series",kBaboon},
{ 0x68DA,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5500 Series",kBaboon},
{ 0x68DE,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5000 Series",kNull},
// CEDAR
{ 0x68E0,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5470 Series",kEulemur},
{ 0x68E1,0x00000000, CHIP_FAMILY_CEDAR,"AMD Radeon HD 6230",kEulemur},
{ 0x68E4,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6370M Series",kEulemur},
{ 0x68E5,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 6300M Series",kEulemur},
//{ 0x68E8,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
//{ 0x68E9,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
{ 0x68F1,0x00000000, CHIP_FAMILY_CEDAR,"AMD FirePro 2460",kEulemur},
{ 0x68F2,0x00000000, CHIP_FAMILY_CEDAR,"AMD FirePro 2270",kEulemur},
//{ 0x68F8,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
{ 0x68F9,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5450 Series",kEulemur},
{ 0x68FA,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 7300 Series",kEulemur},
//{ 0x68FE,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
{ 0x68B0,0x00000000, CHIP_FAMILY_CYPRESS,"ATI Mobility Radeon HD 5800 Series",kHoolock}, // CHIP_FAMILY_BROADWAY ??
{ 0x68B1,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock},
{ 0x68B8,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5770 Series",kHoolock},
{ 0x68B9,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5700 Series",kHoolock},
{ 0x68BA,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 6700 Series",kHoolock},
{ 0x68BC,0x00000000, CHIP_FAMILY_JUNIPER,"AMD FireStream 9370",kHoolock},
{ 0x68BD,0x00000000, CHIP_FAMILY_JUNIPER,"AMD FireStream 9350",kHoolock},
{ 0x68BE,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5750 Series",kHoolock},
{ 0x68BF,0x00000000, CHIP_FAMILY_JUNIPER,"ATI Radeon HD 5700 Series",kHoolock},
{ 0x68C0,0x00000000, CHIP_FAMILY_MANHATTAN,"AMD Radeon HD 6570M/5700 Series",kBaboon},
{ 0x68C1,0x00000000, CHIP_FAMILY_MANHATTAN,"AMD Radeon HD 6500M/5600/5700 Series",kBaboon},
{ 0x68C7,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Mobility Radeon HD 5570",kEulemur},
{ 0x68C8,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5650 Series",kBaboon},
{ 0x68C9,0x00000000, CHIP_FAMILY_REDWOOD,"FirePro 3D V3800",kBaboon},
{ 0x68D8,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5670 Series",kBaboon},
{ 0x68D9,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5500/5600 Series",kBaboon},
{ 0x68DA,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5500 Series",kBaboon},
//{ 0x68DE,0x00000000, CHIP_FAMILY_REDWOOD,"ATI Radeon HD ??? Series",kNull},
{ 0x68E0,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Radeon HD 5470 Series",kEulemur},
{ 0x68E1,0x00000000, CHIP_FAMILY_MANHATTAN,"AMD Radeon HD 6230",kEulemur},
{ 0x68E4,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Radeon HD 6370M Series",kEulemur},
{ 0x68E5,0x00000000, CHIP_FAMILY_MANHATTAN,"ATI Radeon HD 6300M Series",kEulemur},
//{ 0x68E8,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
//{ 0x68E9,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
{ 0x68F1,0x00000000, CHIP_FAMILY_CEDAR,"AMD FirePro 2460",kEulemur},
{ 0x68F2,0x00000000, CHIP_FAMILY_CEDAR,"AMD FirePro 2270",kEulemur},
//{ 0x68F8,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
{ 0x68F9,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 5470 Series",kEulemur},
{ 0x68FA,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD 7300 Series",kNull},
//{ 0x68FE,0x00000000, CHIP_FAMILY_CEDAR,"ATI Radeon HD ??? Series",kNull},
/* Northen Islands */
{ 0x6704,0x00000000, CHIP_FAMILY_CAYMAN,"AMD FirePro V7900",kLotus},
{ 0x6707,0x00000000, CHIP_FAMILY_CAYMAN,"AMD FirePro V5900",kLotus},
{ 0x6718,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970 Series",kLotus},
{ 0x6719,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6950 Series",kLotus},
// CAYMAN
{ 0x6701,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6702,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6703,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6704,0x00000000, CHIP_FAMILY_CAYMAN,"AMD FirePro V7900",kLotus},
{ 0x6705,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6706,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6707,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6708,0x00000000, CHIP_FAMILY_CAYMAN,"AMD FirePro V5900",kLotus},
{ 0x6709,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6xxx Series",kLotus},
{ 0x6718,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970 Series",kLotus},
{ 0x6719,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6950 Series",kLotus},
{ 0x671C,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970 Series",kLotus},
{ 0x671D,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6950 Series",kLotus},
{ 0x671F,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6930 Series",kLotus},
{ 0x671C,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6970 Series",kLotus},
{ 0x671D,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6950 Series",kLotus},
// BARTS
{ 0x6720,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6900M Series",kFanwort},
{ 0x6722,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6900M Series",kFanwort},
{ 0x6729,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6900M Series",kFanwort},
{ 0x6738,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6870 Series",kDuckweed},
{ 0x6739,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6850 X2",kDuckweed},
{ 0x673E,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6790 Series",kDuckweed},
{ 0x671F,0x00000000, CHIP_FAMILY_CAYMAN,"AMD Radeon HD 6930 Series",kLotus},
// TURKS
{ 0x6740,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6770M Series",kCattail},
{ 0x6741,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6750M",kCattail},
{ 0x6742,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7500/7600 Series",kCattail},
{ 0x6745,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6600M Series",kCattail},
{ 0x6749,0x00000000, CHIP_FAMILY_TURKS,"ATI Radeon FirePro V4900",kPithecia},
{ 0x674A,0x00000000, CHIP_FAMILY_TURKS,"AMD FirePro V3900",kPithecia},
{ 0x6750,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670 Series",kPithecia},
{ 0x6758,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670 Series",kPithecia},
{ 0x6759,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6570 Series",kPithecia},
{ 0x675B,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7600 Series",kPithecia},
{ 0x675D,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7570M Series",kCattail},
{ 0x675F,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6510 Series",kPithecia},
{ 0x6720,0x00000000, CHIP_FAMILY_VANCOUVER,"AMD Radeon HD 6900M Series",kFanwort},
// CAICOS
{ 0x6760,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6470M Series",kHydrilla},
{ 0x6761,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6430M Series",kHydrilla},
{ 0x6763,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon E6460 Series",kHydrilla},
{ 0x6768,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6400M Series",kHydrilla},
{ 0x6770,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6400 Series",kBulrushes},
{ 0x6772,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7400A Series",kBulrushes},
{ 0x6778,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7000 Series",kBulrushes},
{ 0x6779,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7450 Series",kBulrushes},
{ 0x677B,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7400 Series",kBulrushes},
{ 0x6722,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6900M Series",kFanwort},
{ 0x6729,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6900M Series",kFanwort},
{ 0x6738,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6870 Series",kDuckweed},
{ 0x6739,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6850 Series",kDuckweed},
{ 0x673E,0x00000000, CHIP_FAMILY_BARTS,"AMD Radeon HD 6790 Series",kDuckweed},
{ 0x6740,0x00000000, CHIP_FAMILY_VANCOUVER,"AMD Radeon HD 6770M Series",kCattail},
{ 0x6741,0x00000000, CHIP_FAMILY_VANCOUVER,"AMD Radeon HD 6750M",kCattail},
{ 0x6742,0x00000000, CHIP_FAMILY_VANCOUVER,"AMD Radeon HD 7500/7600 Series",kCattail},
{ 0x6745,0x00000000, CHIP_FAMILY_VANCOUVER,"AMD Radeon HD 6600M Series",kCattail},
{ 0x6749,0x00000000, CHIP_FAMILY_TURKS,"ATI Radeon FirePro V4900",kPithecia},
{ 0x674A,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6600M Series",kPithecia},
{ 0x6750,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670 Series",kPithecia},
{ 0x6758,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6670 Series",kPithecia},
{ 0x6759,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6570/7570 Series",kPithecia},
{ 0x675B,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7600 Series",kPithecia },
{ 0x675D,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7570M Series",kCattail},
{ 0x675F,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 6570 Series",kPithecia},
{ 0x6760,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6470M Series",kHydrilla},
{ 0x6761,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6430M Series",kHydrilla},
{ 0x6763,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon E6460 Series",kHydrilla},
{ 0x6768,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6400M Series",kHydrilla},
{ 0x6770,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6400 Series",kBulrushes},
{ 0x6772,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7400A Series",kBulrushes},
{ 0x6778,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7000 Series",kBulrushes},
{ 0x6779,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 6450 Series",kBulrushes},
{ 0x677B,0x00000000, CHIP_FAMILY_CAICOS,"AMD Radeon HD 7400 Series",kBulrushes},
/* Southen Islands */
{ 0x6780,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki}, // ATI7000Controller.kext
// TAHITI
//Framebuffers: Aji - 4 Desktop, Buri - 4 Mobile, Chutoro - 5 Mobile, Dashimaki - 4, IkuraS - HMDI
// Ebi - 5 Mobile, Gari - 5 M, Futomaki - 4 D, Hamachi - 4 D, OPM - 6 Server, Ikura - 6
{ 0x6780,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6784,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6788,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x678A,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6790,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6791,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6792,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6798,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7970 X-Edition",kFutomaki},
{ 0x6799,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7990 Series",kAji},
{ 0x679A,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon R9 280",kFutomaki},
{ 0x679B,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x679E,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7870 XT",kFutomaki},
{ 0x679F,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7950 Series",kFutomaki},
//{ 0x6784,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD ??? Series",kFutomaki},
// HAWAII
//{ 0x67A0,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67A1,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67A2,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67A8,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67A9,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67AA,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
{ 0x67B0,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon R9 290X", kFutomaki},
{ 0x67B1,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon R9 290", kFutomaki}, // CHIP_FAMILY_HAWAII
//{ 0x67B8,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67B9,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67BA,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x67BE,0x00000000, CHIP_FAMILY_HAWAII,"AMD Radeon", kFutomaki},
//{ 0x6788,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD ??? Series",kFutomaki},
// PITCAIRN
{ 0x6800,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 7970M",kBuri}, // Mobile
//{ 0x6801,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 8970M Series",kFutomaki}, // Mobile
//{ 0x6802,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD ???M Series",kFutomaki}, // Mobile
{ 0x6806,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 7600 Series",kFutomaki},
{ 0x6808,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 7600 Series",kFutomaki},
//{ 0x6809,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD ??? Series",kNull},
{ 0x6810,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon R9 270X",kFutomaki},
{ 0x6811,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon R9 270",kFutomaki},
//{ 0x6816,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon",kFutomaki},
//{ 0x6817,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon",kFutomaki},
{ 0x6818,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 7870 Series",kFutomaki},
{ 0x6819,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 7850 Series",kFutomaki},
{ 0x678A,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
// VERDE
{ 0x6820,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // Mobile
{ 0x6821,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // Mobile
//{ 0x6822,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD",kBuri}, // Mobile
//{ 0x6823,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 8800M Series",kBuri}, // Mobile
//{ 0x6824,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700M Series",kBuri}, // Mobile
{ 0x6825,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7800M Series",kPondweed}, // Mobile
{ 0x6826,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // Mobile
{ 0x6827,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7800M Series",kPondweed}, // Mobile
//{ 0x6828,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD ??? Series",kBuri},
//{ 0x6829,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD ??? Series",kBuri},
//{ 0x682A,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD",kBuri}, // Mobile
{ 0x682B,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 8800M Series",kBuri}, // Mobile
{ 0x682D,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // Mobile
{ 0x682F,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7730 Series",kBuri}, // Mobile
{ 0x6830,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7800M Series",kBuri}, // Mobile
{ 0x6831,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // Mobile
//{ 0x6835,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD",kBuri},
{ 0x6837,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri},
{ 0x6838,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri},
{ 0x6839,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri},
{ 0x683B,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri},
{ 0x683D,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7770 Series",kBuri},
{ 0x683F,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7750 Series",kBuri},
{ 0x6790,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki}, // ATI7000Controller.kext
{ 0x6791,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
{ 0x6792,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
// TURKS
{ 0x6840,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7670M Series",kPondweed}, // Mobile
{ 0x6841,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7650M Series",kPondweed}, // Mobile
{ 0x6842,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7600M Series",kPondweed}, // Mobile
{ 0x6843,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7670M Series",kPondweed}, // Mobile
{ 0x6849,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7600M Series",kPondweed},
{ 0x6798,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7970 X-Edition",kFutomaki}, // ATI7000Controller.kext
{ 0x6799,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7990 Series",kAji},
{ 0x679A,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7950 Series",kFutomaki}, // ATI7000Controller.kext
{ 0x679B,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7900 Series",kFutomaki},
// PITCAIRN
//{ 0x684C,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD",kNull},
{ 0x679E,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7870 XT",kFutomaki}, // ATI7000Controller.kext
{ 0x679F,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7950 Series",kFutomaki},
// TURKS
{ 0x6850,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7600M Series",kPondweed },
{ 0x6858,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7400 Series",kPondweed },
{ 0x6859,0x00000000, CHIP_FAMILY_TURKS,"AMD Radeon HD 7600M Series",kPondweed },
{ 0x6800,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7970M",kBuri}, // ATI7000Controller.kext
//{ 0x6801,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD 8970M Series",kFutomaki},
//{ 0x6802,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD ???M Series",kFutomaki},
{ 0x6806,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7600 Series",kFutomaki}, // ATI7000Controller.kext
{ 0x6808,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7600 Series",kFutomaki}, // ATI7000Controller.kext
//{ 0x6809,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD ??? Series",kNull},
{ 0x6810,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon R9 270X",kNull},
{ 0x6818,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7870 Series",kFutomaki}, // CHIP_FAMILY_PITCAIRN ??// ATI7000Controller.kext
{ 0x6819,0x00000000, CHIP_FAMILY_TAHITI,"AMD Radeon HD 7850 Series",kFutomaki},// CHIP_FAMILY_PITCAIRN ??
{ 0x6820,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // ATI7000Controller.kext
{ 0x6821,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri}, // ATI7000Controller.kext
//{ 0x6823,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 8850M Series",kBuri},
//{ 0x6824,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700M Series",kBuri},
{ 0x6825,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7870 Series",kBuri}, // ATI7000Controller.kext
{ 0x6826,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series",kBuri},
{ 0x6827,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7850M/8850M Series",kBuri}, // ATI7000Controller.kext
//{ 0x6828,0x00000000, CHIP_FAMILY_VERDE,"FirePro W600",kBuri},
//{ 0x6829,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD ??? Series",kBuri},
{ 0x682B,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 8800M Series", kBuri},
{ 0x682D,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series", kBuri}, // ATI7000Controller.kext
{ 0x682F,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7730 Series", kBuri}, // ATI7000Controller.kext
{ 0x6830,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7800M Series", kBuri},
{ 0x6831,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series", kBuri},
{ 0x6837,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series", kBuri},
{ 0x6838,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series", kBuri},
{ 0x6839,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series", kBuri}, // ATI7000Controller.kext
{ 0x683B,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7700 Series", kBuri}, // ATI7000Controller.kext
{ 0x683D,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7770 Series", kBuri}, // ATI7000Controller.kext
{ 0x683F,0x00000000, CHIP_FAMILY_VERDE,"AMD Radeon HD 7750 Series", kBuri}, // ATI7000Controller.kext
{ 0x6840,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7670M Series",kPondweed }, // THAMES??
{ 0x6841,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7500M/7600M Series",kPondweed},
{ 0x6842,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7600M Series",kPondweed},
{ 0x6843,0x00000000, CHIP_FAMILY_VANCOUVER,"AMD Radeon HD 7670M Series",kPondweed},
{ 0x6849,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7600M Series",kPondweed },
//{ 0x684C,0x00000000, CHIP_FAMILY_PITCAIRN,"AMD Radeon HD ??? Series",kNull},
{ 0x6850,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7600M Series",kPondweed },
{ 0x6858,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7400 Series",kPondweed },
{ 0x6859,0x00000000, CHIP_FAMILY_LOMBOK,"AMD Radeon HD 7600M Series",kPondweed },
{ 0x0000,0x00000000, CHIP_FAMILY_UNKNOW,NULL,kNull}
{ 0x0000,0x00000000, CHIP_FAMILY_UNKNOW,"AMD Unknown",kNull}
};
dev_prop_t ati_devprop_list[] = {
{FLAGTRUE,false,"@0,AAPL,boot-display",get_bootdisplay_val,NULVAL},
//{FLAGTRUE,false,"@0,ATY,EFIDisplay",NULL,STRVAL("TMDSA")},
return false;
}
// -------------------------------------------------
#if 0
uint64_t fb= (uint32_t)card->fb;
uint64_t mmio= (uint32_t)card->mmio;
devprop_add_value(card->device, "ATY,RegisterSpaceOffset", &mmio, 8);
devprop_add_value(card->device, "ATY,IOSpaceOffset", &io, 8);
#endif
devprop_add_list(ati_devprop_list);
// -------------------------------------------------
memcpy(stringdata, (uint8_t*)devprop_generate_string(string), string->length);
stringlength = string->length;
// -------------------------------------------------
verbose("ATI %s %s %dMB (%s) [%04x:%04x] (subsys [%04x:%04x]):: %s\n",
chip_family_name[card->info->chip_family], card->info->model_name,
(uint32_t)(card->vram_size / (1024 * 1024)), card->cfg_name,
trunk/i386/libsaio/ati.h
1616
1717
1818
19
20
2119
2220
2321
......
5149
5250
5351
52
5453
5554
5655
......
8483
8584
8685
87
88
89
9086
91
9287
9388
9489
9590
9691
92
93
94
95
9796
9897
9998
100
101
102
103
104
105
106
107
99
100
101
102
103
104
105
106
108107
109108
110109
......
169168
170169
171170
172
173
174
175
176
177
178
179
180
181
182
171
172
173
174
175
176
177
178
179
180
181
183182
184183
185184
......
215214
216215
217216
218
219
220
221
222
223
224
225
226
227
228
229
230
217
218
219
220
221
222
223
224
225
226
227
228
229
231230
232231
233232
#include "device_inject.h"
#include "ati_reg.h"
/* DEFINES */
#define OFFSET_TO_GET_ATOMBIOS_STRINGS_START 0x6e
CHIP_FAMILY_UNKNOW,
/* Old */
CHIP_FAMILY_R420,
CHIP_FAMILY_R423,
CHIP_FAMILY_RV410,
CHIP_FAMILY_RV515,
CHIP_FAMILY_R520,
CHIP_FAMILY_HEMLOCK,
CHIP_FAMILY_JUNIPER,
CHIP_FAMILY_REDWOOD,
CHIP_FAMILY_BROADWAY,
//CHIP_FAMILY_MADISON,
//CHIP_FAMILY_PARK,
/* Northern Islands */
//CHIP_FAMILY_ANTILLES,
CHIP_FAMILY_BARTS,
CHIP_FAMILY_CAICOS,
CHIP_FAMILY_CAYMAN,
CHIP_FAMILY_TURKS,
/* Southern Islands */
CHIP_FAMILY_PALM,
CHIP_FAMILY_SUMO,
CHIP_FAMILY_SUMO2,
CHIP_FAMILY_ARUBA,
CHIP_FAMILY_TAHITI,
CHIP_FAMILY_PITCAIRN,
CHIP_FAMILY_VERDE,
CHIP_FAMILY_THAMES,
CHIP_FAMILY_LOMBOK,
//CHIP_FAMILY_NEWZEALAND,
CHIP_FAMILY_SUMO,
CHIP_FAMILY_MANHATTAN,
CHIP_FAMILY_VANCOUVER,
CHIP_FAMILY_WRESTLER,
CHIP_FAMILY_TRINITY,
CHIP_FAMILY_OLAND,
CHIP_FAMILY_HAINAN,
CHIP_FAMILY_BONAIRE,
CHIP_FAMILY_KAVERI,
CHIP_FAMILY_KABINI,
CHIP_FAMILY_HAWAII,
/* ... */
CHIP_FAMILY_MULLINS,
CHIP_FAMILY_LAST
} ati_chip_family_t;
kSpikerush,
kTypha,
/* AMD7000Controller */
kAji, // TESTING
kBuri, // TESTING
kChutoro, // TESTING
kDashimaki, // TESTING
kEbi, // TESTING
kGari, // TESTING
kFutomaki, // TESTING
kHamachi, // TESTING
kOPM, // TESTING
kIkura, // TESTING
kIkuraS, // TESTING
kAji, //4
kBuri, //4 M
kChutoro, //5 M
kDashimaki, //4
kEbi, //5 M
kGari, //5 M
kFutomaki, //5
kHamachi, //4
kOPM,
kIkura,
kIkuraS,
kCfgEnd
} ati_config_name_t;
} dev_prop_t;
typedef struct {
struct DevPropDevice*device;
radeon_card_info_t*info;
pci_dt_t*pci_dev;
uint8_t*fb;
uint8_t*mmio;
uint8_t*io;
uint8_t*rom;
uint64_trom_size;
uint64_tvram_size;
const char*cfg_name;
uint8_tports;
uint32_tflags;
boolposted;
struct DevPropDevice*device;
radeon_card_info_t*info;
pci_dt_t*pci_dev;
uint8_t*fb;
uint8_t*mmio;
uint8_t*io;
uint8_t*rom;
uint64_trom_size;
uint64_tvram_size;
const char*cfg_name;
uint8_tports;
uint32_tflags;
boolposted;
} card_t;
trunk/i386/libsaio/stringTable.c
666666
667667
668668
669
670
669
670
671671
672672
673673
if ( loadChameleonConfigForDevice(config, "bt(0,0)", dirspec[i]) == 0 ) {
return 0;
}
for ( BVRef bvr = chain; bvr; bvr = bvr->next ) {
BVRef bvr;
for ( bvr = chain; bvr; bvr = bvr->next ) { /* C99 Error */
char device[256];
getDeviceDescription(bvr, device);
trunk/i386/libsaio/pci.h
6363
6464
6565
66
66
6767
6868
6969
/* Have pci_addr in the same format as the values written to 0xcf8
* so register accesses can be made easy. */
#define PCIADDR(bus, dev, func) ((1 << 31) | (bus << 16) | (dev << 11) | (func << 8))
#define PCIADDR(bus, dev, func) ((1L << 31) | (bus << 16) | (dev << 11) | (func << 8))
#define PCI_ADDR_REG0xcf8
#define PCI_DATA_REG0xcfc
trunk/i386/libsaio/saio_types.h
7070
7171
7272
73
73
7474
7575
7676
......
151151
152152
153153
154
155
156
157
154
155
156
157
158158
159159
160160
......
212212
213213
214214
215
215
216
216217
217218
218219
......
225226
226227
227228
228
229
230
231
232
233
234
235
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
236244
237245
238246
typedef struct {
charplist[IO_CONFIG_DATA_SIZE];// buffer for plist
TagPtrdictionary; // buffer for xml dictionary
TagPtrdictionary;// buffer for xml dictionary
boolcanOverride;// flag to mark a dictionary can be overriden
} config_file_t;
typedef void (*BVFree)(CICell ih);
struct iob {
unsigned int i_flgs;/* see F_* below */
unsigned int i_offset;/* seek byte offset in file */
int i_filesize;/* size of file */
char * i_buf;/* file load address */
char * i_buf; /* file load address */
unsigned int i_flgs; /* see F_* below */
unsigned int i_offset; /* seek byte offset in file */
int i_filesize; /* size of file */
};
#define BPS 512/* sector size of the device */
kBVFlagBootable= 0x08,
kBVFlagEFISystem= 0x10,
kBVFlagBooter= 0x20,
kBVFlagSystemVolume= 0x40
kBVFlagSystemVolume= 0x40,
kBVFlagInstallVolume= 0x80
};
enum {
};
enum {
kPartitionTypeHFS= 0xAF,
kPartitionTypeHPFS= 0x07,
kPartitionTypeFAT16= 0x06,
kPartitionTypeFAT32= 0x0c,
kPartitionTypeEXT3= 0x83,
kPartitionTypeBEFS= 0xEB,
kPartitionTypeFreeBSD= 0xa5,
kPartitionTypeOpenBSD= 0xa6
//KPartitionTypeFAT12= 0x01, // FAT12
kPartitionTypeHPFS= 0x07, // Mac OS X
kPartitionTypeFAT16= 0x06, // FAT16
kPartitionTypeFAT32= 0x0C, // FAT32
kPartitionTypeEXT3= 0x83, // Linux
kPartitionTypeOSXBoot= 0xAB, // Mac OS X Boot partition
kPartitionTypeFreeBSD= 0xA5, // FreeBSD
kPartitionTypeOpenBSD= 0xA6, // OpenBSD
//kPartitionTypeNeXTSTEP= 0xA7 // NeXTSTEP
//kPartitionTypeNetBSD= 0xA9 // NetBSD
kPartitionTypeHFS= 0xAF, // Mac OS X
//kPartitionTypeSolaris= 0xBE, // Solaris
kPartitionTypeBEFS= 0xEB, // BeOS BFS
//kPartitionTypeBeOS= 0xEB, // BeOS BFS
//kPartitionTypeSkyOS= 0xEC, // SkyOS
};
//#define BIOS_DEV_TYPE(d)((d) & kBIOSDevTypeMask)
trunk/i386/boot0/boot0.s
9292
9393
9494
95
96
95
96
9797
9898
9999
......
535535
536536
537537
538
538539
540
539541
540542
541543
; in LBA 0 (that is, the first block) precedes the
; GUID Partition Table Header to maintain compatibility
; with existing tools that do not understand GPT partition structures.
; The Protective MBR has the same format as a legacy MBR
; and contains one partition entry with an OSType set to 0xEE
; The Protective MBR has the same format as a legacy MBR
; and contains one partition entry with an OSType set to 0xEE
; reserving the entire space used on the disk by the GPT partitions,
; including all headers.
cmp WORD [di + kSectorBytes - 2], kBootSignature
.exit:
popa
ret
trunk/i386/boot1/boot1h.s
7474
7575
7676
77
77
7878
7979
8080
kBoot1Sector1AddrEQUkBoot1RelocAddr + kSectorBytes; boot1 load address for sector 1
kHFSPlusBufferEQUkBoot1Sector1Addr + kSectorBytes; HFS+ Volume Header address
kBoot2SectorsEQU(448 * 1024 - 512) / kSectorBytes; max size of 'boot' file in sectors
kBoot2SectorsEQU(480 * 1024 - 512) / kSectorBytes; max size of 'boot' file in sectors = 448 but I want 472
kBoot2SegmentEQU0x2000; boot2 load segment
kBoot2AddressEQUkSectorBytes; boot2 load address
trunk/i386/boot2/boot.c
251251
252252
253253
254
254255
255256
256257
......
258259
259260
260261
261
262
262263
263264
264265
......
279280
280281
281282
283
282284
283285
284286
......
289291
290292
291293
294
292295
293296
294297
if (cacheFile[0] != 0)
{
strlcpy(kernelCacheFile, cacheFile, sizeof(kernelCacheFile));
verbose("Specified kernel cache file path = %s\n", cacheFile);
}
else
{
if ((checkOSVersion("10.7")) || (checkOSVersion("10.8")) || (checkOSVersion("10.9")))
{
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "%skernelcache", kDefaultCachePathSnow);
}
verbose("10.7, 10.8 & 10.9 kernel cache file path = %s\n", kernelCacheFile);}
// Snow Leopard prelink kernel cache file
else if (checkOSVersion("10.6")) {
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "kernelcache_%s",
prev_time = time;
}
}
verbose("Snow Leopard kernel cache file path = %s\n", kernelCacheFile);
}
closedir(cacheDir);
} else {
gRootDevice, bootInfo->bootFile);
adler32 = Adler32((unsigned char *)gCacheNameAdler, sizeof(gCacheNameAdler));
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "%s.%08lX", kDefaultCachePathLeo, adler32);
verbose("Reseted kernel cache file path = %s\n", kernelCacheFile);
}
}
trunk/i386/boot2/boot.h
4040
4141
4242
43
44
45
46
4347
4448
4549
#define kLionInstallerDataFolder "/Mac OS X Install Data/"
#define kLionInstallerPlist kLionInstallerDataFolder "com.apple.Boot.plist"
// Mountain Lion installer
#define kMLionInstallerDataFolder "/OS X Install Data/"
#define kMLionInstallerPlist kMLionInstallerDataFolder "com.apple.Boot.plist"
/*
* Keys used in system Boot.plist
*/
trunk/i386/modules/FileNVRAM/Makefile
11
2
23
3
4
4
55
66
77
MODULE_NAME = FileNVRAM
MODULE_DESCRIPTION = FileNVRAM module for preloading NVRAM values
MODULE_AUTHOR = xZenue LLC.
MODULE_DESCRIPTION = FileNVRAM module for preloading NVRAM values
MODULE_VERSION = "1.1.0"
MODULE_VERSION = "1.1.3"
MODULE_COMPAT_VERSION = "1.0.0"
MODULE_START = $(MODULE_NAME)_start
MODULE_DEPENDENCIES =
trunk/i386/modules/KernelPatcher/Cconfig
66
77
88
9
9
1010
bool "Kernel Patcher Module"
default y
---help---
Say Y here if you want to enable the use of this module.
Say Y here if you want to enable to use of this module.
trunk/i386/modules/KernelPatcher/Makefile
11
2
23
3
4
4
55
66
77
MODULE_NAME = KernelPatcher
MODULE_DESCRIPTION = Kernel patcher
MODULE_AUTHOR = Evan Lojewski
MODULE_DESCRIPTION = Kernel patcher
MODULE_VERSION = "1.1.0"
MODULE_VERSION = "1.1.3"
MODULE_COMPAT_VERSION = "1.0.0"
MODULE_START = $(MODULE_NAME)_start
MODULE_DEPENDENCIES =
trunk/CHANGES
1
12
23
34
- Bungo : Loading custom ECDT.aml, Darwin version string printing, clean boot-args, change firmware rev. to real Mac (0x0001000a), added kernel-compatibility, boot-file, boot-args, machine-signature, random-seed DT properties & some minor changes.
- ErmaC : Merge tja's patch http://forum.voodooprojects.org/index.php/topic,5951.0.html
- bitshoveler : Optimized basic string functions strlen, strncmp, strncat, strcat
- ErmaC : Replaced sprintf with snprintf in spd.c.

Archive Download the corresponding diff file

Revision: 2383