f32f8e4d20
This is a part of patchset where IBM's Flexible Service Interface is introduced. The Common FRU Access Macro (CFAM), an address space containing various "engines" that drive accesses on busses internal and external to the POWER chip. Examples include the SBEFIFO and I2C masters. The engines hang off of an internal Local Bus (LBUS) which is described by the CFAM configuration block. Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Ninad Palsule <ninad@linux.ibm.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> [ clg: - moved object FSIScratchPad under FSICFAMState - moved FSIScratchPad code under cfam.c - introduced fsi_cfam_instance_init() - reworked fsi_cfam_realize() ] Signed-off-by: Cédric Le Goater <clg@kaod.org>
35 lines
639 B
C
35 lines
639 B
C
/*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright (C) 2024 IBM Corp.
|
|
*
|
|
* IBM Common FRU Access Macro
|
|
*/
|
|
#ifndef FSI_CFAM_H
|
|
#define FSI_CFAM_H
|
|
|
|
#include "exec/memory.h"
|
|
|
|
#include "hw/fsi/fsi.h"
|
|
#include "hw/fsi/lbus.h"
|
|
|
|
#define TYPE_FSI_CFAM "cfam"
|
|
#define FSI_CFAM(obj) OBJECT_CHECK(FSICFAMState, (obj), TYPE_FSI_CFAM)
|
|
|
|
/* P9-ism */
|
|
#define CFAM_CONFIG_NR_REGS 0x28
|
|
|
|
typedef struct FSICFAMState {
|
|
/* < private > */
|
|
FSISlaveState parent;
|
|
|
|
/* CFAM config address space */
|
|
MemoryRegion config_iomem;
|
|
|
|
MemoryRegion mr;
|
|
|
|
FSILBus lbus;
|
|
FSIScratchPad scratchpad;
|
|
} FSICFAMState;
|
|
|
|
#endif /* FSI_CFAM_H */
|