Skip to content

Commit 1959f19

Browse files
committed
fsp: add pre_mem and pre_silicon cbs()
1 parent 0b5f718 commit 1959f19

File tree

3 files changed

+40
-0
lines changed

3 files changed

+40
-0
lines changed

src/boot_x86_fsp.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ int fsp_machine_update_m_parameters(uint8_t *default_m_params,
9797
uint32_t mem_base, uint32_t mem_size);
9898
int fsp_machine_update_s_parameters(uint8_t *default_s_params);
9999
int 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 */
102104
extern 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);

src/x86/qemu_fsp.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,13 @@ int fsp_machine_update_m_parameters(uint8_t *default_m_params,
130130

131131
return 0;
132132
}
133+
134+
int fsp_pre_mem_init_cb(void)
135+
{
136+
return 0;
137+
}
138+
139+
int fsp_pre_silicon_init_cb(void)
140+
{
141+
return 0;
142+
}

src/x86/tgl_fsp.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,4 +1665,13 @@ int fsp_machine_update_m_parameters(uint8_t *default_m_params,
16651665
return 0;
16661666
}
16671667

1668+
int fsp_pre_mem_init_cb(void)
1669+
{
1670+
return 0;
1671+
}
1672+
1673+
int fsp_pre_silicon_init_cb(void)
1674+
{
1675+
return 0;
1676+
}
16681677
#endif /* TGL_FSP_H */

0 commit comments

Comments
 (0)