* add DCE version major and minor as we may need it at some point

* add notes that AtomBIOS goes all the way back to X700 (r4xx) 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42884 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-10-19 18:19:13 +00:00
parent b1128999ca
commit 6e4eb955c7
@@ -35,160 +35,166 @@
#define MAX_CARDS 1
// ATI / AMD cards starting at the Radeon X700 have an AtomBIOS
// list of supported devices
const struct supported_device {
uint32 device_id;
uint8 dceMajor; // Display block family
uint8 dceMinor; // Display block family
uint16 chipset;
bool igp;
const char* name;
} kSupportedDevices[] = {
// R400 Series (Radeon) DCE 0.0 (*very* early AtomBIOS)
// R500 Series (Radeon Xxxx) DCE 1.0
// R600 series (HD24xx - HD42xx)
// Codename: Pele
{0x94c7, RADEON_R600 | 0x10, false, "Radeon HD 2350"},
{0x94c1, RADEON_R600 | 0x10, true, "Radeon HD 2400"},
{0x94c3, RADEON_R600 | 0x10, false, "Radeon HD 2400"},
{0x94cc, RADEON_R600 | 0x10, false, "Radeon HD 2400"},
{0x9586, RADEON_R600 | 0x30, false, "Radeon HD 2600"},
{0x9588, RADEON_R600 | 0x30, false, "Radeon HD 2600"},
{0x958a, RADEON_R600 | 0x30, false, "Radeon HD 2600 X2"},
{0x94c7, 2, 0, RADEON_R600 | 0x10, false, "Radeon HD 2350"},
{0x94c1, 2, 0, RADEON_R600 | 0x10, true, "Radeon HD 2400"},
{0x94c3, 2, 0, RADEON_R600 | 0x10, false, "Radeon HD 2400"},
{0x94cc, 2, 0, RADEON_R600 | 0x10, false, "Radeon HD 2400"},
{0x9586, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 2600"},
{0x9588, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 2600"},
{0x958a, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 2600 X2"},
// Radeon 2700 - RV630
{0x9400, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x9401, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x9402, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x9403, RADEON_R600 | 0x00, false, "Radeon HD 2900 Pro"},
{0x9405, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x940a, RADEON_R600 | 0x00, false, "Radeon FireGL V8650"},
{0x940b, RADEON_R600 | 0x00, false, "Radeon FireGL V8600"},
{0x940f, RADEON_R600 | 0x00, false, "Radeon FireGL V7600"},
{0x9611, RADEON_R600 | 0x20, true, "Radeon HD 3100"},
{0x9613, RADEON_R600 | 0x20, true, "Radeon HD 3100"},
{0x9610, RADEON_R600 | 0x10, true, "Radeon HD 3200"},
{0x9612, RADEON_R600 | 0x10, true, "Radeon HD 3200"},
{0x9615, RADEON_R600 | 0x10, true, "Radeon HD 3200"},
{0x9614, RADEON_R600 | 0x10, true, "Radeon HD 3300"},
{0x9400, 2, 0, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x9401, 2, 0, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x9402, 2, 0, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x9403, 2, 0, RADEON_R600 | 0x00, false, "Radeon HD 2900 Pro"},
{0x9405, 2, 0, RADEON_R600 | 0x00, false, "Radeon HD 2900"},
{0x940a, 2, 0, RADEON_R600 | 0x00, false, "Radeon FireGL V8650"},
{0x940b, 2, 0, RADEON_R600 | 0x00, false, "Radeon FireGL V8600"},
{0x940f, 2, 0, RADEON_R600 | 0x00, false, "Radeon FireGL V7600"},
{0x9611, 3, 0, RADEON_R600 | 0x20, true, "Radeon HD 3100"},
{0x9613, 3, 0, RADEON_R600 | 0x20, true, "Radeon HD 3100"},
{0x9610, 2, 0, RADEON_R600 | 0x10, true, "Radeon HD 3200"},
{0x9612, 2, 0, RADEON_R600 | 0x10, true, "Radeon HD 3200"},
{0x9615, 2, 0, RADEON_R600 | 0x10, true, "Radeon HD 3200"},
{0x9614, 2, 0, RADEON_R600 | 0x10, true, "Radeon HD 3300"},
// Radeon 3430 - RV620
{0x95c5, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c6, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c7, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c9, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c4, RADEON_R600 | 0x20, false, "Radeon HD 3470"},
{0x95c0, RADEON_R600 | 0x20, false, "Radeon HD 3550"},
{0x9581, RADEON_R600 | 0x30, false, "Radeon HD 3600"},
{0x9583, RADEON_R600 | 0x30, false, "Radeon HD 3600"},
{0x9598, RADEON_R600 | 0x30, false, "Radeon HD 3600"},
{0x9591, RADEON_R600 | 0x35, false, "Radeon HD 3600"},
{0x9589, RADEON_R600 | 0x30, false, "Radeon HD 3610"},
{0x95c5, 3, 0, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c6, 3, 0, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c7, 3, 0, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c9, 3, 0, RADEON_R600 | 0x20, false, "Radeon HD 3450"},
{0x95c4, 3, 0, RADEON_R600 | 0x20, false, "Radeon HD 3470"},
{0x95c0, 3, 0, RADEON_R600 | 0x20, false, "Radeon HD 3550"},
{0x9581, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 3600"},
{0x9583, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 3600"},
{0x9598, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 3600"},
{0x9591, 3, 0, RADEON_R600 | 0x35, false, "Radeon HD 3600"},
{0x9589, 2, 0, RADEON_R600 | 0x30, false, "Radeon HD 3610"},
// Radeon 3650 - RV635
// Radeon 3670 - RV635
{0x9507, RADEON_R600 | 0x70, false, "Radeon HD 3830"},
{0x9505, RADEON_R600 | 0x70, false, "Radeon HD 3850"},
{0x9513, RADEON_R600 | 0x80, false, "Radeon HD 3850 X2"},
{0x9501, RADEON_R600 | 0x70, false, "Radeon HD 3870"},
{0x950F, RADEON_R600 | 0x80, false, "Radeon HD 3870 X2"},
{0x9710, RADEON_R600 | 0x20, true, "Radeon HD 4200"},
{0x9715, RADEON_R600 | 0x20, true, "Radeon HD 4250"},
{0x9712, RADEON_R600 | 0x20, true, "Radeon HD 4270"},
{0x9714, RADEON_R600 | 0x20, true, "Radeon HD 4290"},
{0x9507, 2, 0, RADEON_R600 | 0x70, false, "Radeon HD 3830"},
{0x9505, 2, 0, RADEON_R600 | 0x70, false, "Radeon HD 3850"},
{0x9513, 2, 0, RADEON_R600 | 0x80, false, "Radeon HD 3850 X2"},
{0x9501, 2, 0, RADEON_R600 | 0x70, false, "Radeon HD 3870"},
{0x950F, 2, 0, RADEON_R600 | 0x80, false, "Radeon HD 3870 X2"},
{0x9710, 3, 0, RADEON_R600 | 0x20, true, "Radeon HD 4200"},
{0x9715, 3, 0, RADEON_R600 | 0x20, true, "Radeon HD 4250"},
{0x9712, 3, 0, RADEON_R600 | 0x20, true, "Radeon HD 4270"},
{0x9714, 3, 0, RADEON_R600 | 0x20, true, "Radeon HD 4290"},
// R700 series (HD4330 - HD4890, HD51xx, HD5xxV)
// Codename: Wekiva
// Radeon 4330 - RV710
{0x954f, RADEON_R700 | 0x10, true, "Radeon HD 4300"},
{0x9552, RADEON_R700 | 0x10, true, "Radeon HD 4300"},
{0x9555, RADEON_R700 | 0x10, false, "Radeon HD 4350"},
{0x9540, RADEON_R700 | 0x10, false, "Radeon HD 4550"},
{0x9480, RADEON_R700 | 0x30, false, "Radeon HD 4650"},
{0x9498, RADEON_R700 | 0x30, false, "Radeon HD 4650"},
{0x94b4, RADEON_R700 | 0x40, false, "Radeon HD 4700"},
{0x9490, RADEON_R700 | 0x30, false, "Radeon HD 4710"},
{0x94b3, RADEON_R700 | 0x40, false, "Radeon HD 4770"},
{0x94b5, RADEON_R700 | 0x40, false, "Radeon HD 4770"},
{0x944a, RADEON_R700 | 0x70, false, "Radeon HD 4850 Mobile"}, // IGP?
{0x944e, RADEON_R700 | 0x70, false, "Radeon HD 4810"},
{0x944c, RADEON_R700 | 0x70, false, "Radeon HD 4830"},
{0x9442, RADEON_R700 | 0x70, false, "Radeon HD 4850"},
{0x9443, RADEON_R700 | 0x70, false, "Radeon HD 4850 X2"},
{0x94a1, RADEON_R700 | 0x90, true, "Radeon HD 4860"},
{0x9440, RADEON_R700 | 0x70, false, "Radeon HD 4870"},
{0x9441, RADEON_R700 | 0x70, false, "Radeon HD 4870 X2"},
{0x954f, 3, 2, RADEON_R700 | 0x10, true, "Radeon HD 4300"},
{0x9552, 3, 2, RADEON_R700 | 0x10, true, "Radeon HD 4300"},
{0x9555, 3, 2, RADEON_R700 | 0x10, false, "Radeon HD 4350"},
{0x9540, 3, 2, RADEON_R700 | 0x10, false, "Radeon HD 4550"},
{0x9480, 3, 2, RADEON_R700 | 0x30, false, "Radeon HD 4650"},
{0x9498, 3, 2, RADEON_R700 | 0x30, false, "Radeon HD 4650"},
{0x94b4, 3, 2, RADEON_R700 | 0x40, false, "Radeon HD 4700"},
{0x9490, 3, 2, RADEON_R700 | 0x30, false, "Radeon HD 4710"},
{0x94b3, 3, 2, RADEON_R700 | 0x40, false, "Radeon HD 4770"},
{0x94b5, 3, 2, RADEON_R700 | 0x40, false, "Radeon HD 4770"},
{0x944a, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4850 Mobile"},
{0x944e, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4810"},
{0x944c, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4830"},
{0x9442, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4850"},
{0x9443, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4850 X2"},
{0x94a1, 3, 0, RADEON_R700 | 0x90, true, "Radeon HD 4860"},
{0x9440, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4870"},
{0x9441, 3, 0, RADEON_R700 | 0x70, false, "Radeon HD 4870 X2"},
// From here on AMD no longer used numeric identifiers
// R1000 series (HD54xx - HD63xx)
// Codename: Evergreen
// Cedar
{0x68e1, RADEON_R1000 | 0x00, false, "Radeon HD 5430"},
{0x68f9, RADEON_R1000 | 0x00, false, "Radeon HD 5450"},
{0x68e0, RADEON_R1000 | 0x00, true, "Radeon HD 5470"},
{0x68e1, 4, 0, RADEON_R1000 | 0x00, false, "Radeon HD 5430"},
{0x68f9, 4, 0, RADEON_R1000 | 0x00, false, "Radeon HD 5450"},
{0x68e0, 4, 0, RADEON_R1000 | 0x00, true, "Radeon HD 5470"},
// Redwood
{0x68da, RADEON_R1000 | 0x10, false, "Radeon HD 5500"},
{0x68d9, RADEON_R1000 | 0x10, false, "Radeon HD 5570"},
{0x68b9, RADEON_R1000 | 0x10, false, "Radeon HD 5600"},
{0x68c1, RADEON_R1000 | 0x10, false, "Radeon HD 5650"},
{0x68d8, RADEON_R1000 | 0x10, false, "Radeon HD 5670"},
{0x68da, 4, 0, RADEON_R1000 | 0x10, false, "Radeon HD 5500"},
{0x68d9, 4, 0, RADEON_R1000 | 0x10, false, "Radeon HD 5570"},
{0x68b9, 4, 0, RADEON_R1000 | 0x10, false, "Radeon HD 5600"},
{0x68c1, 4, 0, RADEON_R1000 | 0x10, false, "Radeon HD 5650"},
{0x68d8, 4, 0, RADEON_R1000 | 0x10, false, "Radeon HD 5670"},
// Juniper
{0x68be, RADEON_R1000 | 0x20, false, "Radeon HD 5700"},
{0x68b8, RADEON_R1000 | 0x20, false, "Radeon HD 5770"},
{0x68be, 4, 0, RADEON_R1000 | 0x20, false, "Radeon HD 5700"},
{0x68b8, 4, 0, RADEON_R1000 | 0x20, false, "Radeon HD 5770"},
// Cypress
{0x689e, RADEON_R1000 | 0x30, false, "Radeon HD 5800"},
{0x6899, RADEON_R1000 | 0x30, false, "Radeon HD 5850"},
{0x6898, RADEON_R1000 | 0x30, false, "Radeon HD 5870"},
{0x689e, 4, 0, RADEON_R1000 | 0x30, false, "Radeon HD 5800"},
{0x6899, 4, 0, RADEON_R1000 | 0x30, false, "Radeon HD 5850"},
{0x6898, 4, 0, RADEON_R1000 | 0x30, false, "Radeon HD 5870"},
// Hemlock
{0x689c, RADEON_R1000 | 0x40, false, "Radeon HD 5900"},
{0x689c, 4, 0, RADEON_R1000 | 0x40, false, "Radeon HD 5900"},
// Fusion APUS
// Palms
{0x9804, RADEON_R1000 | 0x50, true, "Radeon HD 6250"},
{0x9805, RADEON_R1000 | 0x50, true, "Radeon HD 6290"},
{0x9802, RADEON_R1000 | 0x50, true, "Radeon HD 6310"},
{0x9803, RADEON_R1000 | 0x50, true, "Radeon HD 6310"},
{0x9804, 4, 1, RADEON_R1000 | 0x50, true, "Radeon HD 6250"},
{0x9805, 4, 1, RADEON_R1000 | 0x50, true, "Radeon HD 6290"},
{0x9802, 4, 1, RADEON_R1000 | 0x50, true, "Radeon HD 6310"},
{0x9803, 4, 1, RADEON_R1000 | 0x50, true, "Radeon HD 6310"},
// R2000 series (HD64xx - HD69xx)
// Codename: Nothern Islands
// Caicos
{0x6760, RADEON_R2000 | 0x00, false, "Radeon HD 6470M"},
{0x6761, RADEON_R2000 | 0x00, false, "Radeon HD 6430M"},
{0x6762, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6763, RADEON_R2000 | 0x00, false, "Radeon HD E6460 Discreet"},
{0x6764, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6765, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6766, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6767, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6768, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6770, RADEON_R2000 | 0x00, false, "Radeon HD 6400"},
{0x6779, RADEON_R2000 | 0x00, false, "Radeon HD 6450"},
{0x6760, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD 6470M"},
{0x6761, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD 6430M"},
{0x6762, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6763, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD E6460 Discreet"},
{0x6764, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6765, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6766, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6767, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6768, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD CAICOS"},
{0x6770, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD 6400"},
{0x6779, 5, 0, RADEON_R2000 | 0x00, false, "Radeon HD 6450"},
// Turks
{0x6740, RADEON_R2000 | 0x10, false, "Radeon HD 6700M"},
{0x6741, RADEON_R2000 | 0x10, false, "Radeon HD 6600M"},
{0x6742, RADEON_R2000 | 0x10, false, "Radeon HD 6625M"},
{0x6743, RADEON_R2000 | 0x10, false, "Radeon HD E6760 Discreet"},
{0x6744, RADEON_R2000 | 0x10, false, "Radeon HD TURKS M"},
{0x6745, RADEON_R2000 | 0x10, false, "Radeon HD TURKS M"},
{0x6746, RADEON_R2000 | 0x10, false, "Radeon HD TURKS"},
{0x6747, RADEON_R2000 | 0x10, false, "Radeon HD TURKS"},
{0x6748, RADEON_R2000 | 0x10, false, "Radeon HD TURKS"},
{0x6749, RADEON_R2000 | 0x10, false, "FirePro v4900"},
{0x6759, RADEON_R2000 | 0x10, false, "Radeon HD 6570"},
{0x6740, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD 6700M"},
{0x6741, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD 6600M"},
{0x6742, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD 6625M"},
{0x6743, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD E6760 Discreet"},
{0x6744, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD TURKS M"},
{0x6745, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD TURKS M"},
{0x6746, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD TURKS"},
{0x6747, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD TURKS"},
{0x6748, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD TURKS"},
{0x6749, 5, 0, RADEON_R2000 | 0x10, false, "FirePro v4900"},
{0x6759, 5, 0, RADEON_R2000 | 0x10, false, "Radeon HD 6570"},
// Barts
{0x673e, RADEON_R2000 | 0x20, false, "Radeon HD 6790"},
{0x6739, RADEON_R2000 | 0x20, false, "Radeon HD 6850"},
{0x6738, RADEON_R2000 | 0x20, false, "Radeon HD 6870"},
{0x673e, 5, 0, RADEON_R2000 | 0x20, false, "Radeon HD 6790"},
{0x6739, 5, 0, RADEON_R2000 | 0x20, false, "Radeon HD 6850"},
{0x6738, 5, 0, RADEON_R2000 | 0x20, false, "Radeon HD 6870"},
// Cayman
{0x6700, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6701, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6702, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6703, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6704, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6705, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6706, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6707, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6708, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6709, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6718, RADEON_R2000 | 0x30, false, "Radeon HD 6970"},
{0x6719, RADEON_R2000 | 0x30, false, "Radeon HD 6950"},
{0x671C, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x671F, RADEON_R2000 | 0x30, false, "Radeon HD 6900"},
{0x6700, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6701, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6702, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6703, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6704, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6705, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6706, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6707, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6708, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6709, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x6718, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD 6970"},
{0x6719, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD 6950"},
{0x671C, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD CAYMAN"},
{0x671F, 5, 0, RADEON_R2000 | 0x30, false, "Radeon HD 6900"},
// Antilles
{0x671d, RADEON_R2000 | 0x40, false, "Radeon HD 6990"}
{0x671d, 5, 0, RADEON_R2000 | 0x40, false, "Radeon HD 6990"}
// R3000 series (HD74xx - HD79xx)
// Codename: Southern Islands