1034c2e69SAlistair Francis /* 2034c2e69SAlistair Francis * QEMU model of the Xilinx Devcfg Interface 3034c2e69SAlistair Francis * 4034c2e69SAlistair Francis * (C) 2011 PetaLogix Pty Ltd 5034c2e69SAlistair Francis * (C) 2014 Xilinx Inc. 6034c2e69SAlistair Francis * Written by Peter Crosthwaite <peter.crosthwaite@xilinx.com> 7034c2e69SAlistair Francis * 8034c2e69SAlistair Francis * Permission is hereby granted, free of charge, to any person obtaining a copy 9034c2e69SAlistair Francis * of this software and associated documentation files (the "Software"), to deal 10034c2e69SAlistair Francis * in the Software without restriction, including without limitation the rights 11034c2e69SAlistair Francis * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12034c2e69SAlistair Francis * copies of the Software, and to permit persons to whom the Software is 13034c2e69SAlistair Francis * furnished to do so, subject to the following conditions: 14034c2e69SAlistair Francis * 15034c2e69SAlistair Francis * The above copyright notice and this permission notice shall be included in 16034c2e69SAlistair Francis * all copies or substantial portions of the Software. 17034c2e69SAlistair Francis * 18034c2e69SAlistair Francis * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19034c2e69SAlistair Francis * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20034c2e69SAlistair Francis * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21034c2e69SAlistair Francis * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22034c2e69SAlistair Francis * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23034c2e69SAlistair Francis * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24034c2e69SAlistair Francis * THE SOFTWARE. 25034c2e69SAlistair Francis */ 26034c2e69SAlistair Francis 27034c2e69SAlistair Francis #ifndef XLNX_ZYNQ_DEVCFG_H 280553d895SMarkus Armbruster #define XLNX_ZYNQ_DEVCFG_H 29034c2e69SAlistair Francis 30034c2e69SAlistair Francis #include "hw/register.h" 31034c2e69SAlistair Francis #include "hw/sysbus.h" 32db1015e9SEduardo Habkost #include "qom/object.h" 33034c2e69SAlistair Francis 34034c2e69SAlistair Francis #define TYPE_XLNX_ZYNQ_DEVCFG "xlnx.ps7-dev-cfg" 35034c2e69SAlistair Francis 36*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(XlnxZynqDevcfg, XLNX_ZYNQ_DEVCFG) 37034c2e69SAlistair Francis 38a43639b1SNathan Rossi #define XLNX_ZYNQ_DEVCFG_R_MAX (0x100 / 4) 39034c2e69SAlistair Francis 40034c2e69SAlistair Francis #define XLNX_ZYNQ_DEVCFG_DMA_CMD_FIFO_LEN 10 41034c2e69SAlistair Francis 42034c2e69SAlistair Francis typedef struct XlnxZynqDevcfgDMACmd { 43034c2e69SAlistair Francis uint32_t src_addr; 44034c2e69SAlistair Francis uint32_t dest_addr; 45034c2e69SAlistair Francis uint32_t src_len; 46034c2e69SAlistair Francis uint32_t dest_len; 47034c2e69SAlistair Francis } XlnxZynqDevcfgDMACmd; 48034c2e69SAlistair Francis 49db1015e9SEduardo Habkost struct XlnxZynqDevcfg { 50034c2e69SAlistair Francis SysBusDevice parent_obj; 51034c2e69SAlistair Francis 52034c2e69SAlistair Francis MemoryRegion iomem; 53034c2e69SAlistair Francis qemu_irq irq; 54034c2e69SAlistair Francis 55034c2e69SAlistair Francis XlnxZynqDevcfgDMACmd dma_cmd_fifo[XLNX_ZYNQ_DEVCFG_DMA_CMD_FIFO_LEN]; 56034c2e69SAlistair Francis uint8_t dma_cmd_fifo_num; 57034c2e69SAlistair Francis 58034c2e69SAlistair Francis uint32_t regs[XLNX_ZYNQ_DEVCFG_R_MAX]; 59034c2e69SAlistair Francis RegisterInfo regs_info[XLNX_ZYNQ_DEVCFG_R_MAX]; 60db1015e9SEduardo Habkost }; 61034c2e69SAlistair Francis 62034c2e69SAlistair Francis #endif 63