xref: /openbmc/qemu/include/hw/fsi/lbus.h (revision 43c6a5ec9257bc3e634dcabf4ead3be4ee7dd3d6)
1*43c6a5ecSNinad Palsule /*
2*43c6a5ecSNinad Palsule  * SPDX-License-Identifier: GPL-2.0-or-later
3*43c6a5ecSNinad Palsule  * Copyright (C) 2024 IBM Corp.
4*43c6a5ecSNinad Palsule  *
5*43c6a5ecSNinad Palsule  * IBM Local bus and connected device structures.
6*43c6a5ecSNinad Palsule  */
7*43c6a5ecSNinad Palsule #ifndef FSI_LBUS_H
8*43c6a5ecSNinad Palsule #define FSI_LBUS_H
9*43c6a5ecSNinad Palsule 
10*43c6a5ecSNinad Palsule #include "hw/qdev-core.h"
11*43c6a5ecSNinad Palsule #include "qemu/units.h"
12*43c6a5ecSNinad Palsule #include "exec/memory.h"
13*43c6a5ecSNinad Palsule 
14*43c6a5ecSNinad Palsule #define TYPE_FSI_LBUS_DEVICE "fsi.lbus.device"
15*43c6a5ecSNinad Palsule OBJECT_DECLARE_SIMPLE_TYPE(FSILBusDevice, FSI_LBUS_DEVICE)
16*43c6a5ecSNinad Palsule 
17*43c6a5ecSNinad Palsule typedef struct FSILBusDevice {
18*43c6a5ecSNinad Palsule     DeviceState parent;
19*43c6a5ecSNinad Palsule 
20*43c6a5ecSNinad Palsule     MemoryRegion iomem;
21*43c6a5ecSNinad Palsule } FSILBusDevice;
22*43c6a5ecSNinad Palsule 
23*43c6a5ecSNinad Palsule #define TYPE_FSI_LBUS "fsi.lbus"
24*43c6a5ecSNinad Palsule OBJECT_DECLARE_SIMPLE_TYPE(FSILBus, FSI_LBUS)
25*43c6a5ecSNinad Palsule 
26*43c6a5ecSNinad Palsule typedef struct FSILBus {
27*43c6a5ecSNinad Palsule     BusState bus;
28*43c6a5ecSNinad Palsule 
29*43c6a5ecSNinad Palsule     MemoryRegion mr;
30*43c6a5ecSNinad Palsule } FSILBus;
31*43c6a5ecSNinad Palsule 
32*43c6a5ecSNinad Palsule #define TYPE_FSI_SCRATCHPAD "fsi.scratchpad"
33*43c6a5ecSNinad Palsule #define SCRATCHPAD(obj) OBJECT_CHECK(FSIScratchPad, (obj), TYPE_FSI_SCRATCHPAD)
34*43c6a5ecSNinad Palsule 
35*43c6a5ecSNinad Palsule #define FSI_SCRATCHPAD_NR_REGS 4
36*43c6a5ecSNinad Palsule 
37*43c6a5ecSNinad Palsule typedef struct FSIScratchPad {
38*43c6a5ecSNinad Palsule         FSILBusDevice parent;
39*43c6a5ecSNinad Palsule 
40*43c6a5ecSNinad Palsule         uint32_t regs[FSI_SCRATCHPAD_NR_REGS];
41 } FSIScratchPad;
42 
43 #endif /* FSI_LBUS_H */
44