Message ID | 20191213060936.1105109-1-stewart@flamingspork.com |
---|---|
State | Superseded |
Headers | show |
Series | platform: add Raptor Blackbird support | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch master (d75e82dbfbb9443efeb3f9a5921ac23605aab469) |
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot | success | Test snowpatch/job/snowpatch-skiboot on branch master |
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot-dco | success | Signed-off-by present |
On Thu, 12 Dec 2019 22:09:36 -0800 Stewart Smith <stewart@flamingspork.com> wrote: > Based off the Raptor patch: > https://git.raptorcs.com/git/blackbird-skiboot/commit/?id=c81f9d66592dc2a7cf7f6c59c3def5cee0638c1f > > Notable changes are slot names matching what's silkscreened on the > board. See > https://i1.wp.com/www.flamingspork.com/blog/wp-content/uploads/2019/12/IMG_4006-scaled.jpg > for a photo of the actual board. > > I haven't included the port 80h bit as I haven't worked out how to > probe that from the BMC to test. > > Boot tested, seems good. > > Signed-off-by: Stewart Smith <stewart@flamingspork.com> LGTM Reviewed-by: Dan Horák <dan@danny.cz> Dan > --- > platforms/astbmc/Makefile.inc | 3 +- > platforms/astbmc/blackbird.c | 66 ++++++++++++++++++++++++++++++++++ > + 2 files changed, 68 insertions(+), 1 deletion(-) > create mode 100644 platforms/astbmc/blackbird.c > > diff --git a/platforms/astbmc/Makefile.inc > b/platforms/astbmc/Makefile.inc index fd4eaeac..e0f8760d 100644 > --- a/platforms/astbmc/Makefile.inc > +++ b/platforms/astbmc/Makefile.inc > @@ -6,7 +6,8 @@ ASTBMC_OBJS = pnor.o common.o slots.o \ > garrison.o barreleye.o \ > witherspoon.o zaius.o romulus.o p9dsu.o \ > vesnin.o nicole.o mihawk.o\ > - talos.o swift.o > + talos.o blackbird.o \ > + swift.o > > ASTBMC = $(PLATDIR)/astbmc/built-in.a > $(ASTBMC): $(ASTBMC_OBJS:%=$(PLATDIR)/astbmc/%) > diff --git a/platforms/astbmc/blackbird.c > b/platforms/astbmc/blackbird.c new file mode 100644 > index 00000000..8817b8c5 > --- /dev/null > +++ b/platforms/astbmc/blackbird.c > @@ -0,0 +1,66 @@ > +// SPDX-License-Identifier: Apache-2.0 > +/* Copyright 2017 IBM Corp. > + * Copyright 2018-2019 Raptor Engineering, LLC > + * Copyright 2019 Stewart Smith > + */ > + > +#include <skiboot.h> > +#include <device.h> > +#include <console.h> > +#include <chip.h> > +#include <ipmi.h> > +#include <psi.h> > + > +#include "astbmc.h" > + > +ST_PLUGGABLE(blackbird_cpu1_slot1, "SLOT1 PCIE 4.0 X16"); > +ST_PLUGGABLE(blackbird_cpu1_slot2, "SLOT2 PCIE 4.0 X8"); > + > +ST_BUILTIN_DEV(blackbird_builtin_sata, "Builtin SATA"); > +ST_BUILTIN_DEV(blackbird_builtin_usb, "Builtin USB"); > +ST_BUILTIN_DEV(blackbird_builtin_ethernet, "Builtin Ethernet"); > +ST_BUILTIN_DEV(blackbird_builtin_bmc, "BMC"); > + > +static const struct slot_table_entry blackbird_phb_table[] = { > + ST_PHB_ENTRY(0, 0, blackbird_cpu1_slot1), > + ST_PHB_ENTRY(0, 1, blackbird_cpu1_slot2), > + > + ST_PHB_ENTRY(0, 2, blackbird_builtin_sata), > + ST_PHB_ENTRY(0, 3, blackbird_builtin_usb), > + ST_PHB_ENTRY(0, 4, blackbird_builtin_ethernet), > + ST_PHB_ENTRY(0, 5, blackbird_builtin_bmc), > + > + { .etype = st_end }, > +}; > + > +static bool blackbird_probe(void) > +{ > + if (!dt_node_is_compatible(dt_root, "rcs,blackbird")) > + return false; > + > + /* Lot of common early inits here */ > + astbmc_early_init(); > + > + /* Setup UART for use by OPAL (Linux hvc) */ > + uart_set_console_policy(UART_CONSOLE_OPAL); > + > + slot_table_init(blackbird_phb_table); > + > + return true; > +} > + > +DECLARE_PLATFORM(blackbird) = { > + .name = "Blackbird", > + .probe = blackbird_probe, > + .init = astbmc_init, > + .start_preload_resource = > flash_start_preload_resource, > + .resource_loaded = flash_resource_loaded, > + .bmc = &bmc_plat_ast2500_openbmc, > + .pci_get_slot_info = slot_table_get_slot_info, > + .pci_probe_complete = check_all_slot_table, > + .cec_power_down = astbmc_ipmi_power_down, > + .cec_reboot = astbmc_ipmi_reboot, > + .elog_commit = ipmi_elog_commit, > + .exit = astbmc_exit, > + .terminate = ipmi_terminate, > +}; > -- > 2.23.0 > > _______________________________________________ > Skiboot mailing list > Skiboot@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/skiboot
diff --git a/platforms/astbmc/Makefile.inc b/platforms/astbmc/Makefile.inc index fd4eaeac..e0f8760d 100644 --- a/platforms/astbmc/Makefile.inc +++ b/platforms/astbmc/Makefile.inc @@ -6,7 +6,8 @@ ASTBMC_OBJS = pnor.o common.o slots.o \ garrison.o barreleye.o \ witherspoon.o zaius.o romulus.o p9dsu.o \ vesnin.o nicole.o mihawk.o\ - talos.o swift.o + talos.o blackbird.o \ + swift.o ASTBMC = $(PLATDIR)/astbmc/built-in.a $(ASTBMC): $(ASTBMC_OBJS:%=$(PLATDIR)/astbmc/%) diff --git a/platforms/astbmc/blackbird.c b/platforms/astbmc/blackbird.c new file mode 100644 index 00000000..8817b8c5 --- /dev/null +++ b/platforms/astbmc/blackbird.c @@ -0,0 +1,66 @@ +// SPDX-License-Identifier: Apache-2.0 +/* Copyright 2017 IBM Corp. + * Copyright 2018-2019 Raptor Engineering, LLC + * Copyright 2019 Stewart Smith + */ + +#include <skiboot.h> +#include <device.h> +#include <console.h> +#include <chip.h> +#include <ipmi.h> +#include <psi.h> + +#include "astbmc.h" + +ST_PLUGGABLE(blackbird_cpu1_slot1, "SLOT1 PCIE 4.0 X16"); +ST_PLUGGABLE(blackbird_cpu1_slot2, "SLOT2 PCIE 4.0 X8"); + +ST_BUILTIN_DEV(blackbird_builtin_sata, "Builtin SATA"); +ST_BUILTIN_DEV(blackbird_builtin_usb, "Builtin USB"); +ST_BUILTIN_DEV(blackbird_builtin_ethernet, "Builtin Ethernet"); +ST_BUILTIN_DEV(blackbird_builtin_bmc, "BMC"); + +static const struct slot_table_entry blackbird_phb_table[] = { + ST_PHB_ENTRY(0, 0, blackbird_cpu1_slot1), + ST_PHB_ENTRY(0, 1, blackbird_cpu1_slot2), + + ST_PHB_ENTRY(0, 2, blackbird_builtin_sata), + ST_PHB_ENTRY(0, 3, blackbird_builtin_usb), + ST_PHB_ENTRY(0, 4, blackbird_builtin_ethernet), + ST_PHB_ENTRY(0, 5, blackbird_builtin_bmc), + + { .etype = st_end }, +}; + +static bool blackbird_probe(void) +{ + if (!dt_node_is_compatible(dt_root, "rcs,blackbird")) + return false; + + /* Lot of common early inits here */ + astbmc_early_init(); + + /* Setup UART for use by OPAL (Linux hvc) */ + uart_set_console_policy(UART_CONSOLE_OPAL); + + slot_table_init(blackbird_phb_table); + + return true; +} + +DECLARE_PLATFORM(blackbird) = { + .name = "Blackbird", + .probe = blackbird_probe, + .init = astbmc_init, + .start_preload_resource = flash_start_preload_resource, + .resource_loaded = flash_resource_loaded, + .bmc = &bmc_plat_ast2500_openbmc, + .pci_get_slot_info = slot_table_get_slot_info, + .pci_probe_complete = check_all_slot_table, + .cec_power_down = astbmc_ipmi_power_down, + .cec_reboot = astbmc_ipmi_reboot, + .elog_commit = ipmi_elog_commit, + .exit = astbmc_exit, + .terminate = ipmi_terminate, +};
Based off the Raptor patch: https://git.raptorcs.com/git/blackbird-skiboot/commit/?id=c81f9d66592dc2a7cf7f6c59c3def5cee0638c1f Notable changes are slot names matching what's silkscreened on the board. See https://i1.wp.com/www.flamingspork.com/blog/wp-content/uploads/2019/12/IMG_4006-scaled.jpg for a photo of the actual board. I haven't included the port 80h bit as I haven't worked out how to probe that from the BMC to test. Boot tested, seems good. Signed-off-by: Stewart Smith <stewart@flamingspork.com> --- platforms/astbmc/Makefile.inc | 3 +- platforms/astbmc/blackbird.c | 66 +++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 platforms/astbmc/blackbird.c