qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/4] pnv/xive2: Add definition for TCTXT Config register


From: Cédric Le Goater
Subject: Re: [PATCH 1/4] pnv/xive2: Add definition for TCTXT Config register
Date: Tue, 30 May 2023 18:31:51 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

On 5/30/23 18:11, Frederic Barrat wrote:
Add basic read/write support for the TCTXT Config register on P10. qemu
doesn't do anything with it yet, but it avoids logging a guest error
when skiboot configures the fused-core state:

qemu-system-ppc64 -machine powernv10 ... -d guest_errors
   ...
[    0.131670000,5] XIVE: [ IC 00  ] Initializing XIVE block ID 0...
XIVE[0] - TCTXT: invalid read @140
XIVE[0] - TCTXT: invalid write @140

Reviewed-by: Cédric Le Goater <clg@kaod.org>

If you respin, please add the same kind of support to POWER9.

Thanks,

C.


Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com>
---
  hw/intc/pnv_xive2.c      | 8 +++++++-
  hw/intc/pnv_xive2_regs.h | 4 ++++
  2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/hw/intc/pnv_xive2.c b/hw/intc/pnv_xive2.c
index 7176d70234..889e409929 100644
--- a/hw/intc/pnv_xive2.c
+++ b/hw/intc/pnv_xive2.c
@@ -1265,6 +1265,9 @@ static uint64_t pnv_xive2_ic_tctxt_read(void *opaque, 
hwaddr offset,
      case TCTXT_EN1_RESET:
          val = xive->tctxt_regs[TCTXT_EN1 >> 3];
          break;
+    case TCTXT_CFG:
+        val = xive->tctxt_regs[reg];
+        break;
      default:
          xive2_error(xive, "TCTXT: invalid read @%"HWADDR_PRIx, offset);
      }
@@ -1276,6 +1279,7 @@ static void pnv_xive2_ic_tctxt_write(void *opaque, hwaddr 
offset,
                                       uint64_t val, unsigned size)
  {
      PnvXive2 *xive = PNV_XIVE2(opaque);
+    uint32_t reg = offset >> 3;
switch (offset) {
      /*
@@ -1297,7 +1301,9 @@ static void pnv_xive2_ic_tctxt_write(void *opaque, hwaddr 
offset,
      case TCTXT_EN1_RESET:
          xive->tctxt_regs[TCTXT_EN1 >> 3] &= ~val;
          break;
-
+    case TCTXT_CFG:
+        xive->tctxt_regs[reg] = val;
+        break;
      default:
          xive2_error(xive, "TCTXT: invalid write @%"HWADDR_PRIx, offset);
          return;
diff --git a/hw/intc/pnv_xive2_regs.h b/hw/intc/pnv_xive2_regs.h
index 0c096e4adb..8f1e0a1fde 100644
--- a/hw/intc/pnv_xive2_regs.h
+++ b/hw/intc/pnv_xive2_regs.h
@@ -405,6 +405,10 @@
  #define X_TCTXT_EN1_RESET                       0x307
  #define TCTXT_EN1_RESET                         0x038
+/* TCTXT Config register */
+#define X_TCTXT_CFG                             0x328
+#define TCTXT_CFG                               0x140
+
  /*
   * VSD Tables
   */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]