xref: /qemu/include/hw/misc/aspeed_xdma.h (revision 8efbee28)
1118c82e7SEddie James /*
2118c82e7SEddie James  * ASPEED XDMA Controller
3118c82e7SEddie James  * Eddie James <eajames@linux.ibm.com>
4118c82e7SEddie James  *
5118c82e7SEddie James  * Copyright (C) 2019 IBM Corp.
65054ba10SRyan Finnie  * SPDX-License-Identifier: GPL-2.0-or-later
7118c82e7SEddie James  */
8118c82e7SEddie James 
9118c82e7SEddie James #ifndef ASPEED_XDMA_H
10118c82e7SEddie James #define ASPEED_XDMA_H
11118c82e7SEddie James 
12118c82e7SEddie James #include "hw/sysbus.h"
13db1015e9SEduardo Habkost #include "qom/object.h"
14118c82e7SEddie James 
15118c82e7SEddie James #define TYPE_ASPEED_XDMA "aspeed.xdma"
16*8efbee28SCédric Le Goater #define TYPE_ASPEED_2400_XDMA TYPE_ASPEED_XDMA "-ast2400"
17*8efbee28SCédric Le Goater #define TYPE_ASPEED_2500_XDMA TYPE_ASPEED_XDMA "-ast2500"
18*8efbee28SCédric Le Goater #define TYPE_ASPEED_2600_XDMA TYPE_ASPEED_XDMA "-ast2600"
19*8efbee28SCédric Le Goater OBJECT_DECLARE_TYPE(AspeedXDMAState, AspeedXDMAClass, ASPEED_XDMA)
20118c82e7SEddie James 
21118c82e7SEddie James #define ASPEED_XDMA_NUM_REGS (ASPEED_XDMA_REG_SIZE / sizeof(uint32_t))
22118c82e7SEddie James #define ASPEED_XDMA_REG_SIZE 0x7C
23118c82e7SEddie James 
24db1015e9SEduardo Habkost struct AspeedXDMAState {
25118c82e7SEddie James     SysBusDevice parent;
26118c82e7SEddie James 
27118c82e7SEddie James     MemoryRegion iomem;
28118c82e7SEddie James     qemu_irq irq;
29118c82e7SEddie James 
30118c82e7SEddie James     char bmc_cmdq_readp_set;
31118c82e7SEddie James     uint32_t regs[ASPEED_XDMA_NUM_REGS];
32db1015e9SEduardo Habkost };
33118c82e7SEddie James 
34*8efbee28SCédric Le Goater struct AspeedXDMAClass {
35*8efbee28SCédric Le Goater     SysBusDeviceClass parent_class;
36*8efbee28SCédric Le Goater 
37*8efbee28SCédric Le Goater     uint8_t cmdq_endp;
38*8efbee28SCédric Le Goater     uint8_t cmdq_wrp;
39*8efbee28SCédric Le Goater     uint8_t cmdq_rdp;
40*8efbee28SCédric Le Goater     uint8_t intr_ctrl;
41*8efbee28SCédric Le Goater     uint32_t intr_ctrl_mask;
42*8efbee28SCédric Le Goater     uint8_t intr_status;
43*8efbee28SCédric Le Goater     uint32_t intr_complete;
44*8efbee28SCédric Le Goater };
45*8efbee28SCédric Le Goater 
46118c82e7SEddie James #endif /* ASPEED_XDMA_H */
47