5706b0064d
The N1 chiplet handle the high speed i/o traffic over PCIe and others. The N1 chiplet consists of PowerBus Fabric controller, nest Memory Management Unit, chiplet control unit and more. This commit creates a N1 chiplet model and initialize and realize the pervasive chiplet model where chiplet control registers are implemented. This commit also implement the read/write method for the powerbus scom registers Reviewed-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Chalapathi V <chalapathi.v@linux.ibm.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
33 lines
836 B
C
33 lines
836 B
C
/*
|
|
* QEMU PowerPC N1 chiplet model
|
|
*
|
|
* Copyright (c) 2023, IBM Corporation.
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef PPC_PNV_N1_CHIPLET_H
|
|
#define PPC_PNV_N1_CHIPLET_H
|
|
|
|
#include "hw/ppc/pnv_nest_pervasive.h"
|
|
|
|
#define TYPE_PNV_N1_CHIPLET "pnv-N1-chiplet"
|
|
#define PNV_N1_CHIPLET(obj) OBJECT_CHECK(PnvN1Chiplet, (obj), TYPE_PNV_N1_CHIPLET)
|
|
|
|
typedef struct PnvPbScom {
|
|
uint64_t mode;
|
|
uint64_t hp_mode2_curr;
|
|
} PnvPbScom;
|
|
|
|
typedef struct PnvN1Chiplet {
|
|
DeviceState parent;
|
|
MemoryRegion xscom_pb_eq_mr;
|
|
MemoryRegion xscom_pb_es_mr;
|
|
PnvNestChipletPervasive nest_pervasive; /* common pervasive chiplet unit */
|
|
#define PNV_PB_SCOM_EQ_SIZE 8
|
|
PnvPbScom eq[PNV_PB_SCOM_EQ_SIZE];
|
|
#define PNV_PB_SCOM_ES_SIZE 4
|
|
PnvPbScom es[PNV_PB_SCOM_ES_SIZE];
|
|
} PnvN1Chiplet;
|
|
#endif /*PPC_PNV_N1_CHIPLET_H */
|