diff options
author | Oliver O'Halloran <oohall@gmail.com> | 2018-01-25 09:53:10 +1100 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2018-01-30 20:42:38 -0600 |
commit | 0e2541f1c6648d20174b6fe080649cee828a43a3 (patch) | |
tree | 80acdd5638d67c9604b3ad42afa695d9a0b04f6e | |
parent | b472f9238dac0f3a0d806595bef33a0187b2804f (diff) | |
download | skiboot-0e2541f1c6648d20174b6fe080649cee828a43a3.zip skiboot-0e2541f1c6648d20174b6fe080649cee828a43a3.tar.gz skiboot-0e2541f1c6648d20174b6fe080649cee828a43a3.tar.bz2 |
witherspoon: Fix VPD EEPROM type
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@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | platforms/astbmc/witherspoon.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/platforms/astbmc/witherspoon.c b/platforms/astbmc/witherspoon.c index 9460b6d..cb09eef 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@603fc00000000/i2cm@a2000/i2c-bus@0/eeprom@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; } |