1*fbb5945eSPhilippe Mathieu-Daudé /* 2*fbb5945eSPhilippe Mathieu-Daudé * QEMU AHCI Emulation (MMIO-mapped devices) 3*fbb5945eSPhilippe Mathieu-Daudé * 4*fbb5945eSPhilippe Mathieu-Daudé * SPDX-License-Identifier: GPL-2.0-or-later 5*fbb5945eSPhilippe Mathieu-Daudé */ 6*fbb5945eSPhilippe Mathieu-Daudé #ifndef HW_IDE_AHCI_SYSBUS_H 7*fbb5945eSPhilippe Mathieu-Daudé #define HW_IDE_AHCI_SYSBUS_H 8*fbb5945eSPhilippe Mathieu-Daudé 9*fbb5945eSPhilippe Mathieu-Daudé #include "qom/object.h" 10*fbb5945eSPhilippe Mathieu-Daudé #include "hw/sysbus.h" 11*fbb5945eSPhilippe Mathieu-Daudé #include "hw/ide/ahci.h" 12*fbb5945eSPhilippe Mathieu-Daudé 13*fbb5945eSPhilippe Mathieu-Daudé #define TYPE_SYSBUS_AHCI "sysbus-ahci" 14*fbb5945eSPhilippe Mathieu-Daudé OBJECT_DECLARE_SIMPLE_TYPE(SysbusAHCIState, SYSBUS_AHCI) 15*fbb5945eSPhilippe Mathieu-Daudé 16*fbb5945eSPhilippe Mathieu-Daudé struct SysbusAHCIState { 17*fbb5945eSPhilippe Mathieu-Daudé SysBusDevice parent_obj; 18*fbb5945eSPhilippe Mathieu-Daudé 19*fbb5945eSPhilippe Mathieu-Daudé AHCIState ahci; 20*fbb5945eSPhilippe Mathieu-Daudé }; 21*fbb5945eSPhilippe Mathieu-Daudé 22*fbb5945eSPhilippe Mathieu-Daudé #define TYPE_ALLWINNER_AHCI "allwinner-ahci" 23*fbb5945eSPhilippe Mathieu-Daudé OBJECT_DECLARE_SIMPLE_TYPE(AllwinnerAHCIState, ALLWINNER_AHCI) 24*fbb5945eSPhilippe Mathieu-Daudé 25*fbb5945eSPhilippe Mathieu-Daudé #define ALLWINNER_AHCI_MMIO_OFF 0x80 26*fbb5945eSPhilippe Mathieu-Daudé #define ALLWINNER_AHCI_MMIO_SIZE 0x80 27*fbb5945eSPhilippe Mathieu-Daudé 28*fbb5945eSPhilippe Mathieu-Daudé struct AllwinnerAHCIState { 29*fbb5945eSPhilippe Mathieu-Daudé SysbusAHCIState parent_obj; 30*fbb5945eSPhilippe Mathieu-Daudé 31*fbb5945eSPhilippe Mathieu-Daudé MemoryRegion mmio; 32*fbb5945eSPhilippe Mathieu-Daudé uint32_t regs[ALLWINNER_AHCI_MMIO_SIZE / 4]; 33*fbb5945eSPhilippe Mathieu-Daudé }; 34*fbb5945eSPhilippe Mathieu-Daudé 35*fbb5945eSPhilippe Mathieu-Daudé #endif 36