Skip to content

Commit

Permalink
ast: Account for differences between 2400 vs 2500
Browse files Browse the repository at this point in the history
Currently astbmc_early_init() only applies to AST2400/POWER8.

This fixes the code so it also applies to AST2500/POWER9 except for
the PSI BAR fixup which is not needed on AST2500/POWER9.

Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
mikey authored and stewartsmith committed Feb 22, 2017
1 parent e555255 commit f4d5deb
Showing 1 changed file with 8 additions and 10 deletions.
18 changes: 8 additions & 10 deletions platforms/astbmc/common.c
Expand Up @@ -306,6 +306,10 @@ static void astbmc_fixup_psi_bar(void)
struct proc_chip *chip = next_chip(NULL);
uint64_t psibar;

/* This is P8 specific */
if (proc_gen != proc_gen_p8)
return;

/* Read PSI BAR */
if (xscom_read(chip->id, 0x201090A, &psibar)) {
prerror("PLAT: Error reading PSI BAR\n");
Expand All @@ -327,17 +331,11 @@ static void astbmc_fixup_psi_bar(void)

void astbmc_early_init(void)
{
/*
* On P9 we don't have a HB supplied devicetree and we have a
* different PSI BAR hack here is P8 specific.
*/
if (proc_gen == proc_gen_p8) {
/* Hostboot's device-tree isn't quite right yet */
astbmc_fixup_dt();
/* Hostboot's device-tree isn't quite right yet */
astbmc_fixup_dt();

/* Hostboot forgets to populate the PSI BAR */
astbmc_fixup_psi_bar();
}
/* Hostboot forgets to populate the PSI BAR */
astbmc_fixup_psi_bar();

/* Send external interrupts to me */
psi_set_external_irq_policy(EXTERNAL_IRQ_POLICY_SKIBOOT);
Expand Down

0 comments on commit f4d5deb

Please sign in to comment.