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