qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH] ppc/pnv: Set P10 core xscom region size to match hardware


From: Daniel Henrique Barboza
Subject: Re: [PATCH] ppc/pnv: Set P10 core xscom region size to match hardware
Date: Wed, 5 Jul 2023 12:41:50 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0

This patch breaks make check-qtest:


$ make -j -C build && make -C build check-qtest
(...)
16/44 qemu:qtest+qtest-ppc64 / qtest-ppc64/pnv-xscom-test                 ERROR 
          0.89s   killed by signal 6 SIGABRT
G_TEST_DBUS_DAEMON=/home/danielhb/powerpc/qemu/tests/dbus-vmstate-daemon.sh 
QTEST_QEMU_IMG=./qemu-img QTEST_QEMU_BINARY=./qemu-system-ppc64 
QTEST_QEMU_STORAGE_DAEMON_BINARY=./storage-daemon/qemu-storage-daemon 
MALLOC_PERTURB_=231 
/home/danielhb/powerpc/qemu/build/tests/qtest/pnv-xscom-test --tap -k
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
 ✀  
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
stderr:
**
ERROR:../tests/qtest/pnv-xscom-test.c:115:test_xscom_core: assertion failed 
(dts0 == 0x26f024f023f0000ull): (0x00000000 == 0x26f024f023f0000)

(test program exited with status code -6)
――――――――――――――――――――――――――――――――――――――――――――――――

I believe you'll need to take a look at tests/qtest/pnv-xscom-test.c as well.


Thanks,

Daniel


On 7/4/23 22:27, Nicholas Piggin wrote:
The P10 core xscom memory regions overlap because the size is wrong.
The P10 core+L2 xscom region size is allocated as 0x1000 (with some
unused ranges). "EC" is used as a closer match, as "EX" includes L3
which has a disjoint xscom range that would require a different
region if it were implemented.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
  hw/ppc/pnv_core.c          | 3 +--
  include/hw/ppc/pnv_xscom.h | 2 +-
  2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/hw/ppc/pnv_core.c b/hw/ppc/pnv_core.c
index b7223bb445..ffbc29cbf4 100644
--- a/hw/ppc/pnv_core.c
+++ b/hw/ppc/pnv_core.c
@@ -299,9 +299,8 @@ static void pnv_core_realize(DeviceState *dev, Error **errp)
      }
snprintf(name, sizeof(name), "xscom-core.%d", cc->core_id);
-    /* TODO: check PNV_XSCOM_EX_SIZE for p10 */
      pnv_xscom_region_init(&pc->xscom_regs, OBJECT(dev), pcc->xscom_ops,
-                          pc, name, PNV_XSCOM_EX_SIZE);
+                          pc, name, PNV10_XSCOM_EC_SIZE);
qemu_register_reset(pnv_core_reset, pc);
      return;
diff --git a/include/hw/ppc/pnv_xscom.h b/include/hw/ppc/pnv_xscom.h
index f7da9a1dc6..a4c9d95dc5 100644
--- a/include/hw/ppc/pnv_xscom.h
+++ b/include/hw/ppc/pnv_xscom.h
@@ -133,7 +133,7 @@ struct PnvXScomInterfaceClass {
#define PNV10_XSCOM_EC_BASE(core) \
      ((uint64_t) PNV10_XSCOM_EQ_BASE(core) | PNV10_XSCOM_EC(core & 0x3))
-#define PNV10_XSCOM_EC_SIZE        0x100000
+#define PNV10_XSCOM_EC_SIZE        0x1000
#define PNV10_XSCOM_PSIHB_BASE 0x3011D00
  #define PNV10_XSCOM_PSIHB_SIZE     0x100



reply via email to

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