@@ -26,7 +26,7 @@ use crate::capsule;
26
26
use crate :: capsule_content:: {
27
27
find_bios_version, find_ec_in_bios_cap, find_pd_in_bios_cap, find_retimer_version,
28
28
} ;
29
- use crate :: ccgx:: device:: { PdController , PdPort } ;
29
+ use crate :: ccgx:: device:: { FwMode , PdController , PdPort } ;
30
30
#[ cfg( feature = "hidapi" ) ]
31
31
use crate :: ccgx:: hid:: { check_ccg_fw_version, find_devices, DP_CARD_PID , HDMI_CARD_PID } ;
32
32
use crate :: ccgx:: { self , SiliconId :: * } ;
@@ -47,7 +47,7 @@ use crate::smbios::{dmidecode_string_val, get_smbios, is_framework};
47
47
#[ cfg( feature = "uefi" ) ]
48
48
use crate :: uefi:: enable_page_break;
49
49
use crate :: util;
50
- use crate :: util:: Config ;
50
+ use crate :: util:: { Config , Platform } ;
51
51
#[ cfg( feature = "hidapi" ) ]
52
52
use hidapi:: HidApi ;
53
53
use sha2:: { Digest , Sha256 , Sha384 , Sha512 } ;
@@ -289,6 +289,14 @@ fn flash_dp_hdmi_card(pd_bin_path: &str) {
289
289
}
290
290
}
291
291
292
+ fn active_mode ( mode : & FwMode , reference : FwMode ) -> & ' static str {
293
+ if mode == & reference {
294
+ " (Active)"
295
+ } else {
296
+ ""
297
+ }
298
+ }
299
+
292
300
fn print_versions ( ec : & CrosEc ) {
293
301
println ! ( "UEFI BIOS" ) ;
294
302
if let Some ( smbios) = get_smbios ( ) {
@@ -322,24 +330,57 @@ fn print_versions(ec: &CrosEc) {
322
330
println ! ( "PD Controllers" ) ;
323
331
324
332
if let Ok ( pd_versions) = ccgx:: get_pd_controller_versions ( ec) {
333
+ let right = & pd_versions. controller01 ;
334
+ let left = & pd_versions. controller23 ;
325
335
println ! ( " Right (01)" ) ;
326
- println ! (
327
- " Main App: {}" ,
328
- pd_versions. controller01. main_fw. app
329
- ) ;
330
- println ! (
331
- " Backup App: {}" ,
332
- pd_versions. controller01. backup_fw. app
333
- ) ;
336
+ // let active_mode =
337
+ if let Some ( Platform :: IntelGen11 ) = smbios:: get_platform ( ) {
338
+ println ! (
339
+ " Main: {}{}" ,
340
+ right. main_fw. base,
341
+ active_mode( & right. active_fw, FwMode :: MainFw )
342
+ ) ;
343
+ println ! (
344
+ " Backup: {}{}" ,
345
+ right. backup_fw. base,
346
+ active_mode( & right. active_fw, FwMode :: BackupFw )
347
+ ) ;
348
+ } else {
349
+ println ! (
350
+ " Main: {}{}" ,
351
+ right. main_fw. app,
352
+ active_mode( & right. active_fw, FwMode :: MainFw )
353
+ ) ;
354
+ println ! (
355
+ " Backup: {}{}" ,
356
+ right. backup_fw. app,
357
+ active_mode( & right. active_fw, FwMode :: BackupFw )
358
+ ) ;
359
+ }
334
360
println ! ( " Left (23)" ) ;
335
- println ! (
336
- " Main App: {}" ,
337
- pd_versions. controller23. main_fw. app
338
- ) ;
339
- println ! (
340
- " Backup App: {}" ,
341
- pd_versions. controller23. backup_fw. app
342
- ) ;
361
+ if let Some ( Platform :: IntelGen11 ) = smbios:: get_platform ( ) {
362
+ println ! (
363
+ " Main: {}{}" ,
364
+ left. main_fw. base,
365
+ active_mode( & left. active_fw, FwMode :: MainFw )
366
+ ) ;
367
+ println ! (
368
+ " Backup: {}{}" ,
369
+ left. backup_fw. base,
370
+ active_mode( & left. active_fw, FwMode :: BackupFw )
371
+ ) ;
372
+ } else {
373
+ println ! (
374
+ " Main: {}{}" ,
375
+ left. main_fw. app,
376
+ active_mode( & left. active_fw, FwMode :: MainFw )
377
+ ) ;
378
+ println ! (
379
+ " Backup: {}{}" ,
380
+ left. backup_fw. app,
381
+ active_mode( & left. active_fw, FwMode :: BackupFw )
382
+ ) ;
383
+ }
343
384
} else if let Ok ( pd_versions) = power:: read_pd_version ( ec) {
344
385
// As fallback try to get it from the EC. But not all EC versions have this command
345
386
println ! ( " Right (01): {}" , pd_versions. controller01. app) ;
@@ -486,7 +527,7 @@ pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 {
486
527
487
528
// Must be run before any application code to set the config
488
529
if args. pd_addrs . is_some ( ) && args. pd_ports . is_some ( ) && args. has_mec . is_some ( ) {
489
- let platform = util :: Platform :: GenericFramework (
530
+ let platform = Platform :: GenericFramework (
490
531
args. pd_addrs . unwrap ( ) ,
491
532
args. pd_ports . unwrap ( ) ,
492
533
args. has_mec . unwrap ( ) ,
@@ -898,6 +939,7 @@ fn selftest(ec: &CrosEc) -> Option<()> {
898
939
println ! ( " Getting AC info from EC" ) ;
899
940
// All our laptops have at least 4 PD ports so far
900
941
if power:: get_pd_info ( ec, 4 ) . iter ( ) . any ( |x| x. is_err ( ) ) {
942
+ println ! ( " Failed to get PD Info from EC" ) ;
901
943
return None ;
902
944
}
903
945
0 commit comments