Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
601250a
Initial commit, defined diagnostics subsystem and laid out IoPort int…
maheeraeron Apr 19, 2025
7fe0fcc
Forgot to add diagnostics.rs itself
maheeraeron Apr 19, 2025
c6dbbae
Defined advanced logger types and laid out logic for parsing
maheeraeron Apr 19, 2025
5d5e724
Merge branch 'main' into user/maheeraeron/efi-diagnostics
maheeraeron Apr 19, 2025
633fdbc
Now parsing the buffer but getting rate limited
maheeraeron Apr 20, 2025
d43cefd
Significant error handling improvements
maheeraeron Apr 20, 2025
9bc2936
Added advanced_logger.rs instead to clarify type ownership
maheeraeron Apr 20, 2025
a94d854
Moved diagnostics state to UefiDevice instead
maheeraeron Apr 20, 2025
17ddf48
Removed redundant variable useage in advanced_logger.rs validation fu…
maheeraeron Apr 20, 2025
8be2496
Modified trace prefix message
maheeraeron Apr 20, 2025
20c08aa
Switched to tracing::info!() instead
maheeraeron Apr 20, 2025
288dbea
fixed error strings
maheeraeron Apr 20, 2025
997cd1b
process diagnostics when UefiDevice stops or resets
maheeraeron Apr 20, 2025
5956808
Remove trailing newlines characters
maheeraeron Apr 20, 2025
adb4307
clippy fixes
maheeraeron Apr 20, 2025
b06ba41
use ALIGNMENT constant, handle remaining messages
maheeraeron Apr 20, 2025
866cf0e
More clippy fixes, move functionality from specs to service, added to…
maheeraeron Apr 21, 2025
042d407
Invalid UTF8 gives error, improve tracing::info!() when logging logs
maheeraeron Apr 21, 2025
af9299a
Improved error handling v2
maheeraeron Apr 21, 2025
8cdc11a
changes tracelimit error when a diagnostics error occurs
maheeraeron Apr 21, 2025
7910dc9
Moved diagnostics state to service, changed to ebs_complete flag
maheeraeron Apr 22, 2025
79db679
Publicize runtime state and use that instead of ebs_complete
maheeraeron Apr 22, 2025
5132b02
Fixed Validator spelling
maheeraeron Apr 22, 2025
7a5756f
Merge branch 'main' into user/maheeraeron/efi-diagnostics
maheeraeron Apr 23, 2025
8a6b62a
Update mu_msvm version
maheeraeron Apr 23, 2025
cac77ad
Changed message to description, clarified units for timestamp, use an…
maheeraeron Apr 24, 2025
bc1bb38
Separate entry processing to its own function, clarify doc comments, …
maheeraeron Apr 24, 2025
d218bd5
Add no-boot test for efi diagnostics for openhcl_uefi_x64 only
maheeraeron Apr 25, 2025
4f6872f
Rename to ticks and message instead, process remaining messages, earl…
maheeraeron Apr 30, 2025
35fe96c
restore nvram spec_services module to undo pub, plumb new flush flag …
maheeraeron Apr 30, 2025
b86d0e0
Merge branch 'main' into user/maheeraeron/efi-diagnostics
maheeraeron Apr 30, 2025
2518300
Unpub nvram subservice
maheeraeron Apr 30, 2025
d8ac1a3
Fixed test
maheeraeron Apr 30, 2025
153f8b1
Fix test using frontpage to prevent halting
maheeraeron Apr 30, 2025
8fb909f
Add and require doc comments
maheeraeron May 2, 2025
66e8dce
Changed signatures to [u8; 4], removed anyhow and denoted the variabl…
maheeraeron May 14, 2025
0fb7a5a
cargo toml and lock fixes
maheeraeron May 14, 2025
a5daedd
Attempted to use a closue to deduplicate processing of completed logs
maheeraeron May 14, 2025
5e32bf9
Dont take gm by value
maheeraeron May 14, 2025
891c57c
Remove call to process diagnostics by signal runtime
maheeraeron May 16, 2025
4ccfe4c
Remove colon in EFI log entry message
maheeraeron May 16, 2025
7c622ba
Update UEFI version
maheeraeron May 16, 2025
6502fea
Update mu_msvm version w/ secure boot fix
maheeraeron May 21, 2025
397234a
Merge branch 'main' into user/maheeraeron/efi-diagnostics
maheeraeron May 21, 2025
18a8dae
use alpha mu_msvm
maheeraeron May 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion flowey/flowey_lib_hvlite/src/_jobs/cfg_versions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub const MDBOOK: &str = "0.4.40";
pub const MDBOOK_ADMONISH: &str = "1.18.0";
pub const MDBOOK_MERMAID: &str = "0.14.0";
pub const RUSTUP_TOOLCHAIN: &str = "1.87.0";
pub const MU_MSVM: &str = "24.0.4";
pub const MU_MSVM: &str = "25.1.3-alpha";
pub const NEXTEST: &str = "0.9.74";
pub const NODEJS: &str = "18.x";
// N.B. Kernel version numbers for dev and stable branches are not directly
Expand Down
1 change: 0 additions & 1 deletion vm/devices/firmware/firmware_uefi/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ mesh.workspace = true
open_enum.workspace = true
pal_async.workspace = true
ucs2.workspace = true

