soc/apollolake: Add ramstage hook
A hook for romstage is already existing but not for ramstage.
It's very useful for debugging as it allows to run code
for testing purposes by the mainboard. Also, it allows to
run configuration code or configure FSP options, which
don't have a devicetree option.
Change-Id: I9edc543943c5cbc696fc6c615cb77ef68294c980
Signed-off-by: Felix Singer <felix.singer@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/32543
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Patrick Rudolph <siro@das-labor.org>
diff --git a/src/soc/intel/apollolake/chip.c b/src/soc/intel/apollolake/chip.c
index c3de4ee..279551f 100644
--- a/src/soc/intel/apollolake/chip.c
+++ b/src/soc/intel/apollolake/chip.c
@@ -50,6 +50,7 @@
#include <soc/systemagent.h>
#include <spi-generic.h>
#include <timer.h>
+#include <soc/ramstage.h>
#include "chip.h"
@@ -762,6 +763,8 @@
/* Set VTD feature according to devicetree */
silconfig->VtdEnable = cfg->enable_vtd;
+
+ mainboard_silicon_init_params(silconfig);
}
struct chip_operations soc_intel_apollolake_ops = {
@@ -879,4 +882,10 @@
fast_spi_init();
}
+__weak
+void mainboard_silicon_init_params(FSP_S_CONFIG *silconfig)
+{
+ printk(BIOS_DEBUG, "WEAK: %s/%s called\n", __FILE__, __func__);
+}
+
BOOT_STATE_INIT_ENTRY(BS_PRE_DEVICE, BS_ON_ENTRY, spi_flash_init_cb, NULL);
diff --git a/src/soc/intel/apollolake/include/soc/ramstage.h b/src/soc/intel/apollolake/include/soc/ramstage.h
new file mode 100644
index 0000000..287f2ff
--- /dev/null
+++ b/src/soc/intel/apollolake/include/soc/ramstage.h
@@ -0,0 +1,26 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2015 Intel Corp.
+ * (Written by Andrey Petrov <andrey.petrov@intel.com> for Intel Corp.)
+ * Copyright (C) 2019 9elements Agency GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef _SOC_APOLLOLAKE_RAMSTAGE_H_
+#define _SOC_APOLLOLAKE_RAMSTAGE_H_
+
+#include <fsp/api.h>
+
+void mainboard_silicon_init_params(FSP_S_CONFIG *silconfig);
+
+#endif /* _SOC_APOLLOLAKE_RAMSTAGE_H_ */