1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 #include <console/console.h>
4 #include <fsp/util.h>
5 #include <lib.h>
6
fsp_display_upd_value(const char * name,size_t size,uint64_t old,uint64_t new)7 void fsp_display_upd_value(const char *name, size_t size, uint64_t old,
8 uint64_t new)
9 {
10 size *= 2;
11 if (old == new) {
12 printk(BIOS_SPEW, " 0x%0*llx: %s\n", (int)size, new, name);
13 } else {
14 printk(BIOS_SPEW, " 0x%0*llx --> 0x%0*llx: %s\n", (int)size,
15 old, (int)size, new, name);
16 }
17 }
18
fspm_display_arch_params(const FSPM_ARCHx_UPD * old,const FSPM_ARCHx_UPD * new)19 static void fspm_display_arch_params(const FSPM_ARCHx_UPD *old,
20 const FSPM_ARCHx_UPD *new)
21 {
22 /* Display the architectural parameters for MemoryInit */
23 printk(BIOS_SPEW, "Architectural UPD values for MemoryInit at: %p\n",
24 new);
25 fsp_display_upd_value("Revision", sizeof(old->Revision),
26 old->Revision, new->Revision);
27 fsp_display_upd_value("NvsBufferPtr", sizeof(old->NvsBufferPtr),
28 (uintptr_t)old->NvsBufferPtr,
29 (uintptr_t)new->NvsBufferPtr);
30 fsp_display_upd_value("StackBase", sizeof(old->StackBase),
31 (uintptr_t)old->StackBase,
32 (uintptr_t)new->StackBase);
33 fsp_display_upd_value("StackSize", sizeof(old->StackSize),
34 old->StackSize, new->StackSize);
35 fsp_display_upd_value("BootLoaderTolumSize",
36 sizeof(old->BootLoaderTolumSize),
37 old->BootLoaderTolumSize, new->BootLoaderTolumSize);
38 fsp_display_upd_value("BootMode", sizeof(old->BootMode),
39 old->BootMode, new->BootMode);
40 }
41
42 /* Display the UPD parameters for MemoryInit */
soc_display_fspm_upd_params(const FSPM_UPD * fspm_old_upd,const FSPM_UPD * fspm_new_upd)43 __weak void soc_display_fspm_upd_params(
44 const FSPM_UPD *fspm_old_upd,
45 const FSPM_UPD *fspm_new_upd)
46 {
47 printk(BIOS_SPEW, "UPD values for MemoryInit:\n");
48 hexdump(fspm_new_upd, sizeof(*fspm_new_upd));
49 }
50
fspm_display_upd_values(const FSPM_UPD * old,const FSPM_UPD * new)51 void fspm_display_upd_values(const FSPM_UPD *old,
52 const FSPM_UPD *new)
53 {
54 /* Display the UPD data */
55 fspm_display_arch_params(&old->FspmArchUpd, &new->FspmArchUpd);
56 soc_display_fspm_upd_params(old, new);
57 }
58
59 /* Display the UPD parameters for SiliconInit */
soc_display_fsps_upd_params(const FSPS_UPD * fsps_old_upd,const FSPS_UPD * fsps_new_upd)60 __weak void soc_display_fsps_upd_params(
61 const FSPS_UPD *fsps_old_upd,
62 const FSPS_UPD *fsps_new_upd)
63 {
64 printk(BIOS_SPEW, "UPD values for SiliconInit:\n");
65 hexdump(fsps_new_upd, sizeof(*fsps_new_upd));
66 }
67