summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Rhodes <sean@starlabs.systems>2023-02-17 16:42:42 +0000
committerFelix Held <felix-coreboot@felixheld.de>2023-04-04 14:09:48 +0000
commit5103b87a4d7b0b84a9773f9dc19a36caa7d4344f (patch)
tree7e20ba81087fe0519cb70632c176fceae299af6b
parentdb8ef01e300943fb9bd08c0f988d91c6cc326616 (diff)
mb/starlabs/starbook/adl: Add an option to enable Hot Plug
Some third-party SSDs, from Samsung and WD, such as the 990 Pro and WD Black 850X aren't initialised by coreboot, seemingly as coreboot is too quick; debug builds work, and enabling hotplug does. Add a cmos option `pci_hot_plug`, defaulting to enabled to allow these SSDs to work. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: I680211bc87153a5e6005d58040a94725c0973451 Reviewed-on: https://review.coreboot.org/c/coreboot/+/73092 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r--src/mainboard/starlabs/starbook/cmos.default1
-rw-r--r--src/mainboard/starlabs/starbook/cmos.layout1
-rw-r--r--src/mainboard/starlabs/starbook/variants/adl/Makefile.inc1
-rw-r--r--src/mainboard/starlabs/starbook/variants/adl/ramstage.c15
4 files changed, 18 insertions, 0 deletions
diff --git a/src/mainboard/starlabs/starbook/cmos.default b/src/mainboard/starlabs/starbook/cmos.default
index f1276cc6ed..151686ce44 100644
--- a/src/mainboard/starlabs/starbook/cmos.default
+++ b/src/mainboard/starlabs/starbook/cmos.default
@@ -12,6 +12,7 @@ wireless=Enable
webcam=Enable
microphone=Enable
legacy_8254_timer=Disable
+pci_hot_plug=Disable
# EC
kbl_timeout=30 seconds
fn_ctrl_swap=Disable
diff --git a/src/mainboard/starlabs/starbook/cmos.layout b/src/mainboard/starlabs/starbook/cmos.layout
index 887c0b21b9..9fc0b7ddf0 100644
--- a/src/mainboard/starlabs/starbook/cmos.layout
+++ b/src/mainboard/starlabs/starbook/cmos.layout
@@ -28,6 +28,7 @@ entries
512 1 e 1 webcam
520 1 e 1 microphone
528 1 e 1 legacy_8254_timer
+536 1 e 1 pci_hot_plug
# coreboot config options: EC
600 3 e 4 kbl_timeout
diff --git a/src/mainboard/starlabs/starbook/variants/adl/Makefile.inc b/src/mainboard/starlabs/starbook/variants/adl/Makefile.inc
index 2a505c35c7..9abc069b38 100644
--- a/src/mainboard/starlabs/starbook/variants/adl/Makefile.inc
+++ b/src/mainboard/starlabs/starbook/variants/adl/Makefile.inc
@@ -7,3 +7,4 @@ romstage-y += romstage.c
ramstage-y += devtree.c
ramstage-y += gpio.c
ramstage-y += hda_verb.c
+ramstage-y += ramstage.c
diff --git a/src/mainboard/starlabs/starbook/variants/adl/ramstage.c b/src/mainboard/starlabs/starbook/variants/adl/ramstage.c
new file mode 100644
index 0000000000..7accb1d365
--- /dev/null
+++ b/src/mainboard/starlabs/starbook/variants/adl/ramstage.c
@@ -0,0 +1,15 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <option.h>
+#include <soc/ramstage.h>
+
+
+void mainboard_silicon_init_params(FSP_S_CONFIG *supd)
+{
+ /*
+ * Enable Hot Plug on RP5 to slow down coreboot so that
+ * third-party drives are detected.
+ */
+ if (get_uint_option("pci_hot_plug", 0) == 1)
+ supd->PcieRpHotPlug[4] = 1;
+}