[Skiboot] [PATCH] witherspoon: Fix VPD EEPROM type

Oliver O'Halloran oohall at gmail.com
Thu Jan 25 09:53:10 AEDT 2018


There are userspace tools that update the planar VPD via the sysfs
interface. Currently we do not get correct information from hostboot
about the exact type of the EEPROM so we need to manually fix it up
here. This needs to be done as a platform specific fix since there is
not standardised VPD EEPROM type.

Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
---
 platforms/astbmc/witherspoon.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/platforms/astbmc/witherspoon.c b/platforms/astbmc/witherspoon.c
index 9460b6d15fb4..cb09eefe048c 100644
--- a/platforms/astbmc/witherspoon.c
+++ b/platforms/astbmc/witherspoon.c
@@ -30,6 +30,24 @@
 
 #include "astbmc.h"
 
+/*
+ * HACK: Hostboot doesn't export the correct data for the system VPD EEPROM
+ *       for this system. So we need to work around it here.
+ */
+static void vpd_dt_fixup(void)
+{
+	struct dt_node *n = dt_find_by_path(dt_root,
+		"/xscom at 603fc00000000/i2cm at a2000/i2c-bus at 0/eeprom at 50");
+
+	if (n) {
+		dt_check_del_prop(n, "compatible");
+		dt_add_property_string(n, "compatible", "atmel,24c512");
+
+		dt_check_del_prop(n, "label");
+		dt_add_property_string(n, "label", "system-vpd");
+	}
+}
+
 static bool witherspoon_probe(void)
 {
 	if (!dt_node_is_compatible(dt_root, "ibm,witherspoon"))
@@ -41,6 +59,8 @@ static bool witherspoon_probe(void)
 	/* Setup UART for use by OPAL (Linux hvc) */
 	uart_set_console_policy(UART_CONSOLE_OPAL);
 
+	vpd_dt_fixup();
+
 	return true;
 }
 
-- 
2.9.5



More information about the Skiboot mailing list