diff options
author | Ninad Palsule <ninad@linux.ibm.com> | 2024-01-26 04:49:50 -0600 |
---|---|---|
committer | Cédric Le Goater <clg@kaod.org> | 2024-02-01 08:13:30 +0100 |
commit | f32f8e4d20b00e9b1fc1fcdd61050312d9ec75f6 (patch) | |
tree | 4fc12de3b604a2365ad2edb32340ba8c6359e7fc /include/hw | |
parent | 6a2897bb5f28944997a0c8410b6d2ee162b9ae98 (diff) | |
download | qemu-f32f8e4d20b00e9b1fc1fcdd61050312d9ec75f6.zip qemu-f32f8e4d20b00e9b1fc1fcdd61050312d9ec75f6.tar.gz qemu-f32f8e4d20b00e9b1fc1fcdd61050312d9ec75f6.tar.bz2 |
hw/fsi: Introduce IBM's cfam
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>
Diffstat (limited to 'include/hw')
-rw-r--r-- | include/hw/fsi/cfam.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/hw/fsi/cfam.h b/include/hw/fsi/cfam.h new file mode 100644 index 0000000..7abc3b2 --- /dev/null +++ b/include/hw/fsi/cfam.h @@ -0,0 +1,34 @@ +/* + * 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 */ |