xref: /openbmc/qemu/include/hw/dma/xlnx-zynq-devcfg.h (revision c122bca9)
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