mirror of https://github.com/xemu-project/xemu.git
ppc/pnv: Fix PSI IRQ definition
On HW, the PSI and FSP interrupt levels are muxed under the same interrupt number. For coding reasons, an extra IRQ number was introduced to index register values in an array. It increased the count of IRQs which do not fit in the PSI IRQ range anymore. The PSI and FSP interrupts should be modeled with an extra level of GPIO lines but since QEMU does not support them, simply drop the extra number to stay within the IRQ range. Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20220323072846.1780212-2-clg@kaod.org> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
This commit is contained in:
parent
4c7daca302
commit
58858759c1
|
@ -184,8 +184,7 @@ static void pnv_psi_set_irsn(PnvPsi *psi, uint64_t val)
|
|||
/*
|
||||
* FSP and PSI interrupts are muxed under the same number.
|
||||
*/
|
||||
static const uint32_t xivr_regs[] = {
|
||||
[PSIHB_IRQ_PSI] = PSIHB_XSCOM_XIVR_FSP,
|
||||
static const uint32_t xivr_regs[PSI_NUM_INTERRUPTS] = {
|
||||
[PSIHB_IRQ_FSP] = PSIHB_XSCOM_XIVR_FSP,
|
||||
[PSIHB_IRQ_OCC] = PSIHB_XSCOM_XIVR_OCC,
|
||||
[PSIHB_IRQ_FSI] = PSIHB_XSCOM_XIVR_FSI,
|
||||
|
@ -194,8 +193,7 @@ static const uint32_t xivr_regs[] = {
|
|||
[PSIHB_IRQ_EXTERNAL] = PSIHB_XSCOM_XIVR_EXT,
|
||||
};
|
||||
|
||||
static const uint32_t stat_regs[] = {
|
||||
[PSIHB_IRQ_PSI] = PSIHB_XSCOM_CR,
|
||||
static const uint32_t stat_regs[PSI_NUM_INTERRUPTS] = {
|
||||
[PSIHB_IRQ_FSP] = PSIHB_XSCOM_CR,
|
||||
[PSIHB_IRQ_OCC] = PSIHB_XSCOM_IRQ_STAT,
|
||||
[PSIHB_IRQ_FSI] = PSIHB_XSCOM_IRQ_STAT,
|
||||
|
@ -204,8 +202,7 @@ static const uint32_t stat_regs[] = {
|
|||
[PSIHB_IRQ_EXTERNAL] = PSIHB_XSCOM_IRQ_STAT,
|
||||
};
|
||||
|
||||
static const uint64_t stat_bits[] = {
|
||||
[PSIHB_IRQ_PSI] = PSIHB_CR_PSI_IRQ,
|
||||
static const uint64_t stat_bits[PSI_NUM_INTERRUPTS] = {
|
||||
[PSIHB_IRQ_FSP] = PSIHB_CR_FSP_IRQ,
|
||||
[PSIHB_IRQ_OCC] = PSIHB_IRQ_STAT_OCC,
|
||||
[PSIHB_IRQ_FSI] = PSIHB_IRQ_STAT_FSI,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* QEMU PowerPC PowerNV Processor Service Interface (PSI) model
|
||||
*
|
||||
* Copyright (c) 2015-2017, IBM Corporation.
|
||||
* Copyright (c) 2015-2022, IBM Corporation.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -85,7 +85,6 @@ struct PnvPsiClass {
|
|||
|
||||
/* The PSI and FSP interrupts are muxed on the same IRQ number */
|
||||
typedef enum PnvPsiIrq {
|
||||
PSIHB_IRQ_PSI, /* internal use only */
|
||||
PSIHB_IRQ_FSP, /* internal use only */
|
||||
PSIHB_IRQ_OCC,
|
||||
PSIHB_IRQ_FSI,
|
||||
|
|
Loading…
Reference in New Issue