Skip to content

Commit

Permalink
pnv/xive: Add property on xive sources to define PQ state on reset
Browse files Browse the repository at this point in the history
The PQ state of a xive interrupt is always initialized to Q=1, which
means the interrupt is disabled. Since a xive source can be embedded
in many objects, this patch adds a property to allow that behavior to
be refined if needed.

Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20230703081215.55252-2-fbarrat@linux.ibm.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
  • Loading branch information
fbarrat authored and danielhb committed Jul 7, 2023
1 parent 694d3cb commit a8da2e1
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
8 changes: 6 additions & 2 deletions hw/intc/xive.c
Original file line number Diff line number Diff line change
Expand Up @@ -1232,8 +1232,7 @@ static void xive_source_reset(void *dev)

/* Do not clear the LSI bitmap */

/* PQs are initialized to 0b01 (Q=1) which corresponds to "ints off" */
memset(xsrc->status, XIVE_ESB_OFF, xsrc->nr_irqs);
memset(xsrc->status, xsrc->reset_pq, xsrc->nr_irqs);
}

static void xive_source_realize(DeviceState *dev, Error **errp)
Expand Down Expand Up @@ -1287,6 +1286,11 @@ static Property xive_source_properties[] = {
DEFINE_PROP_UINT64("flags", XiveSource, esb_flags, 0),
DEFINE_PROP_UINT32("nr-irqs", XiveSource, nr_irqs, 0),
DEFINE_PROP_UINT32("shift", XiveSource, esb_shift, XIVE_ESB_64K_2PAGE),
/*
* By default, PQs are initialized to 0b01 (Q=1) which corresponds
* to "ints off"
*/
DEFINE_PROP_UINT8("reset-pq", XiveSource, reset_pq, XIVE_ESB_OFF),
DEFINE_PROP_LINK("xive", XiveSource, xive, TYPE_XIVE_NOTIFIER,
XiveNotifier *),
DEFINE_PROP_END_OF_LIST(),
Expand Down
1 change: 1 addition & 0 deletions include/hw/ppc/xive.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ struct XiveSource {

/* PQ bits and LSI assertion bit */
uint8_t *status;
uint8_t reset_pq; /* PQ state on reset */

/* ESB memory region */
uint64_t esb_flags;
Expand Down

0 comments on commit a8da2e1

Please sign in to comment.