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