| /* |
| * Raspberry Pi emulation (c) 2012 Gregory Estrade |
| * |
| * This work is licensed under the terms of the GNU GPL, version 2 or later. |
| * See the COPYING file in the top-level directory. |
| */ |
| |
| #ifndef BCM2835_DMA_H |
| #define BCM2835_DMA_H |
| |
| #include "hw/sysbus.h" |
| #include "qom/object.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" |
| typedef struct BCM2835DMAState BCM2835DMAState; |
| DECLARE_INSTANCE_CHECKER(BCM2835DMAState, BCM2835_DMA, |
| TYPE_BCM2835_DMA) |
| |
| #define BCM2835_DMA_NCHANS 16 |
| |
| struct BCM2835DMAState { |
| /*< 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; |
| }; |
| |
| #endif |