@@ -2495,6 +2495,40 @@ pub fn analyze_capsule(data: &[u8]) -> Option<capsule::EfiCapsuleHeader> {
24952495 _ => { }
24962496 }
24972497
2498+ // Extract embedded firmware versions for BIOS capsules
2499+ match guid_kind {
2500+ esrt:: FrameworkGuidKind :: TglBios
2501+ | esrt:: FrameworkGuidKind :: AdlBios
2502+ | esrt:: FrameworkGuidKind :: RplBios
2503+ | esrt:: FrameworkGuidKind :: MtlBios
2504+ | esrt:: FrameworkGuidKind :: Fw12RplBios
2505+ | esrt:: FrameworkGuidKind :: Fl16Bios
2506+ | esrt:: FrameworkGuidKind :: Amd16Ai300Bios
2507+ | esrt:: FrameworkGuidKind :: Amd13Ryzen7040Bios
2508+ | esrt:: FrameworkGuidKind :: Amd13Ai300Bios
2509+ | esrt:: FrameworkGuidKind :: DesktopAmdAi300Bios => {
2510+ if let Some ( cap) = find_bios_version ( data) {
2511+ println ! ( "BIOS" ) ;
2512+ println ! ( " Platform: {:>18}" , cap. platform) ;
2513+ println ! ( " Version: {:>18}" , cap. version) ;
2514+ }
2515+ if let Some ( ec_bin) = find_ec_in_bios_cap ( data) {
2516+ println ! ( "Embedded EC" ) ;
2517+ if let Some ( ver) = ec_binary:: read_ec_version ( ec_bin, true ) {
2518+ println ! ( " RO Version: {:>18}" , ver. version) ;
2519+ }
2520+ if let Some ( ver) = ec_binary:: read_ec_version ( ec_bin, false ) {
2521+ println ! ( " RW Version: {:>18}" , ver. version) ;
2522+ }
2523+ }
2524+ if let Some ( pd_bin) = find_pd_in_bios_cap ( data) {
2525+ println ! ( "Embedded PD" ) ;
2526+ analyze_ccgx_pd_fw ( pd_bin) ;
2527+ }
2528+ }
2529+ _ => { }
2530+ }
2531+
24982532 Some ( header)
24992533}
25002534
0 commit comments