| /* |
| * Raspberry Pi emulation (c) 2012 Gregory Estrade |
| * This code is licensed under the GNU GPLv2 and later. |
| */ |
| |
| #ifndef BCM2835_DMA_H |
| #define BCM2835_DMA_H |
| |
| #include "qemu-common.h" |
| #include "exec/address-spaces.h" |
| #include "hw/sysbus.h" |
| |
| typedef struct { |
| uint32_t cs; |
| uint32_t conblk_ad; |
| uint32_t ti; |
| uint32_t source_ad; |
| uint32_t dest_ad; |
| uint32_t txfr_len; |
| uint32_t stride; |
| uint32_t nextconbk; |
| uint32_t debug; |
| |
| qemu_irq irq; |
| } BCM2835DMAChan; |
| |
| #define TYPE_BCM2835_DMA "bcm2835-dma" |
| #define BCM2835_DMA(obj) \ |
| OBJECT_CHECK(BCM2835DMAState, (obj), TYPE_BCM2835_DMA) |
| |
| #define BCM2835_DMA_NCHANS 16 |
| |
| typedef struct { |
| /*< private >*/ |
| SysBusDevice busdev; |
| /*< public >*/ |
| |
| MemoryRegion iomem0, iomem15; |
| MemoryRegion *dma_mr; |
| AddressSpace dma_as; |
| |
| BCM2835DMAChan chan[BCM2835_DMA_NCHANS]; |
| uint32_t int_status; |
| uint32_t enable; |
| } BCM2835DMAState; |
| |
| #endif |