@@ -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