ca03310737
This is a part of patchset where IBM's Flexible Service Interface is introduced. This commit models the FSI master. CFAM is hanging out of FSI master which is a bus controller. The FSI master: A controller in the platform service processor (e.g. BMC) driving CFAM engine accesses into the POWER chip. At the hardware level FSI is a bit-based protocol supporting synchronous and DMA-driven accesses of engines in a CFAM. 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: - move FSICFAMState object under FSIMasterState - introduced fsi_master_init() - reworked fsi_master_realize() - dropped FSIBus definition ] Signed-off-by: Cédric Le Goater <clg@kaod.org>
33 lines
649 B
C
33 lines
649 B
C
/*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
* Copyright (C) 2024 IBM Corp.
|
|
*
|
|
* IBM Flexible Service Interface Master
|
|
*/
|
|
#ifndef FSI_FSI_MASTER_H
|
|
#define FSI_FSI_MASTER_H
|
|
|
|
#include "exec/memory.h"
|
|
#include "hw/qdev-core.h"
|
|
#include "hw/fsi/fsi.h"
|
|
#include "hw/fsi/cfam.h"
|
|
|
|
#define TYPE_FSI_MASTER "fsi.master"
|
|
OBJECT_DECLARE_SIMPLE_TYPE(FSIMasterState, FSI_MASTER)
|
|
|
|
#define FSI_MASTER_NR_REGS ((0x2e0 >> 2) + 1)
|
|
|
|
typedef struct FSIMasterState {
|
|
DeviceState parent;
|
|
MemoryRegion iomem;
|
|
MemoryRegion opb2fsi;
|
|
|
|
FSIBus bus;
|
|
|
|
uint32_t regs[FSI_MASTER_NR_REGS];
|
|
FSICFAMState cfam;
|
|
} FSIMasterState;
|
|
|
|
|
|
#endif /* FSI_FSI_H */
|