Re: [PATCH 08/10] pnv/phb4: Implement IODA PCT table

2024-03-25 Thread Cédric Le Goater

On 3/21/24 11:04, Saif Abrar wrote:

IODA PCT table (#3) is implemented
without any functionality, being a debug table.

Signed-off-by: Saif Abrar 



Reviewed-by: Cédric Le Goater 

Thanks,

C.



---
  hw/pci-host/pnv_phb4.c  | 6 ++
  include/hw/pci-host/pnv_phb4.h  | 2 ++
  include/hw/pci-host/pnv_phb4_regs.h | 1 +
  3 files changed, 9 insertions(+)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 6823ffab54..f48750ee54 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -263,6 +263,10 @@ static uint64_t *pnv_phb4_ioda_access(PnvPHB4 *phb,
  mask = phb->big_phb ? PNV_PHB4_MAX_MIST : (PNV_PHB4_MAX_MIST >> 1);
  mask -= 1;
  break;
+case IODA3_TBL_PCT:
+tptr = phb->ioda_PCT;
+mask = 7;
+break;
  case IODA3_TBL_RCAM:
  mask = phb->big_phb ? 127 : 63;
  break;
@@ -361,6 +365,8 @@ static void pnv_phb4_ioda_write(PnvPHB4 *phb, uint64_t val)
  /* Handle side effects */
  switch (table) {
  case IODA3_TBL_LIST:
+case IODA3_TBL_PCT:
+/* No action for debug tables */
  break;
  case IODA3_TBL_MIST: {
  /* Special mask for MIST partial write */
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 91e81eee0e..6d83e5616f 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -64,6 +64,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB4, PNV_PHB4)
  #define PNV_PHB4_MAX_LSIs  8
  #define PNV_PHB4_MAX_INTs  4096
  #define PNV_PHB4_MAX_MIST  (PNV_PHB4_MAX_INTs >> 2)
+#define PNV_PHB4_MAX_PCT   128
  #define PNV_PHB4_MAX_MMIO_WINDOWS  32
  #define PNV_PHB4_MIN_MMIO_WINDOWS  16
  #define PNV_PHB4_NUM_REGS  (0x3000 >> 3)
@@ -144,6 +145,7 @@ struct PnvPHB4 {
  /* On-chip IODA tables */
  uint64_t ioda_LIST[PNV_PHB4_MAX_LSIs];
  uint64_t ioda_MIST[PNV_PHB4_MAX_MIST];
+uint64_t ioda_PCT[PNV_PHB4_MAX_PCT];
  uint64_t ioda_TVT[PNV_PHB4_MAX_TVEs];
  uint64_t ioda_MBT[PNV_PHB4_MAX_MBEs];
  uint64_t ioda_MDT[PNV_PHB4_MAX_PEs];
diff --git a/include/hw/pci-host/pnv_phb4_regs.h 
b/include/hw/pci-host/pnv_phb4_regs.h
index c1d5a83271..e30adff7b2 100644
--- a/include/hw/pci-host/pnv_phb4_regs.h
+++ b/include/hw/pci-host/pnv_phb4_regs.h
@@ -486,6 +486,7 @@
  
  #define IODA3_TBL_LIST  1

  #define IODA3_TBL_MIST  2
+#define IODA3_TBL_PCT   3
  #define IODA3_TBL_RCAM  5
  #define IODA3_TBL_MRT   6
  #define IODA3_TBL_PESTA 7





[PATCH 08/10] pnv/phb4: Implement IODA PCT table

2024-03-21 Thread Saif Abrar
IODA PCT table (#3) is implemented
without any functionality, being a debug table.

Signed-off-by: Saif Abrar 
---
 hw/pci-host/pnv_phb4.c  | 6 ++
 include/hw/pci-host/pnv_phb4.h  | 2 ++
 include/hw/pci-host/pnv_phb4_regs.h | 1 +
 3 files changed, 9 insertions(+)

diff --git a/hw/pci-host/pnv_phb4.c b/hw/pci-host/pnv_phb4.c
index 6823ffab54..f48750ee54 100644
--- a/hw/pci-host/pnv_phb4.c
+++ b/hw/pci-host/pnv_phb4.c
@@ -263,6 +263,10 @@ static uint64_t *pnv_phb4_ioda_access(PnvPHB4 *phb,
 mask = phb->big_phb ? PNV_PHB4_MAX_MIST : (PNV_PHB4_MAX_MIST >> 1);
 mask -= 1;
 break;
+case IODA3_TBL_PCT:
+tptr = phb->ioda_PCT;
+mask = 7;
+break;
 case IODA3_TBL_RCAM:
 mask = phb->big_phb ? 127 : 63;
 break;
@@ -361,6 +365,8 @@ static void pnv_phb4_ioda_write(PnvPHB4 *phb, uint64_t val)
 /* Handle side effects */
 switch (table) {
 case IODA3_TBL_LIST:
+case IODA3_TBL_PCT:
+/* No action for debug tables */
 break;
 case IODA3_TBL_MIST: {
 /* Special mask for MIST partial write */
diff --git a/include/hw/pci-host/pnv_phb4.h b/include/hw/pci-host/pnv_phb4.h
index 91e81eee0e..6d83e5616f 100644
--- a/include/hw/pci-host/pnv_phb4.h
+++ b/include/hw/pci-host/pnv_phb4.h
@@ -64,6 +64,7 @@ OBJECT_DECLARE_SIMPLE_TYPE(PnvPHB4, PNV_PHB4)
 #define PNV_PHB4_MAX_LSIs  8
 #define PNV_PHB4_MAX_INTs  4096
 #define PNV_PHB4_MAX_MIST  (PNV_PHB4_MAX_INTs >> 2)
+#define PNV_PHB4_MAX_PCT   128
 #define PNV_PHB4_MAX_MMIO_WINDOWS  32
 #define PNV_PHB4_MIN_MMIO_WINDOWS  16
 #define PNV_PHB4_NUM_REGS  (0x3000 >> 3)
@@ -144,6 +145,7 @@ struct PnvPHB4 {
 /* On-chip IODA tables */
 uint64_t ioda_LIST[PNV_PHB4_MAX_LSIs];
 uint64_t ioda_MIST[PNV_PHB4_MAX_MIST];
+uint64_t ioda_PCT[PNV_PHB4_MAX_PCT];
 uint64_t ioda_TVT[PNV_PHB4_MAX_TVEs];
 uint64_t ioda_MBT[PNV_PHB4_MAX_MBEs];
 uint64_t ioda_MDT[PNV_PHB4_MAX_PEs];
diff --git a/include/hw/pci-host/pnv_phb4_regs.h 
b/include/hw/pci-host/pnv_phb4_regs.h
index c1d5a83271..e30adff7b2 100644
--- a/include/hw/pci-host/pnv_phb4_regs.h
+++ b/include/hw/pci-host/pnv_phb4_regs.h
@@ -486,6 +486,7 @@
 
 #define IODA3_TBL_LIST  1
 #define IODA3_TBL_MIST  2
+#define IODA3_TBL_PCT   3
 #define IODA3_TBL_RCAM  5
 #define IODA3_TBL_MRT   6
 #define IODA3_TBL_PESTA 7
-- 
2.39.3