[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/17] xilinx_zynq: added pl330 to machine model
From: |
Peter Maydell |
Subject: |
[Qemu-devel] [PATCH 13/17] xilinx_zynq: added pl330 to machine model |
Date: |
Fri, 15 Mar 2013 16:56:35 +0000 |
From: Peter Crosthwaite <address@hidden>
Signed-off-by: Peter Crosthwaite <address@hidden>
Reviewed-by: Peter Maydell <address@hidden>
Message-id: address@hidden
Signed-off-by: Peter Maydell <address@hidden>
---
hw/arm/xilinx_zynq.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c
index f78c47e..6f36286 100644
--- a/hw/arm/xilinx_zynq.c
+++ b/hw/arm/xilinx_zynq.c
@@ -35,6 +35,10 @@
#define IRQ_OFFSET 32 /* pic interrupts start from index 32 */
+static const int dma_irqs[8] = {
+ 46, 47, 48, 49, 72, 73, 74, 75
+};
+
static struct arm_boot_info zynq_binfo = {};
static void gem_init(NICInfo *nd, uint32_t base, qemu_irq irq)
@@ -196,6 +200,26 @@ static void zynq_init(QEMUMachineInitArgs *args)
sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, 0xE0101000);
sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, pic[79-IRQ_OFFSET]);
+ dev = qdev_create(NULL, "pl330");
+ qdev_prop_set_uint8(dev, "num_chnls", 8);
+ qdev_prop_set_uint8(dev, "num_periph_req", 4);
+ qdev_prop_set_uint8(dev, "num_events", 16);
+
+ qdev_prop_set_uint8(dev, "data_width", 64);
+ qdev_prop_set_uint8(dev, "wr_cap", 8);
+ qdev_prop_set_uint8(dev, "wr_q_dep", 16);
+ qdev_prop_set_uint8(dev, "rd_cap", 8);
+ qdev_prop_set_uint8(dev, "rd_q_dep", 16);
+ qdev_prop_set_uint16(dev, "data_buffer_dep", 256);
+
+ qdev_init_nofail(dev);
+ busdev = SYS_BUS_DEVICE(dev);
+ sysbus_mmio_map(busdev, 0, 0xF8003000);
+ sysbus_connect_irq(busdev, 0, pic[45-IRQ_OFFSET]); /* abort irq line */
+ for (n = 0; n < 8; ++n) { /* event irqs */
+ sysbus_connect_irq(busdev, n + 1, pic[dma_irqs[n] - IRQ_OFFSET]);
+ }
+
zynq_binfo.ram_size = ram_size;
zynq_binfo.kernel_filename = kernel_filename;
zynq_binfo.kernel_cmdline = kernel_cmdline;
--
1.7.9.5
- [Qemu-devel] [PULL 00/17] arm-devs queue, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 14/17] xilinx_spips: Set unused IRQs to NULL, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 11/17] iov: Factor out hexdumper, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 17/17] xilinx_spips: QOM styling fixes, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 02/17] hw/arm_sysctl: Handle SYS_CFGCTRL in a more structured way, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 07/17] hw/arm_sysctl: Implement SYS_CFG_VOLT, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 09/17] hw/arm_sysctl: Implement SYS_CFG_OSC function, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 03/17] hw/arm_sysctl: Implement SYS_CFG_MUXFPGA writes as a no-op, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 04/17] hw/arm_sysctl: Implement SYS_CFG_DVIMODE as a no-op, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 05/17] hw/arm_sysctl: Convert from qdev init to instance_init, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 13/17] xilinx_zynq: added pl330 to machine model,
Peter Maydell <=
- [Qemu-devel] [PATCH 08/17] hw/vexpress: Pass voltage sensor properties to sysctl device, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 01/17] hw/vexpress: Pass proc_id via VEDBoardInfo, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 10/17] hw/vexpress: Set reset values for daughterboard oscillators, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 15/17] xilinx_spips: Fix bus setup conditional check, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 12/17] pl330: Initial version, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 16/17] xilinx_spips: Add missing dual-bus snoop commands, Peter Maydell, 2013/03/15
- [Qemu-devel] [PATCH 06/17] qdev: Implement (variable length) array properties, Peter Maydell, 2013/03/15
- Re: [Qemu-devel] [PULL 00/17] arm-devs queue, Blue Swirl, 2013/03/17