@@ -253,6 +253,7 @@ void RAMFUNCTION wolfBoot_start(void)
253253#endif
254254 struct wolfBoot_image os_image ;
255255 int pA_ver = 0 , pB_ver = 0 ;
256+ uint32_t pA_ver_u = 0U , pB_ver_u = 0U ;
256257 uint32_t cur_part = 0 ;
257258 int ret = -1 ;
258259 int selected ;
@@ -346,11 +347,16 @@ void RAMFUNCTION wolfBoot_start(void)
346347 wolfBoot_panic ();
347348 }
348349
349- wolfBoot_printf ("Versions, A:%u B:%u\r\n" , pA_ver , pB_ver );
350- max_ver = (pB_ver > pA_ver ) ? (uint32_t )pB_ver : (uint32_t )pA_ver ;
350+ if (pA_ver > 0 )
351+ pA_ver_u = (uint32_t )pA_ver ;
352+ if (pB_ver > 0 )
353+ pB_ver_u = (uint32_t )pB_ver ;
354+
355+ wolfBoot_printf ("Versions, A:%u B:%u\r\n" , pA_ver_u , pB_ver_u );
356+ max_ver = (pB_ver_u > pA_ver_u ) ? pB_ver_u : pA_ver_u ;
351357
352358 /* Choose partition with higher version */
353- selected = (pB_ver > pA_ver ) ? 1 : 0 ;
359+ selected = (pB_ver_u > pA_ver_u ) ? 1 : 0 ;
354360
355361#ifdef WOLFBOOT_FSP
356362 stage2_params = stage2_get_parameters ();
@@ -372,7 +378,7 @@ void RAMFUNCTION wolfBoot_start(void)
372378 cur_part = BOOT_PART_A ;
373379#ifndef ALLOW_DOWNGRADE
374380 {
375- uint32_t cur_ver = selected ? ( uint32_t ) pB_ver : ( uint32_t ) pA_ver ;
381+ uint32_t cur_ver = selected ? pB_ver_u : pA_ver_u ;
376382 if ((max_ver > 0U ) && (cur_ver < max_ver )) {
377383 wolfBoot_printf ("Rollback to lower version not allowed\r\n" );
378384 wolfBoot_panic ();
0 commit comments