xref: /openbmc/qemu/include/hw/fsi/cfam.h (revision f5e80be3922945c51a85aa08c4dfab0a2f3aacc5)
1*f5e80be3SNinad Palsule /*
2*f5e80be3SNinad Palsule  * SPDX-License-Identifier: GPL-2.0-or-later
3*f5e80be3SNinad Palsule  * Copyright (C) 2024 IBM Corp.
4*f5e80be3SNinad Palsule  *
5*f5e80be3SNinad Palsule  * IBM Common FRU Access Macro
6*f5e80be3SNinad Palsule  */
7*f5e80be3SNinad Palsule #ifndef FSI_CFAM_H
8*f5e80be3SNinad Palsule #define FSI_CFAM_H
9*f5e80be3SNinad Palsule 
10*f5e80be3SNinad Palsule #include "exec/memory.h"
11*f5e80be3SNinad Palsule 
12*f5e80be3SNinad Palsule #include "hw/fsi/fsi.h"
13*f5e80be3SNinad Palsule #include "hw/fsi/lbus.h"
14*f5e80be3SNinad Palsule 
15*f5e80be3SNinad Palsule #define TYPE_FSI_CFAM "cfam"
16*f5e80be3SNinad Palsule #define FSI_CFAM(obj) OBJECT_CHECK(FSICFAMState, (obj), TYPE_FSI_CFAM)
17*f5e80be3SNinad Palsule 
18*f5e80be3SNinad Palsule /* P9-ism */
19*f5e80be3SNinad Palsule #define CFAM_CONFIG_NR_REGS 0x28
20*f5e80be3SNinad Palsule 
21*f5e80be3SNinad Palsule typedef struct FSICFAMState {
22*f5e80be3SNinad Palsule     /* < private > */
23*f5e80be3SNinad Palsule     FSISlaveState parent;
24*f5e80be3SNinad Palsule 
25*f5e80be3SNinad Palsule     /* CFAM config address space */
26*f5e80be3SNinad Palsule     MemoryRegion config_iomem;
27*f5e80be3SNinad Palsule 
28*f5e80be3SNinad Palsule     MemoryRegion mr;
29*f5e80be3SNinad Palsule 
30*f5e80be3SNinad Palsule     FSILBus lbus;
31*f5e80be3SNinad Palsule     FSIScratchPad scratchpad;
32*f5e80be3SNinad Palsule } FSICFAMState;
33*f5e80be3SNinad Palsule 
34*f5e80be3SNinad Palsule #endif /* FSI_CFAM_H */
35*f5e80be3SNinad Palsule