aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/init.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/core/init.c b/core/init.c
index 1ad747e..272a57a 100644
--- a/core/init.c
+++ b/core/init.c
@@ -505,7 +505,8 @@ void __noreturn load_and_boot_kernel(bool is_reboot)
ipmi_set_fw_progress_sensor(IPMI_FW_OS_BOOT);
- occ_pstates_init();
+ if (fsp_present())
+ occ_pstates_init();
if (!is_reboot) {
/* We wait for the nvram read to complete here so we can
@@ -1079,6 +1080,17 @@ void __noreturn __nomcount main_cpu_entry(const void *fdt)
op_display(OP_LOG, OP_MOD_INIT, 0x0002);
+ /*
+ * On some POWER9 BMC systems, we need to initialise the OCC
+ * before the NPU to facilitate NVLink/OpenCAPI presence
+ * detection, so we set it up as early as possible. On FSP
+ * systems, Hostboot starts booting the OCC later, so we delay
+ * OCC initialisation as late as possible to give it the
+ * maximum time to boot up.
+ */
+ if (!fsp_present())
+ occ_pstates_init();
+
pci_nvram_init();
preload_io_vpd();