mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-31 14:23:53 -06:00
hw/fsi: Introduce IBM's FSI master
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>
This commit is contained in:
parent
f32f8e4d20
commit
ca03310737
4 changed files with 205 additions and 1 deletions
32
include/hw/fsi/fsi-master.h
Normal file
32
include/hw/fsi/fsi-master.h
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* 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 */
|
Loading…
Add table
Add a link
Reference in a new issue