Message ID | 20240321100422.5347-9-saif.abrar@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | pnv/phb4: Update PHB4 to the latest spec PH5 | expand |
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 <saif.abrar@linux.vnet.ibm.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> 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
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
IODA PCT table (#3) is implemented without any functionality, being a debug table. Signed-off-by: Saif Abrar <saif.abrar@linux.vnet.ibm.com> --- 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(+)