@@ -97,6 +97,8 @@ int fsp_machine_update_m_parameters(uint8_t *default_m_params,
9797 uint32_t mem_base , uint32_t mem_size );
9898int fsp_machine_update_s_parameters (uint8_t * default_s_params );
9999int post_temp_ram_init_cb (void );
100+ int fsp_pre_mem_init_cb (void );
101+ int fsp_pre_silicon_init_cb (void );
100102
101103/* from the linker */
102104extern uint8_t _start_fsp_t [];
@@ -422,6 +424,15 @@ static int fsp_silicon_init(struct fsp_info_header *fsp_info, uint8_t *fsp_s_bas
422424 status = fsp_machine_update_s_parameters (silicon_init_parameter );
423425 SiliconInit = (silicon_init_cb )(fsp_s_base + fsp_info -> FspSiliconInitEntryOffset );
424426
427+ #if defined(WOLFBOOT_DUMP_FSP_UPD )
428+ wolfBoot_printf ("Dumping fsps upd (%d bytes)" ENDLINE , (int )fsp_info -> CfgRegionSize );
429+ wolfBoot_print_hexstr (silicon_init_parameter , fsp_info -> CfgRegionSize , 16 );
430+ #endif
431+ status = fsp_pre_silicon_init_cb ();
432+ if (status != 0 ) {
433+ wolfBoot_printf ("pre silicon init cb returns %d" , status );
434+ panic ();
435+ }
425436 wolfBoot_printf ("call silicon..." ENDLINE );
426437 status = SiliconInit (silicon_init_parameter );
427438 if (status != EFI_SUCCESS ) {
@@ -718,6 +729,16 @@ void start(uint32_t stack_base, uint32_t stack_top, uint64_t timestamp,
718729 panic ();
719730 }
720731
732+ #if defined(WOLFBOOT_DUMP_FSP_UPD )
733+ wolfBoot_printf ("Dumping fspm udp (%d bytes)" ENDLINE , (int )fsp_m_info_header -> CfgRegionSize );
734+ wolfBoot_print_hexstr (udp_m_parameter , fsp_m_info_header -> CfgRegionSize , 16 );
735+ #endif
736+ status = fsp_pre_mem_init_cb ();
737+ if (status != 0 ) {
738+ wolfBoot_printf ("pre mem init cb returns %d" , status );
739+ panic ();
740+ }
741+
721742 wolfBoot_printf ("calling FspMemInit..." ENDLINE );
722743 MemoryInit = (memory_init_cb )(fsp_m_base +
723744 fsp_m_info_header -> FspMemoryInitEntryOffset );
0 commit comments