All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@kaod.org>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
	"Cédric Le Goater" <clg@kaod.org>
Subject: [Qemu-devel] [PATCH v2 6/8] ppc/pnv: add a helper to calculate MMIO addresses registers
Date: Thu, 16 Mar 2017 15:35:10 +0100	[thread overview]
Message-ID: <1489674912-21942-7-git-send-email-clg@kaod.org> (raw)
In-Reply-To: <1489674912-21942-1-git-send-email-clg@kaod.org>

Some controllers (ICP, PSI) have a base register address which is
calculated using the chip id.

Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
 include/hw/ppc/pnv.h | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/include/hw/ppc/pnv.h b/include/hw/ppc/pnv.h
index d6ef04771aff..cfd059fc49db 100644
--- a/include/hw/ppc/pnv.h
+++ b/include/hw/ppc/pnv.h
@@ -92,14 +92,24 @@ typedef struct PnvChipClass {
     OBJECT_CHECK(PnvChip, (obj), TYPE_PNV_CHIP_POWER9)
 
 /*
- * This generates a HW chip id depending on an index:
+ * This generates a HW chip id depending on an index, as found on a
+ * two socket system with dual chip modules :
  *
  *    0x0, 0x1, 0x10, 0x11
  *
  * 4 chips should be the maximum
+ *
+ * TODO: use a machine property to define the chip ids
  */
 #define PNV_CHIP_HWID(i) ((((i) & 0x3e) << 3) | ((i) & 0x1))
 
+/*
+ * Converts back a HW chip id to an index. This is useful to calculate
+ * the MMIO addresses of some controllers which depend on the chip id.
+ */
+#define PNV_CHIP_INDEX(chip)                                    \
+    (((chip)->chip_id >> 2) * 2 + ((chip)->chip_id & 0x3))
+
 #define TYPE_POWERNV_MACHINE       MACHINE_TYPE_NAME("powernv")
 #define POWERNV_MACHINE(obj) \
     OBJECT_CHECK(PnvMachineState, (obj), TYPE_POWERNV_MACHINE)
-- 
2.7.4

  parent reply	other threads:[~2017-03-16 14:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-16 14:35 [Qemu-devel] [PATCH v2 0/8] ppc/pnv: interrupt controller (POWER8) Cédric Le Goater
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 1/8] ppc/xics: introduce an ICPState backlink under PowerPCCPU Cédric Le Goater
2017-03-22  6:33   ` David Gibson
2017-03-22 16:25     ` Cédric Le Goater
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 2/8] spapr: move the IRQ server number mapping under the machine Cédric Le Goater
2017-03-23  4:10   ` David Gibson
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 3/8] ppc/xics: add a realize() handler to ICPStateClass Cédric Le Goater
2017-03-23  4:10   ` David Gibson
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 4/8] ppc/pnv: add a PnvICPState object Cédric Le Goater
2017-03-23  4:12   ` David Gibson
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 5/8] ppc/pnv: create the ICP and ICS objects under the machine Cédric Le Goater
2017-03-23  4:16   ` David Gibson
2017-03-23  8:25     ` Cédric Le Goater
2017-03-16 14:35 ` Cédric Le Goater [this message]
2017-03-23  4:16   ` [Qemu-devel] [PATCH v2 6/8] ppc/pnv: add a helper to calculate MMIO addresses registers David Gibson
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 7/8] ppc/pnv: link the CPUs to the machine XICSFabric Cédric Le Goater
2017-03-23  4:18   ` David Gibson
2017-03-16 14:35 ` [Qemu-devel] [PATCH v2 8/8] ppc/pnv: add memory regions for the ICP registers Cédric Le Goater
2017-03-23  4:20   ` David Gibson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1489674912-21942-7-git-send-email-clg@kaod.org \
    --to=clg@kaod.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.