async-trait.workspace = true
bitfield-struct.workspace = true
der = { workspace = true, features = ["derive", "alloc", "oid"], optional = true }
Expand Down
15 changes: 15 additions & 0 deletions vm/devices/firmware/firmware_uefi/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ struct UefiDeviceServices {
generation_id: service::generation_id::GenerationIdServices,
#[inspect(mut)]
time: service::time::TimeServices,
diagnostics: service::diagnostics::DiagnosticsServices,
}

// Begin and end range are inclusive.
Expand Down Expand Up @@ -199,6 +200,7 @@ impl UefiDevice {
generation_id_deps,
),
time: service::time::TimeServices::new(time_source),
diagnostics: service::diagnostics::DiagnosticsServices::new(),
},
};
Ok(uefi)
Expand Down Expand Up @@ -252,6 +254,8 @@ impl UefiDevice {
);
}
}
UefiCommand::SET_EFI_DIAGNOSTICS_GPA => self.service.diagnostics.set_gpa(data),
UefiCommand::PROCESS_EFI_DIAGNOSTICS => self.process_diagnostics(),
_ => tracelimit::warn_ratelimited!(addr, data, "unknown uefi write"),
}
}
Expand Down Expand Up @@ -400,6 +404,10 @@ open_enum::open_enum! {
WATCHDOG_RESOLUTION = 0x28,
WATCHDOG_COUNT = 0x29,

// EFI Diagnostics
SET_EFI_DIAGNOSTICS_GPA = 0x2B,
PROCESS_EFI_DIAGNOSTICS = 0x2C,

// Event Logging (Windows 8.1 MQ/M0)
EVENT_LOG_FLUSH = 0x30,

Expand Down Expand Up @@ -432,6 +440,7 @@ mod save_restore {
use vmcore::save_restore::SaveRestore;

mod state {
use crate::service::diagnostics::DiagnosticsServices;
use crate::service::event_log::EventLogServices;
use crate::service::generation_id::GenerationIdServices;
use crate::service::nvram::NvramServices;
Expand All @@ -457,6 +466,8 @@ mod save_restore {
pub generation_id: <GenerationIdServices as SaveRestore>::SavedState,
#[mesh(6)]
pub time: <TimeServices as SaveRestore>::SavedState,
#[mesh(7)]
pub diagnostics: <DiagnosticsServices as SaveRestore>::SavedState,
}
}

Expand All @@ -475,6 +486,7 @@ mod save_restore {
uefi_watchdog,
generation_id,
time,
diagnostics,
},
address,
} = self;
Expand All @@ -487,6 +499,7 @@ mod save_restore {
watchdog: uefi_watchdog.save()?,
generation_id: generation_id.save()?,
time: time.save()?,
diagnostics: diagnostics.save()?,
})
}

Expand All @@ -499,6 +512,7 @@ mod save_restore {
watchdog,
generation_id,
time,
diagnostics,
} = state;

self.address = address;
Expand All @@ -508,6 +522,7 @@ mod save_restore {
self.service.uefi_watchdog.restore(watchdog)?;
self.service.generation_id.restore(generation_id)?;
self.service.time.restore(time)?;
self.service.diagnostics.restore(diagnostics)?;

Ok(())
}
Expand Down
Loading
Loading