qemu/include/hw/ppc/pnv_nest_pervasive.h
Chalapathi V 1adf24708b hw/ppc: Add pnv nest pervasive common chiplet model
A POWER10 chip is divided into logical units called chiplets. Chiplets
are broadly divided into "core chiplets" (with the processor cores) and
"nest chiplets" (with everything else). Each chiplet has an attachment
to the pervasive bus (PIB) and with chiplet-specific registers. All nest
chiplets have a common basic set of registers and This model will provide
the registers functionality for common registers of nest chiplet (Pervasive
Chiplet, PB Chiplet, PCI Chiplets, MC Chiplet, PAU Chiplets)

This commit implement the read/write functions of chiplet control 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>
2024-02-23 23:24:42 +10:00

33 lines
959 B
C

/*
* QEMU PowerPC nest pervasive common chiplet model
*
* Copyright (c) 2023, IBM Corporation.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#ifndef PPC_PNV_NEST_CHIPLET_PERVASIVE_H
#define PPC_PNV_NEST_CHIPLET_PERVASIVE_H
#define TYPE_PNV_NEST_CHIPLET_PERVASIVE "pnv-nest-chiplet-pervasive"
#define PNV_NEST_CHIPLET_PERVASIVE(obj) OBJECT_CHECK(PnvNestChipletPervasive, (obj), TYPE_PNV_NEST_CHIPLET_PERVASIVE)
typedef struct PnvPervasiveCtrlRegs {
#define PNV_CPLT_CTRL_SIZE 6
uint64_t cplt_ctrl[PNV_CPLT_CTRL_SIZE];
uint64_t cplt_cfg0;
uint64_t cplt_cfg1;
uint64_t cplt_stat0;
uint64_t cplt_mask0;
uint64_t ctrl_protect_mode;
uint64_t ctrl_atomic_lock;
} PnvPervasiveCtrlRegs;
typedef struct PnvNestChipletPervasive {
DeviceState parent;
MemoryRegion xscom_ctrl_regs_mr;
PnvPervasiveCtrlRegs control_regs;
} PnvNestChipletPervasive;
#endif /*PPC_PNV_NEST_CHIPLET_PERVASIVE_H */