Skip to content

Commit fb8dcba

Browse files
committed
--capsule: Show embedded FW versions if not H2O Capsule
Previously it would only work on H2O style capsules. Signed-off-by: Daniel Schaefer <dhs@frame.work>
1 parent bfa4ada commit fb8dcba

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

  • framework_lib/src/commandline

framework_lib/src/commandline/mod.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2425,6 +2425,40 @@ pub fn analyze_capsule(data: &[u8]) -> Option<capsule::EfiCapsuleHeader> {
24252425
_ => {}
24262426
}
24272427

2428+
// Extract embedded firmware versions for BIOS capsules
2429+
match guid_kind {
2430+
esrt::FrameworkGuidKind::TglBios
2431+
| esrt::FrameworkGuidKind::AdlBios
2432+
| esrt::FrameworkGuidKind::RplBios
2433+
| esrt::FrameworkGuidKind::MtlBios
2434+
| esrt::FrameworkGuidKind::Fw12RplBios
2435+
| esrt::FrameworkGuidKind::Fl16Bios
2436+
| esrt::FrameworkGuidKind::Amd16Ai300Bios
2437+
| esrt::FrameworkGuidKind::Amd13Ryzen7040Bios
2438+
| esrt::FrameworkGuidKind::Amd13Ai300Bios
2439+
| esrt::FrameworkGuidKind::DesktopAmdAi300Bios => {
2440+
if let Some(cap) = find_bios_version(data) {
2441+
println!("BIOS");
2442+
println!(" Platform: {:>18}", cap.platform);
2443+
println!(" Version: {:>18}", cap.version);
2444+
}
2445+
if let Some(ec_bin) = find_ec_in_bios_cap(data) {
2446+
println!("Embedded EC");
2447+
if let Some(ver) = ec_binary::read_ec_version(ec_bin, true) {
2448+
println!(" RO Version: {:>18}", ver.version);
2449+
}
2450+
if let Some(ver) = ec_binary::read_ec_version(ec_bin, false) {
2451+
println!(" RW Version: {:>18}", ver.version);
2452+
}
2453+
}
2454+
if let Some(pd_bin) = find_pd_in_bios_cap(data) {
2455+
println!("Embedded PD");
2456+
analyze_ccgx_pd_fw(pd_bin);
2457+
}
2458+
}
2459+
_ => {}
2460+
}
2461+
24282462
Some(header)
24292463
}
24302464

0 commit comments

Comments
 (0)