@@ -282,25 +282,15 @@ int main() {
282
282
283
283
bi_decl (bi_ptr_int32 (0 , 0 , data_start_addr , 0x20000000 ));
284
284
bi_decl (bi_ptr_int32 (0 , 0 , data_size , 0x78000 ));
285
- bi_decl (bi_ptr_int32 (0 , 0 , iv0 , 0 ));
286
- bi_decl (bi_ptr_int32 (0 , 0 , iv1 , 1 ));
287
- bi_decl (bi_ptr_int32 (0 , 0 , iv2 , 2 ));
288
- bi_decl (bi_ptr_int32 (0 , 0 , iv3 , 3 ));
285
+ bi_decl (bi_ptr_string (0 , 0 , iv , "0123456789abcdef" , 17 ))
289
286
bi_decl (bi_ptr_int32 (0 , 0 , otp_key_page , 30 ));
290
287
291
- // Initialise IV from binary info words
292
- uint8_t iv [16 ];
293
- memcpy (iv , (void * )& iv0 , sizeof (iv0 ));
294
- memcpy (iv + 4 , (void * )& iv1 , sizeof (iv1 ));
295
- memcpy (iv + 8 , (void * )& iv2 , sizeof (iv2 ));
296
- memcpy (iv + 12 , (void * )& iv3 , sizeof (iv3 ));
297
-
298
288
// Initialise random state
299
289
init_rstate ();
300
290
301
291
// Read key directly from OTP - guarded reads will throw a bus fault if there are any errors
302
292
uint16_t * otp_data = (uint16_t * )OTP_DATA_GUARDED_BASE ;
303
- decrypt ((uint8_t * )& (otp_data [(OTP_CMD_ROW_BITS & (otp_key_page * 0x40 ))]), iv , (void * )data_start_addr , data_size /16 );
293
+ decrypt ((uint8_t * )& (otp_data [(OTP_CMD_ROW_BITS & (otp_key_page * 0x40 ))]), ( uint8_t * ) iv , (void * )data_start_addr , data_size /16 );
304
294
otp_hw -> sw_lock [otp_key_page ] = 0xf ;
305
295
306
296
// Increase stack limit by 0x100
0 commit comments