@@ -25,6 +25,10 @@ INCBIN(applet, "applet-mdflash.bin");
25
25
#include "mdloader_common.h"
26
26
#include "mdloader_parser.h"
27
27
28
+ #define SMARTEEPROM_CONFIG 0xaeecffb1
29
+ #define USER_ROW_INVALID 0xFFFFFFFF
30
+ #define USER_ROW_REPAIR 0xfe9a9239
31
+
28
32
char verbose ;
29
33
char testmode ;
30
34
char first_device ;
@@ -479,27 +483,35 @@ uint8_t configure_smarteeprom(void)
479
483
for (int i = 0 ; i < 4 ; i ++ )
480
484
{
481
485
user_row [i ] = read_word (NVMCTRL_USER + i * 4 );
486
+ if (verbose ) printf ("SmartEEPROM: config - NVMCTRL_USER: 0x%u - 0x%08x.\n" , i , user_row [i ]);
482
487
}
483
488
484
489
NVMCTRL_USER_ROW_MAPPING1_Type * puser_row1 = (NVMCTRL_USER_ROW_MAPPING1_Type * )(& user_row [1 ]);
485
490
486
491
if (verbose ) printf ("SmartEEPROM: config - SBLK: 0x%04x - PSZ: 0x%03x.\n" , puser_row1 -> bit .SBLK , puser_row1 -> bit .PSZ );
487
492
488
- if ( puser_row1 -> bit . SBLK == SMARTEEPROM_TARGET_SBLK && puser_row1 -> bit . PSZ == SMARTEEPROM_TARGET_PSZ )
493
+ if (( puser_row1 -> reg == SMARTEEPROM_CONFIG ) && ( user_row [ 0 ] != USER_ROW_INVALID ) )
489
494
{
490
495
if (verbose ) printf ("SmartEEPROM: Configured!\n" );
491
496
return 1 ;
492
497
}
493
498
494
499
if (ignore_smarteeprom_config )
495
500
{
496
- printf ("SmartEEPROM: Your settings do not match the recommended values - Some functionality may not work as expected!" );
501
+ printf ("SmartEEPROM: Your settings do not match the recommended values - Some functionality may not work as expected!\n " );
497
502
return 1 ;
498
503
}
499
504
500
505
// Set SmartEEPROM Virtual Size.
501
- puser_row1 -> bit .SBLK = SMARTEEPROM_TARGET_SBLK ;
502
- puser_row1 -> bit .PSZ = SMARTEEPROM_TARGET_PSZ ;
506
+ puser_row1 -> reg = SMARTEEPROM_CONFIG ;
507
+
508
+ // Repair if we have a previous failure
509
+ if (user_row [0 ] == USER_ROW_INVALID )
510
+ {
511
+ printf ("SmartEEPROM: Setting additional user row.\n" );
512
+ user_row [0 ] = USER_ROW_REPAIR ;
513
+ }
514
+
503
515
return write_user_row (user_row );
504
516
}
505
517
0 commit comments