Message ID | 20210719132012.150948-28-hegdevasant@linux.vnet.ibm.com |
---|---|
State | Superseded |
Headers | show |
Series | P10 Enablement | expand |
On Mon, 19 Jul 2021 at 13:23, Vasant Hegde <hegdevasant@linux.vnet.ibm.com> wrote: > > From: Reza Arbab <arbab@linux.ibm.com> > > Signed-off-by: Reza Arbab <arbab@linux.ibm.com> > Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> > --- > platforms/astbmc/astbmc.h | 2 ++ > platforms/astbmc/common.c | 19 +++++++++++++++++-- > 2 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/platforms/astbmc/astbmc.h b/platforms/astbmc/astbmc.h > index 86631bc4e..00f221230 100644 > --- a/platforms/astbmc/astbmc.h > +++ b/platforms/astbmc/astbmc.h > @@ -87,9 +87,11 @@ static struct slot_table_entry st_name[] = \ > > extern const struct bmc_hw_config bmc_hw_ast2400; > extern const struct bmc_hw_config bmc_hw_ast2500; > +extern const struct bmc_hw_config bmc_hw_ast2600; > extern const struct bmc_platform bmc_plat_ast2400_ami; > extern const struct bmc_platform bmc_plat_ast2500_ami; > extern const struct bmc_platform bmc_plat_ast2500_openbmc; > +extern const struct bmc_platform bmc_plat_ast2600_openbmc; > > extern void astbmc_early_init(void); > extern int64_t astbmc_ipmi_reboot(void); > diff --git a/platforms/astbmc/common.c b/platforms/astbmc/common.c > index d96e070e5..83ef70ad3 100644 > --- a/platforms/astbmc/common.c > +++ b/platforms/astbmc/common.c > @@ -266,8 +266,9 @@ static void astbmc_fixup_dt_mbox(struct dt_node *lpc) > * can indicate they support mbox using the scratch register, or ipmi > * by configuring the hiomap ipmi command. If neither are configured > * for P8 then skiboot will drive the flash controller directly. > + * XXX P10 > */ > - if (proc_gen != proc_gen_p9 && !ast_scratch_reg_is_mbox()) > + if (proc_gen == proc_gen_p8 && !ast_scratch_reg_is_mbox()) > return; > > /* First check if the mbox interface is already there */ > @@ -478,7 +479,7 @@ void astbmc_early_init(void) > * never MBOX. Thus only populate the MBOX node on P9 to allow > * fallback. > */ > - if (proc_gen == proc_gen_p9) { > + if (proc_gen >= proc_gen_p9) { > astbmc_fixup_dt_mbox(dt_find_primary_lpc()); > ast_setup_sio_mbox(MBOX_IO_BASE, MBOX_LPC_IRQ); > } This part looks okay, the rainier BMC will talk without issue. > @@ -530,6 +531,14 @@ const struct bmc_hw_config bmc_hw_ast2500 = { > .mcr_scu_strap = 0x00000000, > }; > > +/* XXX P10: Update with Rainier values */ > +const struct bmc_hw_config bmc_hw_ast2600 = { > + .scu_revision_id = 0x05000303, > + .mcr_configuration = 0x11200756, > + .mcr_scu_mpll = 0x1008405F, > + .mcr_scu_strap = 0x000030E0, > +}; This one is a bit suspect. It won't cause any issue, only because the PCI id has changed, so the quirk code won't call quirk_astbmc_vga to populate the device tree. Probably best to omit it for now. > + > const struct bmc_platform bmc_plat_ast2400_ami = { > .name = "ast2400:ami", > .hw = &bmc_hw_ast2400, > @@ -547,3 +556,9 @@ const struct bmc_platform bmc_plat_ast2500_openbmc = { > .hw = &bmc_hw_ast2500, > .sw = &bmc_sw_openbmc, > }; > + > +const struct bmc_platform bmc_plat_ast2600_openbmc = { > + .name = "ast2600:openbmc", > + .hw = &bmc_hw_ast2600, > + .sw = &bmc_sw_openbmc, > +}; > -- > 2.31.1 > > _______________________________________________ > Skiboot mailing list > Skiboot@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/skiboot
On 7/29/21 1:54 PM, Joel Stanley wrote: > On Mon, 19 Jul 2021 at 13:23, Vasant Hegde > <hegdevasant@linux.vnet.ibm.com> wrote: >> >> From: Reza Arbab <arbab@linux.ibm.com> >> >> Signed-off-by: Reza Arbab <arbab@linux.ibm.com> >> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> >> --- >> platforms/astbmc/astbmc.h | 2 ++ >> platforms/astbmc/common.c | 19 +++++++++++++++++-- >> 2 files changed, 19 insertions(+), 2 deletions(-) >> >> diff --git a/platforms/astbmc/astbmc.h b/platforms/astbmc/astbmc.h >> index 86631bc4e..00f221230 100644 >> --- a/platforms/astbmc/astbmc.h >> +++ b/platforms/astbmc/astbmc.h >> @@ -87,9 +87,11 @@ static struct slot_table_entry st_name[] = \ >> >> extern const struct bmc_hw_config bmc_hw_ast2400; >> extern const struct bmc_hw_config bmc_hw_ast2500; >> +extern const struct bmc_hw_config bmc_hw_ast2600; >> extern const struct bmc_platform bmc_plat_ast2400_ami; >> extern const struct bmc_platform bmc_plat_ast2500_ami; >> extern const struct bmc_platform bmc_plat_ast2500_openbmc; >> +extern const struct bmc_platform bmc_plat_ast2600_openbmc; >> >> extern void astbmc_early_init(void); >> extern int64_t astbmc_ipmi_reboot(void); >> diff --git a/platforms/astbmc/common.c b/platforms/astbmc/common.c >> index d96e070e5..83ef70ad3 100644 >> --- a/platforms/astbmc/common.c >> +++ b/platforms/astbmc/common.c >> @@ -266,8 +266,9 @@ static void astbmc_fixup_dt_mbox(struct dt_node *lpc) >> * can indicate they support mbox using the scratch register, or ipmi >> * by configuring the hiomap ipmi command. If neither are configured >> * for P8 then skiboot will drive the flash controller directly. >> + * XXX P10 >> */ >> - if (proc_gen != proc_gen_p9 && !ast_scratch_reg_is_mbox()) >> + if (proc_gen == proc_gen_p8 && !ast_scratch_reg_is_mbox()) >> return; >> >> /* First check if the mbox interface is already there */ >> @@ -478,7 +479,7 @@ void astbmc_early_init(void) >> * never MBOX. Thus only populate the MBOX node on P9 to allow >> * fallback. >> */ >> - if (proc_gen == proc_gen_p9) { >> + if (proc_gen >= proc_gen_p9) { >> astbmc_fixup_dt_mbox(dt_find_primary_lpc()); >> ast_setup_sio_mbox(MBOX_IO_BASE, MBOX_LPC_IRQ); >> } > > This part looks okay, the rainier BMC will talk without issue. > >> @@ -530,6 +531,14 @@ const struct bmc_hw_config bmc_hw_ast2500 = { >> .mcr_scu_strap = 0x00000000, >> }; >> >> +/* XXX P10: Update with Rainier values */ >> +const struct bmc_hw_config bmc_hw_ast2600 = { >> + .scu_revision_id = 0x05000303, >> + .mcr_configuration = 0x11200756, >> + .mcr_scu_mpll = 0x1008405F, >> + .mcr_scu_strap = 0x000030E0, >> +}; > > This one is a bit suspect. It won't cause any issue, only because the > PCI id has changed, so the quirk code won't call quirk_astbmc_vga to > populate the device tree. > > Probably best to omit it for now. Sure. For now I will set this to ast2500? -Vasant
diff --git a/platforms/astbmc/astbmc.h b/platforms/astbmc/astbmc.h index 86631bc4e..00f221230 100644 --- a/platforms/astbmc/astbmc.h +++ b/platforms/astbmc/astbmc.h @@ -87,9 +87,11 @@ static struct slot_table_entry st_name[] = \ extern const struct bmc_hw_config bmc_hw_ast2400; extern const struct bmc_hw_config bmc_hw_ast2500; +extern const struct bmc_hw_config bmc_hw_ast2600; extern const struct bmc_platform bmc_plat_ast2400_ami; extern const struct bmc_platform bmc_plat_ast2500_ami; extern const struct bmc_platform bmc_plat_ast2500_openbmc; +extern const struct bmc_platform bmc_plat_ast2600_openbmc; extern void astbmc_early_init(void); extern int64_t astbmc_ipmi_reboot(void); diff --git a/platforms/astbmc/common.c b/platforms/astbmc/common.c index d96e070e5..83ef70ad3 100644 --- a/platforms/astbmc/common.c +++ b/platforms/astbmc/common.c @@ -266,8 +266,9 @@ static void astbmc_fixup_dt_mbox(struct dt_node *lpc) * can indicate they support mbox using the scratch register, or ipmi * by configuring the hiomap ipmi command. If neither are configured * for P8 then skiboot will drive the flash controller directly. + * XXX P10 */ - if (proc_gen != proc_gen_p9 && !ast_scratch_reg_is_mbox()) + if (proc_gen == proc_gen_p8 && !ast_scratch_reg_is_mbox()) return; /* First check if the mbox interface is already there */ @@ -478,7 +479,7 @@ void astbmc_early_init(void) * never MBOX. Thus only populate the MBOX node on P9 to allow * fallback. */ - if (proc_gen == proc_gen_p9) { + if (proc_gen >= proc_gen_p9) { astbmc_fixup_dt_mbox(dt_find_primary_lpc()); ast_setup_sio_mbox(MBOX_IO_BASE, MBOX_LPC_IRQ); } @@ -530,6 +531,14 @@ const struct bmc_hw_config bmc_hw_ast2500 = { .mcr_scu_strap = 0x00000000, }; +/* XXX P10: Update with Rainier values */ +const struct bmc_hw_config bmc_hw_ast2600 = { + .scu_revision_id = 0x05000303, + .mcr_configuration = 0x11200756, + .mcr_scu_mpll = 0x1008405F, + .mcr_scu_strap = 0x000030E0, +}; + const struct bmc_platform bmc_plat_ast2400_ami = { .name = "ast2400:ami", .hw = &bmc_hw_ast2400, @@ -547,3 +556,9 @@ const struct bmc_platform bmc_plat_ast2500_openbmc = { .hw = &bmc_hw_ast2500, .sw = &bmc_sw_openbmc, }; + +const struct bmc_platform bmc_plat_ast2600_openbmc = { + .name = "ast2600:openbmc", + .hw = &bmc_hw_ast2600, + .sw = &bmc_sw_openbmc, +};