mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
ppc/pnv: add a PSI bridge model for POWER10
The POWER10 PSIHB controller is very similar to the one on POWER9. We should probably introduce a common PnvPsiXive object. The ESB page size should be changed to 64k when P10 support is ready. Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20191205184454.10722-5-clg@kaod.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
c5412b1d28
commit
8b50ce8505
5 changed files with 58 additions and 8 deletions
|
@ -112,6 +112,9 @@ typedef struct Pnv9Chip {
|
|||
typedef struct Pnv10Chip {
|
||||
/*< private >*/
|
||||
PnvChip parent_obj;
|
||||
|
||||
/*< public >*/
|
||||
Pnv9Psi psi;
|
||||
} Pnv10Chip;
|
||||
|
||||
typedef struct PnvChipClass {
|
||||
|
@ -326,4 +329,10 @@ IPMIBmc *pnv_bmc_create(void);
|
|||
#define PNV10_XSCOM_SIZE 0x0000000400000000ull
|
||||
#define PNV10_XSCOM_BASE(chip) PNV10_CHIP_BASE(chip, 0x00603fc00000000ull)
|
||||
|
||||
#define PNV10_PSIHB_ESB_SIZE 0x0000000000100000ull
|
||||
#define PNV10_PSIHB_ESB_BASE(chip) PNV10_CHIP_BASE(chip, 0x0006030202000000ull)
|
||||
|
||||
#define PNV10_PSIHB_SIZE 0x0000000000100000ull
|
||||
#define PNV10_PSIHB_BASE(chip) PNV10_CHIP_BASE(chip, 0x0006030203000000ull)
|
||||
|
||||
#endif /* PPC_PNV_H */
|
||||
|
|
|
@ -69,6 +69,8 @@ typedef struct Pnv9Psi {
|
|||
XiveSource source;
|
||||
} Pnv9Psi;
|
||||
|
||||
#define TYPE_PNV10_PSI TYPE_PNV_PSI "-POWER10"
|
||||
|
||||
#define PNV_PSI_CLASS(klass) \
|
||||
OBJECT_CLASS_CHECK(PnvPsiClass, (klass), TYPE_PNV_PSI)
|
||||
#define PNV_PSI_GET_CLASS(obj) \
|
||||
|
|
|
@ -106,6 +106,9 @@ typedef struct PnvXScomInterfaceClass {
|
|||
((uint64_t) PNV10_XSCOM_EQ_BASE(core) | PNV10_XSCOM_EC(core & 0x3))
|
||||
#define PNV10_XSCOM_EC_SIZE 0x100000
|
||||
|
||||
#define PNV10_XSCOM_PSIHB_BASE 0x3011D00
|
||||
#define PNV10_XSCOM_PSIHB_SIZE 0x100
|
||||
|
||||
extern void pnv_xscom_realize(PnvChip *chip, uint64_t size, Error **errp);
|
||||
extern int pnv_dt_xscom(PnvChip *chip, void *fdt, int offset);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue