Skip to content

Commit

Permalink
hw/lpc: Configure SerIRQ interrupts on P9P
Browse files Browse the repository at this point in the history
We need to do the LPC SerIRQ mux configuration on P9P too. Without this
we don't get UART interrupts from the BMC which makes the UART console
*much* less responsive than it should be.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
  • Loading branch information
oohal committed Aug 23, 2019
1 parent 8bb0ae3 commit 7b12d54
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions hw/lpc.c
Expand Up @@ -905,7 +905,8 @@ void lpc_finalize_interrupts(void)
for_each_chip(chip) {
if (chip->lpc && chip->psi &&
(chip->type == PROC_CHIP_P9_NIMBUS ||
chip->type == PROC_CHIP_P9_CUMULUS))
chip->type == PROC_CHIP_P9_CUMULUS ||
chip->type == PROC_CHIP_P9P))
lpc_create_int_map(chip->lpc, chip->psi->node);
}
}
Expand Down Expand Up @@ -948,6 +949,7 @@ static void lpc_init_interrupts_one(struct proc_chip *chip)
break;
case PROC_CHIP_P9_NIMBUS:
case PROC_CHIP_P9_CUMULUS:
case PROC_CHIP_P9P:
/* On P9, we additionally setup the routing. */
lpc->has_serirq = true;
for (i = 0; i < LPC_NUM_SERIRQ; i++) {
Expand Down Expand Up @@ -1365,7 +1367,8 @@ void lpc_register_client(uint32_t chip_id,

has_routes =
chip->type == PROC_CHIP_P9_NIMBUS ||
chip->type == PROC_CHIP_P9_CUMULUS;
chip->type == PROC_CHIP_P9_CUMULUS ||
chip->type == PROC_CHIP_P9P;

if (policy != IRQ_ATTR_TARGET_OPAL && !has_routes) {
prerror("Chip doesn't support OS interrupt policy\n");
Expand Down

0 comments on commit 7b12d54

Please sign in to comment.