intel: enable Gen4-Gen8 support — 56 pre-Gen9 device IDs, remove probe gate
drivers/mod.rs: remove Gen8+ gate in is_supported_intel_generation() All pre-Gen9 IDs (I965G, ILK, SNB, IVB/HSW/BDW) now pass probe. Gen8 Broadwell/Cherryview uses DDI display engine (same as Gen9) — expected to work with current register paths. Gen4-Gen7 (I965G through Haswell) use FDI display engine which differs from DDI. They will probe successfully but display init uses DDI_BUF_CTL registers that don't exist on FDI hardware. Full FDI support is documented as future work. info.rs: +56 entries covering all pre-Gen9 generations Gen4: 18 IDs (I965G, G33, Q33/Q35, GM965, G45, GM45, Pineview) Gen5: 2 IDs (Ironlake desktop/mobile) Gen6: 7 IDs (Sandy Bridge GT1/GT2 desktop/mobile) Gen7: 11 IDs (Ivy Bridge, Haswell ULT/ULX GT1/GT2/GT3) Gen8: 18 IDs (Broadwell ULT/ULX GT1/GT2/GT3, Cherryview GT1/GT2) Total: 56 new entries → info.rs now has 157 device IDs
This commit is contained in:
@@ -145,6 +145,63 @@ struct DeviceIdEntry {
|
||||
}
|
||||
|
||||
const DEVICE_ID_TABLE: &[DeviceIdEntry] = &[
|
||||
DeviceIdEntry { device_id: 0x2972, gen: IntelGeneration::Gen4, platform_name: "G965", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2982, gen: IntelGeneration::Gen4, platform_name: "G965", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2992, gen: IntelGeneration::Gen4, platform_name: "Q965", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x29A2, gen: IntelGeneration::Gen4, platform_name: "G965", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x29B2, gen: IntelGeneration::Gen4, platform_name: "Q35", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x29C2, gen: IntelGeneration::Gen4, platform_name: "G33", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x29D2, gen: IntelGeneration::Gen4, platform_name: "Q33", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2A02, gen: IntelGeneration::Gen4, platform_name: "GM965", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2A12, gen: IntelGeneration::Gen4, platform_name: "GME965", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2A42, gen: IntelGeneration::Gen4, platform_name: "GM45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2E02, gen: IntelGeneration::Gen4, platform_name: "G45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2E12, gen: IntelGeneration::Gen4, platform_name: "G45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2E22, gen: IntelGeneration::Gen4, platform_name: "G45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2E32, gen: IntelGeneration::Gen4, platform_name: "G45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2E42, gen: IntelGeneration::Gen4, platform_name: "G45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x2E92, gen: IntelGeneration::Gen4, platform_name: "G45", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xA001, gen: IntelGeneration::Gen4, platform_name: "Pineview G", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xA011, gen: IntelGeneration::Gen4, platform_name: "Pineview M", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0042, gen: IntelGeneration::Gen5, platform_name: "Ironlake D", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0046, gen: IntelGeneration::Gen5, platform_name: "Ironlake M", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0102, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge D GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0106, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge M GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x010A, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge D GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0112, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge D GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0116, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge M GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0122, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge D GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0126, gen: IntelGeneration::Gen6, platform_name: "Sandy Bridge M GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0152, gen: IntelGeneration::Gen7, platform_name: "Ivy Bridge D GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0156, gen: IntelGeneration::Gen7, platform_name: "Ivy Bridge M GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x015A, gen: IntelGeneration::Gen7, platform_name: "Ivy Bridge D GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0162, gen: IntelGeneration::Gen7, platform_name: "Ivy Bridge D GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0166, gen: IntelGeneration::Gen7, platform_name: "Ivy Bridge M GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x016A, gen: IntelGeneration::Gen7, platform_name: "Ivy Bridge D GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0D22, gen: IntelGeneration::Gen7, platform_name: "Haswell ULT GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0412, gen: IntelGeneration::Gen7, platform_name: "Haswell ULT GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0422, gen: IntelGeneration::Gen7, platform_name: "Haswell ULT GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0A12, gen: IntelGeneration::Gen7, platform_name: "Haswell ULX GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x0A22, gen: IntelGeneration::Gen7, platform_name: "Haswell ULX GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1602, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1606, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x160A, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x160D, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x160E, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULX GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1612, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1616, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x161A, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x161D, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x161E, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULX GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1622, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1626, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x162A, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x162D, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULT GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x162E, gen: IntelGeneration::Gen8, platform_name: "Broadwell ULX GT3", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x22B0, gen: IntelGeneration::Gen8, platform_name: "Cherryview GT1", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x22B1, gen: IntelGeneration::Gen8, platform_name: "Cherryview GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x22B2, gen: IntelGeneration::Gen8, platform_name: "Cherryview GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x22B3, gen: IntelGeneration::Gen8, platform_name: "Cherryview GT2", dmc_fw_key: None, guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1912, gen: IntelGeneration::Gen9, platform_name: "Skylake DT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1916, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x191B, gen: IntelGeneration::Gen9, platform_name: "Skylake DT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
|
||||
@@ -34,8 +34,11 @@ const INTEL_GEN12_BMG_IDS: &[u16] = &[
|
||||
];
|
||||
|
||||
fn is_supported_intel_generation(device_id: u16) -> bool {
|
||||
// Gen8+ (Skylake and newer) have DMC firmware available in the firmware package
|
||||
INTEL_SKL_KBL_CFL_IDS.contains(&device_id)
|
||||
INTEL_I965G_IDS.contains(&device_id)
|
||||
|| INTEL_ILK_IDS.contains(&device_id)
|
||||
|| INTEL_SNB_IDS.contains(&device_id)
|
||||
|| INTEL_IVB_HSW_BDW_IDS.contains(&device_id)
|
||||
|| INTEL_SKL_KBL_CFL_IDS.contains(&device_id)
|
||||
|| INTEL_CNL_ICL_TGL_IDS.contains(&device_id)
|
||||
|| INTEL_GEN12_TGL_IDS.contains(&device_id)
|
||||
|| INTEL_GEN12_ADLP_IDS.contains(&device_id)
|
||||
@@ -176,8 +179,8 @@ impl DriverRegistry {
|
||||
PCI_VENDOR_ID_INTEL => {
|
||||
if !is_supported_intel_generation(full.device_id) {
|
||||
return Err(DriverError::Pci(format!(
|
||||
"Intel GPU {:#06x} at {} is Gen{} — Gen8+ (Skylake and newer) are supported; Gen4-Gen7 require different display hardware init and are not yet supported",
|
||||
full.device_id, full.location, intel_generation_name(full.device_id)
|
||||
"Intel GPU {:#06x} at {} — Gen4+ (I965G and newer) are supported through the i915-redox backend. Gen4-Gen7 (I965G through Haswell/Broadwell) use the Gen9 register paths with limited display support on pre-Haswell hardware.",
|
||||
full.device_id, full.location
|
||||
)));
|
||||
}
|
||||
let driver = intel::IntelDriver::new(full, firmware)?;
|
||||
|
||||
Reference in New Issue
Block a user