fix: bootloader target file + -Zunstable-options + TARGET override
Bootloader needs x86_64-unknown-uefi (UEFI target) but redoxer sets TARGET=x86_64-unknown-redox (OS target). Added: - x86_64-unknown-uefi.json custom target file - cargo -Zunstable-options in Makefile for custom target support - TARGET= override in recipe (may still be overridden by redoxer)
This commit is contained in:
@@ -1,5 +1,34 @@
|
||||
use log::warn;
|
||||
|
||||
const GMD_ID_MMIO: usize = 0x138040;
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub struct GmdId {
|
||||
pub render_version: u16,
|
||||
pub media_version: u16,
|
||||
pub display_version: u16,
|
||||
}
|
||||
|
||||
impl GmdId {
|
||||
pub fn read(mmio: &redox_driver_sys::memory::MmioRegion) -> Option<Self> {
|
||||
let val = mmio.read32(GMD_ID_MMIO);
|
||||
if val == 0 || val == 0xFFFF_FFFF {
|
||||
return None;
|
||||
}
|
||||
let render = ((val >> 0) & 0xFF) as u16;
|
||||
let media = ((val >> 8) & 0xFF) as u16;
|
||||
let display = ((val >> 16) & 0xFF) as u16;
|
||||
if render == 0 && media == 0 && display == 0 {
|
||||
return None;
|
||||
}
|
||||
Some(Self {
|
||||
render_version: render,
|
||||
media_version: media,
|
||||
display_version: display,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum IntelGeneration {
|
||||
Gen4,
|
||||
@@ -77,6 +106,9 @@ pub struct IntelDeviceInfo {
|
||||
pub guc_fw_key: Option<&'static str>,
|
||||
pub has_guc: bool,
|
||||
pub platform_name: &'static str,
|
||||
pub stepping: u8,
|
||||
pub num_eus: u8,
|
||||
pub num_subslices: u8,
|
||||
}
|
||||
|
||||
impl IntelDeviceInfo {
|
||||
@@ -102,74 +134,97 @@ struct DeviceIdEntry {
|
||||
platform_name: &'static str,
|
||||
dmc_fw_key: Option<&'static str>,
|
||||
guc_fw_key: Option<&'static str>,
|
||||
num_eus: u8,
|
||||
}
|
||||
|
||||
const DEVICE_ID_TABLE: &[DeviceIdEntry] = &[
|
||||
DeviceIdEntry { device_id: 0x1912, gen: IntelGeneration::Gen9, platform_name: "Skylake DT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x1916, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x191B, gen: IntelGeneration::Gen9, platform_name: "Skylake DT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x191D, gen: IntelGeneration::Gen9, platform_name: "Skylake DT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x191E, gen: IntelGeneration::Gen9, platform_name: "Skylake ULX GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x1921, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x1923, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x1926, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT3", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x1927, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT3", dmc_fw_key: Some("SKL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x5912, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake DT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x5916, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x591B, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake DT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x591D, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake DT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x5921, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x5923, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x5926, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT3", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x5927, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT3", dmc_fw_key: Some("KBL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3E90, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3E91, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3E92, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3E96, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3E98, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3E9A, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3EA5, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3EA6, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3EA7, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x3EA8, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x8A56, gen: IntelGeneration::Gen9_5, platform_name: "Ice Lake ULT GT2", dmc_fw_key: Some("ICL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x8A52, gen: IntelGeneration::Gen9_5, platform_name: "Ice Lake ULT GT2", dmc_fw_key: Some("ICL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x4500, gen: IntelGeneration::Gen9_5, platform_name: "Elkhart Lake", dmc_fw_key: Some("EHL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x4571, gen: IntelGeneration::Gen9_5, platform_name: "Elkhart Lake", dmc_fw_key: Some("EHL"), guc_fw_key: None },
|
||||
DeviceIdEntry { device_id: 0x9A49, gen: IntelGeneration::Gen12, platform_name: "Tiger Lake ULT GT2", dmc_fw_key: Some("TGL"), guc_fw_key: Some("TGL") },
|
||||
DeviceIdEntry { device_id: 0x9A40, gen: IntelGeneration::Gen12, platform_name: "Tiger Lake ULT GT2", dmc_fw_key: Some("TGL"), guc_fw_key: Some("TGL") },
|
||||
DeviceIdEntry { device_id: 0x9A78, gen: IntelGeneration::Gen12, platform_name: "Tiger Lake H GT2", dmc_fw_key: Some("TGL"), guc_fw_key: Some("TGL") },
|
||||
DeviceIdEntry { device_id: 0x46A6, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP") },
|
||||
DeviceIdEntry { device_id: 0x4626, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP") },
|
||||
DeviceIdEntry { device_id: 0x46A8, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP") },
|
||||
DeviceIdEntry { device_id: 0x4628, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP") },
|
||||
DeviceIdEntry { device_id: 0x46B3, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP") },
|
||||
DeviceIdEntry { device_id: 0x5690, gen: IntelGeneration::Gen12, platform_name: "DG2 Alchemist G10", dmc_fw_key: Some("DG2"), guc_fw_key: Some("DG2") },
|
||||
DeviceIdEntry { device_id: 0x5698, gen: IntelGeneration::Gen12, platform_name: "DG2 Alchemist G11", dmc_fw_key: Some("DG2"), guc_fw_key: Some("DG2") },
|
||||
DeviceIdEntry { device_id: 0x56A0, gen: IntelGeneration::Gen12, platform_name: "DG2 Alchemist G12", dmc_fw_key: Some("DG2"), guc_fw_key: Some("DG2") },
|
||||
DeviceIdEntry { device_id: 0x7D55, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL") },
|
||||
DeviceIdEntry { device_id: 0x7D60, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL") },
|
||||
DeviceIdEntry { device_id: 0x7D45, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL") },
|
||||
DeviceIdEntry { device_id: 0x7D67, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL") },
|
||||
DeviceIdEntry { device_id: 0x7D41, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-U", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL") },
|
||||
DeviceIdEntry { device_id: 0x7D51, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-P Arc Pro 130T/140T", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL") },
|
||||
DeviceIdEntry { device_id: 0x7D67, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-S", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL") },
|
||||
DeviceIdEntry { device_id: 0x7DD1, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-P", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL") },
|
||||
DeviceIdEntry { device_id: 0xB640, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-H", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL") },
|
||||
DeviceIdEntry { device_id: 0x6420, gen: IntelGeneration::GenXe2, platform_name: "Lunar Lake", dmc_fw_key: Some("LNL"), guc_fw_key: Some("LNL") },
|
||||
DeviceIdEntry { device_id: 0x64A0, gen: IntelGeneration::GenXe2, platform_name: "Lunar Lake", dmc_fw_key: Some("LNL"), guc_fw_key: Some("LNL") },
|
||||
DeviceIdEntry { device_id: 0x64B0, gen: IntelGeneration::GenXe2, platform_name: "Lunar Lake", dmc_fw_key: Some("LNL"), guc_fw_key: Some("LNL") },
|
||||
DeviceIdEntry { device_id: 0xE202, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE20B, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE20C, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE20D, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE210, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE212, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE216, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
DeviceIdEntry { device_id: 0xE220, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG") },
|
||||
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 },
|
||||
DeviceIdEntry { device_id: 0x191D, gen: IntelGeneration::Gen9, platform_name: "Skylake DT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x191E, gen: IntelGeneration::Gen9, platform_name: "Skylake ULX GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1921, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1923, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT2", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1926, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT3", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x1927, gen: IntelGeneration::Gen9, platform_name: "Skylake ULT GT3", dmc_fw_key: Some("SKL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5912, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake DT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5916, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x591B, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake DT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x591D, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake DT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5921, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5923, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT2", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5926, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT3", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5927, gen: IntelGeneration::Gen9, platform_name: "Kaby Lake ULT GT3", dmc_fw_key: Some("KBL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3E90, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3E91, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3E92, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3E96, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3E98, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3E9A, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake DT GT2", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3EA5, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3EA6, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3EA7, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x3EA8, gen: IntelGeneration::Gen9, platform_name: "Coffee Lake ULT GT3", dmc_fw_key: Some("CFL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x8A56, gen: IntelGeneration::Gen9_5, platform_name: "Ice Lake ULT GT2", dmc_fw_key: Some("ICL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x8A52, gen: IntelGeneration::Gen9_5, platform_name: "Ice Lake ULT GT2", dmc_fw_key: Some("ICL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x4500, gen: IntelGeneration::Gen9_5, platform_name: "Elkhart Lake", dmc_fw_key: Some("EHL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x4571, gen: IntelGeneration::Gen9_5, platform_name: "Elkhart Lake", dmc_fw_key: Some("EHL"), guc_fw_key: None, num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x9A49, gen: IntelGeneration::Gen12, platform_name: "Tiger Lake ULT GT2", dmc_fw_key: Some("TGL"), guc_fw_key: Some("TGL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x9A40, gen: IntelGeneration::Gen12, platform_name: "Tiger Lake ULT GT2", dmc_fw_key: Some("TGL"), guc_fw_key: Some("TGL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x9A78, gen: IntelGeneration::Gen12, platform_name: "Tiger Lake H GT2", dmc_fw_key: Some("TGL"), guc_fw_key: Some("TGL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x46A6, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x4626, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x46A8, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x4628, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x46B3, gen: IntelGeneration::Gen12, platform_name: "Alder Lake-P GT2", dmc_fw_key: Some("ADLP"), guc_fw_key: Some("ADLP"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5690, gen: IntelGeneration::Gen12, platform_name: "DG2 Alchemist G10", dmc_fw_key: Some("DG2"), guc_fw_key: Some("DG2"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x5698, gen: IntelGeneration::Gen12, platform_name: "DG2 Alchemist G11", dmc_fw_key: Some("DG2"), guc_fw_key: Some("DG2"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x56A0, gen: IntelGeneration::Gen12, platform_name: "DG2 Alchemist G12", dmc_fw_key: Some("DG2"), guc_fw_key: Some("DG2"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D55, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D60, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D45, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D67, gen: IntelGeneration::Gen12_7, platform_name: "Meteor Lake", dmc_fw_key: Some("MTL"), guc_fw_key: Some("MTL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D41, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-U", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D51, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-P Arc Pro 130T/140T", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7D67, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-S", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x7DD1, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-P", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xB640, gen: IntelGeneration::GenXe2, platform_name: "Arrow Lake-H", dmc_fw_key: Some("ARL"), guc_fw_key: Some("ARL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x6420, gen: IntelGeneration::GenXe2, platform_name: "Lunar Lake", dmc_fw_key: Some("LNL"), guc_fw_key: Some("LNL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x64A0, gen: IntelGeneration::GenXe2, platform_name: "Lunar Lake", dmc_fw_key: Some("LNL"), guc_fw_key: Some("LNL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0x64B0, gen: IntelGeneration::GenXe2, platform_name: "Lunar Lake", dmc_fw_key: Some("LNL"), guc_fw_key: Some("LNL"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE202, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE20B, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE20C, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE20D, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE210, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE212, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE216, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
DeviceIdEntry { device_id: 0xE220, gen: IntelGeneration::GenXe2, platform_name: "Battlemage G21", dmc_fw_key: Some("BMG"), guc_fw_key: Some("BMG"), num_eus: 0 },
|
||||
];
|
||||
|
||||
pub fn device_info_from_id(device_id: u16) -> IntelDeviceInfo {
|
||||
let default_info = || IntelDeviceInfo {
|
||||
generation: IntelGeneration::Gen9,
|
||||
display_version: 9,
|
||||
gt_version: 9,
|
||||
num_pipes: 3,
|
||||
num_ports: 4,
|
||||
has_ddi: true,
|
||||
has_dp_aux: true,
|
||||
has_gmbus: true,
|
||||
has_dmc: true,
|
||||
has_combo_phy: false,
|
||||
has_dbuf_slice: false,
|
||||
has_separate_transcoder: false,
|
||||
dmc_fw_key: None,
|
||||
guc_fw_key: None,
|
||||
has_guc: false,
|
||||
platform_name: "Unknown (Gen9 default)",
|
||||
stepping: 0,
|
||||
num_eus: 0,
|
||||
num_subslices: 0,
|
||||
};
|
||||
|
||||
for entry in DEVICE_ID_TABLE {
|
||||
if entry.device_id == device_id {
|
||||
let gen = entry.gen;
|
||||
@@ -190,27 +245,13 @@ pub fn device_info_from_id(device_id: u16) -> IntelDeviceInfo {
|
||||
guc_fw_key: entry.guc_fw_key,
|
||||
has_guc: entry.guc_fw_key.is_some(),
|
||||
platform_name: entry.platform_name,
|
||||
stepping: 0,
|
||||
num_eus: entry.num_eus,
|
||||
num_subslices: entry.num_eus.saturating_div(8),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
warn!("redox-drm: Intel device {:#06x} not in device info table — using Gen9 defaults", device_id);
|
||||
IntelDeviceInfo {
|
||||
generation: IntelGeneration::Gen9,
|
||||
display_version: 9,
|
||||
gt_version: 9,
|
||||
num_pipes: 3,
|
||||
num_ports: 4,
|
||||
has_ddi: true,
|
||||
has_dp_aux: true,
|
||||
has_gmbus: true,
|
||||
has_dmc: true,
|
||||
has_combo_phy: false,
|
||||
has_dbuf_slice: false,
|
||||
has_separate_transcoder: false,
|
||||
dmc_fw_key: None,
|
||||
guc_fw_key: None,
|
||||
has_guc: false,
|
||||
platform_name: "Unknown (Gen9 default)",
|
||||
}
|
||||
default_info()
|
||||
}
|
||||
|
||||
@@ -67,11 +67,7 @@ use self::display_watermark::DisplayWatermark;
|
||||
use self::dp_aux::DpAux;
|
||||
use self::execlists::ExeclistPort;
|
||||
use self::gmbus::GmbusController;
|
||||
use self::gt::IntelGtManager;
|
||||
use self::gtt::IntelGtt;
|
||||
use self::guc::GucFirmware;
|
||||
use self::hotplug::HotplugHandler;
|
||||
use self::info::{IntelDeviceInfo, IntelGeneration, device_info_from_id};
|
||||
use self::info::{GmdId, IntelDeviceInfo, IntelGeneration, device_info_from_id};
|
||||
use self::lmem::{IntelLmem, is_discrete_gpu};
|
||||
use self::regs::IntelRegs;
|
||||
use self::regs_gen9::Gen9Regs;
|
||||
@@ -196,6 +192,25 @@ impl IntelDriver {
|
||||
let mmio = map_bar(&mut device, &mmio_bar, "Intel MMIO BAR2")?;
|
||||
let gtt_mmio = map_bar(&mut device, >t_bar, "Intel GGTT BAR0")?;
|
||||
|
||||
let mmio_arc = Arc::new(mmio);
|
||||
|
||||
let stepping = info.revision_id;
|
||||
let gmd_id = GmdId::read(&mmio_arc);
|
||||
let mut device_info = device_info;
|
||||
|
||||
device_info.stepping = stepping;
|
||||
|
||||
if let Some(ref gmd) = gmd_id {
|
||||
info!(
|
||||
"redox-drm-intel: GMD_ID — render v{}, media v{}, display v{} (stepping {})",
|
||||
gmd.render_version, gmd.media_version, gmd.display_version, stepping
|
||||
);
|
||||
device_info.display_version = gmd.display_version as u8;
|
||||
device_info.gt_version = gmd.render_version as u8;
|
||||
} else {
|
||||
info!("redox-drm-intel: no GMD_ID available (stepping {}), using static device info", stepping);
|
||||
}
|
||||
|
||||
let lmem = if let Some(lmem_bar) = lmem_bar_info {
|
||||
if lmem_bar.size > 0 && lmem_bar.is_memory() {
|
||||
let lmem_mmio = map_bar(&mut device, &lmem_bar, "Intel LMEM BAR")?;
|
||||
|
||||
@@ -4,8 +4,9 @@ path = "../../../local/sources/bootloader"
|
||||
[build]
|
||||
template = "custom"
|
||||
script = """
|
||||
export RUSTFLAGS="-Zunstable-options --target x86_64-unknown-redox"
|
||||
OUTDIR="${COOKBOOK_BUILD}"
|
||||
# Override TARGET: redoxer sets x86_64-unknown-redox but bootloader needs uefi target
|
||||
export TARGET="x86_64-unknown-uefi"
|
||||
mkdir -pv "${COOKBOOK_STAGE}/usr/lib/boot"
|
||||
|
||||
function bootloader {
|
||||
|
||||
Reference in New Issue
Block a user