* [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h
@ 2014-01-02 0:00 Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 1/8] microblaze/s3adsp_1800: Define macros for irq map Peter Crosthwaite
` (8 more replies)
0 siblings, 9 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:00 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Hi Edgar,
This file is written for a very old qdev style of machine description.
Remove by inlining all usages of its functions (which is consistent with
the modern preference that qdev_initery should be inline and not in
cross-board helper functions).
To avoid movement of magic numbers, Define macros for IRQ and memory
maps as appropriate. This cleanup comes first, followed by the
piecewise removal of xilinx.h.
I have based this ontop of my error_abort series to avoid conflicts
there.
Regards,
Peter
Peter Crosthwaite (8):
microblaze/s3adsp_1800: Define macros for irq map
ppc/virtex_ml507: Define macros for irq/memory maps
microblaze/ml605: Define macros for irq/memory maps
xilinx: Inline usages of xilinx_intc_create()
xilinx: Inline usages of xilinx_timer_create()
xilinx: Inline usage of xilinx_ethlite_create()
xilinx: Inline usages of xilinx_axi*_init()
xilinx: Delete hw/include/xilinx.h
hw/microblaze/petalogix_ml605_mmu.c | 53 +++++++++++++++----
hw/microblaze/petalogix_s3adsp1800_mmu.c | 33 ++++++++++--
hw/ppc/virtex_ml507.c | 29 +++++++---
include/hw/xilinx.h | 90 --------------------------------
4 files changed, 93 insertions(+), 112 deletions(-)
delete mode 100644 include/hw/xilinx.h
--
1.8.5.2
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 1/8] microblaze/s3adsp_1800: Define macros for irq map
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
@ 2014-01-02 0:01 ` Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 2/8] ppc/virtex_ml507: Define macros for irq/memory maps Peter Crosthwaite
` (7 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:01 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Define macros for the interrupt map for the sake of self documentation.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
I haven't converted the xilinx_foo_create usages because they will be
deleted in following patches
hw/microblaze/petalogix_s3adsp1800_mmu.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index ec6489c..1972fea 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -49,6 +49,10 @@
#define UARTLITE_BASEADDR 0x84000000
#define ETHLITE_BASEADDR 0x81000000
+#define TIMER_IRQ 0
+#define ETHLITE_IRQ 1
+#define UARTLITE_IRQ 3
+
static void machine_cpu_reset(MicroBlazeCPU *cpu)
{
CPUMBState *env = &cpu->env;
@@ -102,7 +106,8 @@ petalogix_s3adsp1800_init(QEMUMachineInitArgs *args)
irq[i] = qdev_get_gpio_in(dev, i);
}
- sysbus_create_simple("xlnx.xps-uartlite", UARTLITE_BASEADDR, irq[3]);
+ sysbus_create_simple("xlnx.xps-uartlite", UARTLITE_BASEADDR,
+ irq[UARTLITE_IRQ]);
/* 2 timers at irq 2 @ 62 Mhz. */
xilinx_timer_create(TIMER_BASEADDR, irq[0], 0, 62 * 1000000);
xilinx_ethlite_create(&nd_table[0], ETHLITE_BASEADDR, irq[1], 0, 0);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 2/8] ppc/virtex_ml507: Define macros for irq/memory maps
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 1/8] microblaze/s3adsp_1800: Define macros for irq map Peter Crosthwaite
@ 2014-01-02 0:01 ` Peter Crosthwaite
2014-01-02 0:02 ` [Qemu-devel] [RFC/RFT v1 3/8] microblaze/ml605: " Peter Crosthwaite
` (6 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:01 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Define macros for the interrupt and memory maps for the sake of self
documentation.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
I haven't converted the xilinx_foo_create usages because they will be
deleted in following patches
hw/ppc/virtex_ml507.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index bdb057e..88312f8 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -45,6 +45,14 @@
#define EPAPR_MAGIC (0x45504150)
#define FLASH_SIZE (16 * 1024 * 1024)
+#define INTC_BASEADDR 0x81800000
+#define UART16550_BASEADDR 0x83e01003
+#define TIMER_BASEADDR 0x83c00000
+#define PFLASH_BASEADDR 0xfc000000
+
+#define TIMER_IRQ 3
+#define UART16550_IRQ 9
+
static struct boot_info
{
uint32_t bootstrap_pc;
@@ -204,7 +212,7 @@ static void virtex_init(QEMUMachineInitArgs *args)
memory_region_add_subregion(address_space_mem, ram_base, phys_ram);
dinfo = drive_get(IF_PFLASH, 0, 0);
- pflash_cfi01_register(0xfc000000, NULL, "virtex.flash", FLASH_SIZE,
+ pflash_cfi01_register(PFLASH_BASEADDR, NULL, "virtex.flash", FLASH_SIZE,
dinfo ? dinfo->bdrv : NULL, (64 * 1024),
FLASH_SIZE >> 16,
1, 0x89, 0x18, 0x0000, 0x0, 1);
@@ -215,8 +223,8 @@ static void virtex_init(QEMUMachineInitArgs *args)
irq[i] = qdev_get_gpio_in(dev, i);
}
- serial_mm_init(address_space_mem, 0x83e01003ULL, 2, irq[9], 115200,
- serial_hds[0], DEVICE_LITTLE_ENDIAN);
+ serial_mm_init(address_space_mem, UART16550_BASEADDR, 2, irq[UART16550_IRQ],
+ 115200, serial_hds[0], DEVICE_LITTLE_ENDIAN);
/* 2 timers at irq 2 @ 62 Mhz. */
xilinx_timer_create(0x83c00000, irq[3], 0, 62 * 1000000);
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 3/8] microblaze/ml605: Define macros for irq/memory maps
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 1/8] microblaze/s3adsp_1800: Define macros for irq map Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 2/8] ppc/virtex_ml507: Define macros for irq/memory maps Peter Crosthwaite
@ 2014-01-02 0:02 ` Peter Crosthwaite
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create() Peter Crosthwaite
` (5 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:02 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Define (missing) macros for the interrupt and memory maps for the sake
of self documentation.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
I haven't converted the xilinx_foo_create usages because they will be
deleted in following patches
hw/microblaze/petalogix_ml605_mmu.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 10970e0..5dfc0fa 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -50,6 +50,7 @@
#define NUM_SPI_FLASHES 4
+#define SPI_BASEADDR 0x40a00000
#define MEMORY_BASEADDR 0x50000000
#define FLASH_BASEADDR 0x86000000
#define INTC_BASEADDR 0x81800000
@@ -58,6 +59,13 @@
#define AXIENET_BASEADDR 0x82780000
#define AXIDMA_BASEADDR 0x84600000
+#define AXIDMA_IRQ1 0
+#define AXIDMA_IRQ0 1
+#define TIMER_IRQ 2
+#define AXIENET_IRQ 3
+#define SPI_IRQ 4
+#define UART16550_IRQ 5
+
static void machine_cpu_reset(MicroBlazeCPU *cpu)
{
CPUMBState *env = &cpu->env;
@@ -124,7 +132,8 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
}
serial_mm_init(address_space_mem, UART16550_BASEADDR + 0x1000, 2,
- irq[5], 115200, serial_hds[0], DEVICE_LITTLE_ENDIAN);
+ irq[UART16550_IRQ], 115200, serial_hds[0],
+ DEVICE_LITTLE_ENDIAN);
/* 2 timers at irq 2 @ 100 Mhz. */
xilinx_timer_create(TIMER_BASEADDR, irq[2], 0, 100 * 1000000);
@@ -162,8 +171,8 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
qdev_prop_set_uint8(dev, "num-ss-bits", NUM_SPI_FLASHES);
qdev_init_nofail(dev);
busdev = SYS_BUS_DEVICE(dev);
- sysbus_mmio_map(busdev, 0, 0x40a00000);
- sysbus_connect_irq(busdev, 0, irq[4]);
+ sysbus_mmio_map(busdev, 0, SPI_BASEADDR);
+ sysbus_connect_irq(busdev, 0, irq[SPI_IRQ]);
spi = (SSIBus *)qdev_get_child_bus(dev, "spi");
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create()
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
` (2 preceding siblings ...)
2014-01-02 0:02 ` [Qemu-devel] [RFC/RFT v1 3/8] microblaze/ml605: " Peter Crosthwaite
@ 2014-01-02 0:03 ` Peter Crosthwaite
2014-01-12 13:32 ` Edgar E. Iglesias
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 5/8] xilinx: Inline usages of xilinx_timer_create() Peter Crosthwaite
` (4 subsequent siblings)
8 siblings, 1 reply; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:03 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Inline these usages. Converts these init to at least a semi-recent QOM
styling.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
hw/microblaze/petalogix_ml605_mmu.c | 6 +++++-
hw/microblaze/petalogix_s3adsp1800_mmu.c | 7 ++++++-
hw/ppc/virtex_ml507.c | 6 +++++-
include/hw/xilinx.h | 13 -------------
4 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 5dfc0fa..4354971 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -126,7 +126,11 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
cpu_irq = microblaze_pic_init_cpu(env);
- dev = xilinx_intc_create(INTC_BASEADDR, cpu_irq[0], 4);
+ dev = qdev_create(NULL, "xlnx.xps-intc");
+ qdev_prop_set_uint32(dev, "kind-of-intr", 1 << TIMER_IRQ);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
for (i = 0; i < 32; i++) {
irq[i] = qdev_get_gpio_in(dev, i);
}
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index 1972fea..6598687 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -101,7 +101,12 @@ petalogix_s3adsp1800_init(QEMUMachineInitArgs *args)
1, 0x89, 0x18, 0x0000, 0x0, 1);
cpu_irq = microblaze_pic_init_cpu(env);
- dev = xilinx_intc_create(INTC_BASEADDR, cpu_irq[0], 0xA);
+ dev = qdev_create(NULL, "xlnx.xps-intc");
+ qdev_prop_set_uint32(dev, "kind-of-intr",
+ 1 << ETHLITE_IRQ | 1 << UARTLITE_IRQ);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
for (i = 0; i < 32; i++) {
irq[i] = qdev_get_gpio_in(dev, i);
}
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 88312f8..1e2f532 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -218,7 +218,11 @@ static void virtex_init(QEMUMachineInitArgs *args)
1, 0x89, 0x18, 0x0000, 0x0, 1);
cpu_irq = (qemu_irq *) &env->irq_inputs[PPC40x_INPUT_INT];
- dev = xilinx_intc_create(0x81800000, cpu_irq[0], 0);
+ dev = qdev_create(NULL, "xlnx.xps-intc");
+ qdev_prop_set_uint32(dev, "kind-of-intr", 0);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
for (i = 0; i < 32; i++) {
irq[i] = qdev_get_gpio_in(dev, i);
}
diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
index 9d6debe..02400cd 100644
--- a/include/hw/xilinx.h
+++ b/include/hw/xilinx.h
@@ -7,19 +7,6 @@
#include "hw/stream.h"
#include "net/net.h"
-static inline DeviceState *
-xilinx_intc_create(hwaddr base, qemu_irq irq, int kind_of_intr)
-{
- DeviceState *dev;
-
- dev = qdev_create(NULL, "xlnx.xps-intc");
- qdev_prop_set_uint32(dev, "kind-of-intr", kind_of_intr);
- qdev_init_nofail(dev);
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
- return dev;
-}
-
/* OPB Timer/Counter. */
static inline DeviceState *
xilinx_timer_create(hwaddr base, qemu_irq irq, int oto, int freq)
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 5/8] xilinx: Inline usages of xilinx_timer_create()
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
` (3 preceding siblings ...)
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create() Peter Crosthwaite
@ 2014-01-02 0:03 ` Peter Crosthwaite
2014-01-02 0:04 ` [Qemu-devel] [RFC/RFT v1 6/8] xilinx: Inline usage of xilinx_ethlite_create() Peter Crosthwaite
` (3 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:03 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Inline these usages. Converts these init to at least a semi-recent QOM
styling.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
hw/microblaze/petalogix_ml605_mmu.c | 7 ++++++-
hw/microblaze/petalogix_s3adsp1800_mmu.c | 9 ++++++++-
hw/ppc/virtex_ml507.c | 7 ++++++-
include/hw/xilinx.h | 15 ---------------
4 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 4354971..0a34651 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -140,7 +140,12 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
DEVICE_LITTLE_ENDIAN);
/* 2 timers at irq 2 @ 100 Mhz. */
- xilinx_timer_create(TIMER_BASEADDR, irq[2], 0, 100 * 1000000);
+ dev = qdev_create(NULL, "xlnx.xps-timer");
+ qdev_prop_set_uint32(dev, "one-timer-only", 0);
+ qdev_prop_set_uint32(dev, "clock-frequency", 100 * 1000000);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, TIMER_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
/* axi ethernet and dma initialization. */
qemu_check_nic_model(&nd_table[0], "xlnx.axi-ethernet");
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index 6598687..f44f628 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -113,8 +113,15 @@ petalogix_s3adsp1800_init(QEMUMachineInitArgs *args)
sysbus_create_simple("xlnx.xps-uartlite", UARTLITE_BASEADDR,
irq[UARTLITE_IRQ]);
+
/* 2 timers at irq 2 @ 62 Mhz. */
- xilinx_timer_create(TIMER_BASEADDR, irq[0], 0, 62 * 1000000);
+ dev = qdev_create(NULL, "xlnx.xps-timer");
+ qdev_prop_set_uint32(dev, "one-timer-only", 0);
+ qdev_prop_set_uint32(dev, "clock-frequency", 62 * 1000000);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, TIMER_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
+
xilinx_ethlite_create(&nd_table[0], ETHLITE_BASEADDR, irq[1], 0, 0);
microblaze_load_kernel(cpu, ddr_base, ram_size,
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 1e2f532..4dffb96 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -231,7 +231,12 @@ static void virtex_init(QEMUMachineInitArgs *args)
115200, serial_hds[0], DEVICE_LITTLE_ENDIAN);
/* 2 timers at irq 2 @ 62 Mhz. */
- xilinx_timer_create(0x83c00000, irq[3], 0, 62 * 1000000);
+ dev = qdev_create(NULL, "xlnx.xps-timer");
+ qdev_prop_set_uint32(dev, "one-timer-only", 0);
+ qdev_prop_set_uint32(dev, "clock-frequency", 62 * 1000000);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, TIMER_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
if (kernel_filename) {
uint64_t entry, low, high;
diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
index 02400cd..a454cee 100644
--- a/include/hw/xilinx.h
+++ b/include/hw/xilinx.h
@@ -7,21 +7,6 @@
#include "hw/stream.h"
#include "net/net.h"
-/* OPB Timer/Counter. */
-static inline DeviceState *
-xilinx_timer_create(hwaddr base, qemu_irq irq, int oto, int freq)
-{
- DeviceState *dev;
-
- dev = qdev_create(NULL, "xlnx.xps-timer");
- qdev_prop_set_uint32(dev, "one-timer-only", oto);
- qdev_prop_set_uint32(dev, "clock-frequency", freq);
- qdev_init_nofail(dev);
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
- return dev;
-}
-
/* XPS Ethernet Lite MAC. */
static inline DeviceState *
xilinx_ethlite_create(NICInfo *nd, hwaddr base, qemu_irq irq,
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 6/8] xilinx: Inline usage of xilinx_ethlite_create()
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
` (4 preceding siblings ...)
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 5/8] xilinx: Inline usages of xilinx_timer_create() Peter Crosthwaite
@ 2014-01-02 0:04 ` Peter Crosthwaite
2014-01-02 0:04 ` [Qemu-devel] [RFC/RFT v1 7/8] xilinx: Inline usages of xilinx_axi*_init() Peter Crosthwaite
` (2 subsequent siblings)
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:04 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Inline the only usage. Converts this init to at least a semi-recent QOM
styling.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
hw/microblaze/petalogix_s3adsp1800_mmu.c | 9 ++++++++-
include/hw/xilinx.h | 19 -------------------
2 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index f44f628..9020bc7 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -122,7 +122,14 @@ petalogix_s3adsp1800_init(QEMUMachineInitArgs *args)
sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, TIMER_BASEADDR);
sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[TIMER_IRQ]);
- xilinx_ethlite_create(&nd_table[0], ETHLITE_BASEADDR, irq[1], 0, 0);
+ qemu_check_nic_model(&nd_table[0], "xlnx.xps-ethernetlite");
+ dev = qdev_create(NULL, "xlnx.xps-ethernetlite");
+ qdev_set_nic_properties(dev, &nd_table[0]);
+ qdev_prop_set_uint32(dev, "tx-ping-pong", 0);
+ qdev_prop_set_uint32(dev, "rx-ping-pong", 0);
+ qdev_init_nofail(dev);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, ETHLITE_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq[ETHLITE_IRQ]);
microblaze_load_kernel(cpu, ddr_base, ram_size,
args->initrd_filename,
diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
index a454cee..161f9ec 100644
--- a/include/hw/xilinx.h
+++ b/include/hw/xilinx.h
@@ -7,25 +7,6 @@
#include "hw/stream.h"
#include "net/net.h"
-/* XPS Ethernet Lite MAC. */
-static inline DeviceState *
-xilinx_ethlite_create(NICInfo *nd, hwaddr base, qemu_irq irq,
- int txpingpong, int rxpingpong)
-{
- DeviceState *dev;
-
- qemu_check_nic_model(nd, "xlnx.xps-ethernetlite");
-
- dev = qdev_create(NULL, "xlnx.xps-ethernetlite");
- qdev_set_nic_properties(dev, nd);
- qdev_prop_set_uint32(dev, "tx-ping-pong", txpingpong);
- qdev_prop_set_uint32(dev, "rx-ping-pong", rxpingpong);
- qdev_init_nofail(dev);
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
- return dev;
-}
-
static inline void
xilinx_axiethernet_init(DeviceState *dev, NICInfo *nd, StreamSlave *ds,
StreamSlave *cs, hwaddr base, qemu_irq irq, int txmem,
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 7/8] xilinx: Inline usages of xilinx_axi*_init()
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
` (5 preceding siblings ...)
2014-01-02 0:04 ` [Qemu-devel] [RFC/RFT v1 6/8] xilinx: Inline usage of xilinx_ethlite_create() Peter Crosthwaite
@ 2014-01-02 0:04 ` Peter Crosthwaite
2014-01-02 0:05 ` [Qemu-devel] [RFC/RFT v1 8/8] xilinx: Delete hw/include/xilinx.h Peter Crosthwaite
2014-01-02 1:12 ` [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Alexander Graf
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:04 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
Inline the only usage of each of xilinx_axiethernet_init and
xilinx_axidma_init. Converts this init to at least a semi-recent QOM
styling.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
hw/microblaze/petalogix_ml605_mmu.c | 24 +++++++++++++++++++-----
include/hw/xilinx.h | 33 ---------------------------------
2 files changed, 19 insertions(+), 38 deletions(-)
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 0a34651..55f9054 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -162,16 +162,30 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
"axistream-connected-target", NULL);
cs = object_property_get_link(OBJECT(dma),
"axistream-control-connected-target", NULL);
- xilinx_axiethernet_init(eth0, &nd_table[0], STREAM_SLAVE(ds),
- STREAM_SLAVE(cs), 0x82780000, irq[3], 0x1000,
- 0x1000);
+ qdev_set_nic_properties(eth0, &nd_table[0]);
+ qdev_prop_set_uint32(eth0, "rxmem", 0x1000);
+ qdev_prop_set_uint32(eth0, "txmem", 0x1000);
+ object_property_set_link(OBJECT(eth0), OBJECT(ds),
+ "axistream-connected", &error_abort);
+ object_property_set_link(OBJECT(eth0), OBJECT(cs),
+ "axistream-control-connected", &error_abort);
+ qdev_init_nofail(eth0);
+ sysbus_mmio_map(SYS_BUS_DEVICE(eth0), 0, AXIENET_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(eth0), 0, irq[AXIENET_IRQ]);
ds = object_property_get_link(OBJECT(eth0),
"axistream-connected-target", NULL);
cs = object_property_get_link(OBJECT(eth0),
"axistream-control-connected-target", NULL);
- xilinx_axidma_init(dma, STREAM_SLAVE(ds), STREAM_SLAVE(cs), 0x84600000,
- irq[1], irq[0], 100 * 1000000);
+ qdev_prop_set_uint32(dma, "freqhz", 100 * 1000000);
+ object_property_set_link(OBJECT(dma), OBJECT(ds),
+ "axistream-connected", &error_abort);
+ object_property_set_link(OBJECT(dma), OBJECT(cs),
+ "axistream-control-connected", &error_abort);
+ qdev_init_nofail(dma);
+ sysbus_mmio_map(SYS_BUS_DEVICE(dma), 0, AXIDMA_BASEADDR);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dma), 0, irq[AXIDMA_IRQ0]);
+ sysbus_connect_irq(SYS_BUS_DEVICE(dma), 1, irq[AXIDMA_IRQ1]);
{
SSIBus *spi;
diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
index 161f9ec..f06d913 100644
--- a/include/hw/xilinx.h
+++ b/include/hw/xilinx.h
@@ -7,37 +7,4 @@
#include "hw/stream.h"
#include "net/net.h"
-static inline void
-xilinx_axiethernet_init(DeviceState *dev, NICInfo *nd, StreamSlave *ds,
- StreamSlave *cs, hwaddr base, qemu_irq irq, int txmem,
- int rxmem)
-{
- qdev_set_nic_properties(dev, nd);
- qdev_prop_set_uint32(dev, "rxmem", rxmem);
- qdev_prop_set_uint32(dev, "txmem", txmem);
- object_property_set_link(OBJECT(dev), OBJECT(ds),
- "axistream-connected", &error_abort);
- object_property_set_link(OBJECT(dev), OBJECT(cs),
- "axistream-control-connected", &error_abort);
- qdev_init_nofail(dev);
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
-}
-
-static inline void
-xilinx_axidma_init(DeviceState *dev, StreamSlave *ds, StreamSlave *cs,
- hwaddr base, qemu_irq irq, qemu_irq irq2, int freqhz)
-{
- qdev_prop_set_uint32(dev, "freqhz", freqhz);
- object_property_set_link(OBJECT(dev), OBJECT(ds),
- "axistream-connected", &error_abort);
- object_property_set_link(OBJECT(dev), OBJECT(cs),
- "axistream-control-connected", &error_abort);
- qdev_init_nofail(dev);
-
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), 1, irq2);
-}
-
#endif
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [RFC/RFT v1 8/8] xilinx: Delete hw/include/xilinx.h
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
` (6 preceding siblings ...)
2014-01-02 0:04 ` [Qemu-devel] [RFC/RFT v1 7/8] xilinx: Inline usages of xilinx_axi*_init() Peter Crosthwaite
@ 2014-01-02 0:05 ` Peter Crosthwaite
2014-01-02 1:12 ` [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Alexander Graf
8 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-02 0:05 UTC (permalink / raw)
To: qemu-devel, edgar.iglesias; +Cc: agraf
This is now obsolete - remove the header and all its inclusions.
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
hw/microblaze/petalogix_ml605_mmu.c | 1 -
hw/microblaze/petalogix_s3adsp1800_mmu.c | 1 -
hw/ppc/virtex_ml507.c | 2 +-
include/hw/xilinx.h | 10 ----------
4 files changed, 1 insertion(+), 13 deletions(-)
delete mode 100644 include/hw/xilinx.h
diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
index 55f9054..1fc693e 100644
--- a/hw/microblaze/petalogix_ml605_mmu.c
+++ b/hw/microblaze/petalogix_ml605_mmu.c
@@ -32,7 +32,6 @@
#include "sysemu/sysemu.h"
#include "hw/devices.h"
#include "hw/boards.h"
-#include "hw/xilinx.h"
#include "sysemu/blockdev.h"
#include "hw/char/serial.h"
#include "exec/address-spaces.h"
diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
index 9020bc7..ca04de3 100644
--- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
+++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
@@ -30,7 +30,6 @@
#include "sysemu/sysemu.h"
#include "hw/devices.h"
#include "hw/boards.h"
-#include "hw/xilinx.h"
#include "sysemu/blockdev.h"
#include "exec/address-spaces.h"
diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
index 4dffb96..85a0e53 100644
--- a/hw/ppc/virtex_ml507.c
+++ b/hw/ppc/virtex_ml507.c
@@ -40,7 +40,7 @@
#include "ppc405.h"
#include "sysemu/blockdev.h"
-#include "hw/xilinx.h"
+#include "qapi/qmp/qerror.h"
#define EPAPR_MAGIC (0x45504150)
#define FLASH_SIZE (16 * 1024 * 1024)
diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
deleted file mode 100644
index f06d913..0000000
--- a/include/hw/xilinx.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef HW_XILINX_H
-#define HW_XILINX_H 1
-
-
-#include "qemu-common.h"
-#include "qapi/qmp/qerror.h"
-#include "hw/stream.h"
-#include "net/net.h"
-
-#endif
--
1.8.5.2
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
` (7 preceding siblings ...)
2014-01-02 0:05 ` [Qemu-devel] [RFC/RFT v1 8/8] xilinx: Delete hw/include/xilinx.h Peter Crosthwaite
@ 2014-01-02 1:12 ` Alexander Graf
8 siblings, 0 replies; 12+ messages in thread
From: Alexander Graf @ 2014-01-02 1:12 UTC (permalink / raw)
To: Peter Crosthwaite; +Cc: Edgar E. Iglesias, QEMU Developers
On 02.01.2014, at 01:00, Peter Crosthwaite <peter.crosthwaite@xilinx.com> wrote:
> Hi Edgar,
>
> This file is written for a very old qdev style of machine description.
> Remove by inlining all usages of its functions (which is consistent with
> the modern preference that qdev_initery should be inline and not in
> cross-board helper functions).
>
> To avoid movement of magic numbers, Define macros for IRQ and memory
> maps as appropriate. This cleanup comes first, followed by the
> piecewise removal of xilinx.h.
>
> I have based this ontop of my error_abort series to avoid conflicts
> there.
No complaints from me :).
Alex
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create()
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create() Peter Crosthwaite
@ 2014-01-12 13:32 ` Edgar E. Iglesias
2014-01-12 22:21 ` Peter Crosthwaite
0 siblings, 1 reply; 12+ messages in thread
From: Edgar E. Iglesias @ 2014-01-12 13:32 UTC (permalink / raw)
To: Peter Crosthwaite; +Cc: qemu-devel, agraf
On Wed, Jan 01, 2014 at 04:03:06PM -0800, Peter Crosthwaite wrote:
> Inline these usages. Converts these init to at least a semi-recent QOM
> styling.
Thanks Peter,
I dont mind the patches but can you clarify the win with this? Looks
like we are mostly reducing code reusage?
A similar patch was discussed a while back ago:
http://lists.gnu.org/archive/html/qemu-devel/2009-09/msg00978.html
Cheers,
Edgar
>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
>
> hw/microblaze/petalogix_ml605_mmu.c | 6 +++++-
> hw/microblaze/petalogix_s3adsp1800_mmu.c | 7 ++++++-
> hw/ppc/virtex_ml507.c | 6 +++++-
> include/hw/xilinx.h | 13 -------------
> 4 files changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
> index 5dfc0fa..4354971 100644
> --- a/hw/microblaze/petalogix_ml605_mmu.c
> +++ b/hw/microblaze/petalogix_ml605_mmu.c
> @@ -126,7 +126,11 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
>
>
> cpu_irq = microblaze_pic_init_cpu(env);
> - dev = xilinx_intc_create(INTC_BASEADDR, cpu_irq[0], 4);
> + dev = qdev_create(NULL, "xlnx.xps-intc");
> + qdev_prop_set_uint32(dev, "kind-of-intr", 1 << TIMER_IRQ);
> + qdev_init_nofail(dev);
> + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
> + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
> for (i = 0; i < 32; i++) {
> irq[i] = qdev_get_gpio_in(dev, i);
> }
> diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
> index 1972fea..6598687 100644
> --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
> +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
> @@ -101,7 +101,12 @@ petalogix_s3adsp1800_init(QEMUMachineInitArgs *args)
> 1, 0x89, 0x18, 0x0000, 0x0, 1);
>
> cpu_irq = microblaze_pic_init_cpu(env);
> - dev = xilinx_intc_create(INTC_BASEADDR, cpu_irq[0], 0xA);
> + dev = qdev_create(NULL, "xlnx.xps-intc");
> + qdev_prop_set_uint32(dev, "kind-of-intr",
> + 1 << ETHLITE_IRQ | 1 << UARTLITE_IRQ);
> + qdev_init_nofail(dev);
> + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
> + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
> for (i = 0; i < 32; i++) {
> irq[i] = qdev_get_gpio_in(dev, i);
> }
> diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
> index 88312f8..1e2f532 100644
> --- a/hw/ppc/virtex_ml507.c
> +++ b/hw/ppc/virtex_ml507.c
> @@ -218,7 +218,11 @@ static void virtex_init(QEMUMachineInitArgs *args)
> 1, 0x89, 0x18, 0x0000, 0x0, 1);
>
> cpu_irq = (qemu_irq *) &env->irq_inputs[PPC40x_INPUT_INT];
> - dev = xilinx_intc_create(0x81800000, cpu_irq[0], 0);
> + dev = qdev_create(NULL, "xlnx.xps-intc");
> + qdev_prop_set_uint32(dev, "kind-of-intr", 0);
> + qdev_init_nofail(dev);
> + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
> + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
> for (i = 0; i < 32; i++) {
> irq[i] = qdev_get_gpio_in(dev, i);
> }
> diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
> index 9d6debe..02400cd 100644
> --- a/include/hw/xilinx.h
> +++ b/include/hw/xilinx.h
> @@ -7,19 +7,6 @@
> #include "hw/stream.h"
> #include "net/net.h"
>
> -static inline DeviceState *
> -xilinx_intc_create(hwaddr base, qemu_irq irq, int kind_of_intr)
> -{
> - DeviceState *dev;
> -
> - dev = qdev_create(NULL, "xlnx.xps-intc");
> - qdev_prop_set_uint32(dev, "kind-of-intr", kind_of_intr);
> - qdev_init_nofail(dev);
> - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
> - sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
> - return dev;
> -}
> -
> /* OPB Timer/Counter. */
> static inline DeviceState *
> xilinx_timer_create(hwaddr base, qemu_irq irq, int oto, int freq)
> --
> 1.8.5.2
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create()
2014-01-12 13:32 ` Edgar E. Iglesias
@ 2014-01-12 22:21 ` Peter Crosthwaite
0 siblings, 0 replies; 12+ messages in thread
From: Peter Crosthwaite @ 2014-01-12 22:21 UTC (permalink / raw)
To: Edgar E. Iglesias, Markus Armbruster
Cc: qemu-devel@nongnu.org Developers, Alexander Graf
Hi Edgar,
On Sun, Jan 12, 2014 at 11:32 PM, Edgar E. Iglesias
<edgar.iglesias@gmail.com> wrote:
> On Wed, Jan 01, 2014 at 04:03:06PM -0800, Peter Crosthwaite wrote:
>> Inline these usages. Converts these init to at least a semi-recent QOM
>> styling.
>
> Thanks Peter,
>
> I dont mind the patches but can you clarify the win with this? Looks
> like we are mostly reducing code reusage?
>
The code reusage is a minimal win as there are only at most 3 usages
and we have no plans to add more. On the plus side, the APIs that are
wrapped do serve nicely as self-documenting code when pulled back into
the machine model:
qdev_prop_set_uint32(dev, "kind-of-intr",
1 << ETHLITE_IRQ | 1 << UARTLITE_IRQ);
inline in the machine model, is much clearer than having to check
xilinx.h to see what the 3rd argument of xilinx_intc_create means.
The other motivation is for the per-master-address work which I wanted
to look into bringing online for device-land (via some patches to
sysbus etc.). To register a non-root address space for each device,
the AddressSpace argument would have to be added to all the xilinx.h
APIs increasing the footprint of these helper functions just a little
more. The diff on converting just your lead example of the single
microblaze machine to PMA is minimised with this series as it doesn't
affect the other two xilinx.h dependent boards anymore.
> A similar patch was discussed a while back ago:
> http://lists.gnu.org/archive/html/qemu-devel/2009-09/msg00978.html
>
I agree with Markus' original patch, but mainly because since 2009
(and that discussion) QOM styling has moved a long way in favor of
Markus' arguments.
Regards,
Peter
> Cheers,
> Edgar
>
>
>>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> ---
>>
>> hw/microblaze/petalogix_ml605_mmu.c | 6 +++++-
>> hw/microblaze/petalogix_s3adsp1800_mmu.c | 7 ++++++-
>> hw/ppc/virtex_ml507.c | 6 +++++-
>> include/hw/xilinx.h | 13 -------------
>> 4 files changed, 16 insertions(+), 16 deletions(-)
>>
>> diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_ml605_mmu.c
>> index 5dfc0fa..4354971 100644
>> --- a/hw/microblaze/petalogix_ml605_mmu.c
>> +++ b/hw/microblaze/petalogix_ml605_mmu.c
>> @@ -126,7 +126,11 @@ petalogix_ml605_init(QEMUMachineInitArgs *args)
>>
>>
>> cpu_irq = microblaze_pic_init_cpu(env);
>> - dev = xilinx_intc_create(INTC_BASEADDR, cpu_irq[0], 4);
>> + dev = qdev_create(NULL, "xlnx.xps-intc");
>> + qdev_prop_set_uint32(dev, "kind-of-intr", 1 << TIMER_IRQ);
>> + qdev_init_nofail(dev);
>> + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
>> + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
>> for (i = 0; i < 32; i++) {
>> irq[i] = qdev_get_gpio_in(dev, i);
>> }
>> diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petalogix_s3adsp1800_mmu.c
>> index 1972fea..6598687 100644
>> --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c
>> +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c
>> @@ -101,7 +101,12 @@ petalogix_s3adsp1800_init(QEMUMachineInitArgs *args)
>> 1, 0x89, 0x18, 0x0000, 0x0, 1);
>>
>> cpu_irq = microblaze_pic_init_cpu(env);
>> - dev = xilinx_intc_create(INTC_BASEADDR, cpu_irq[0], 0xA);
>> + dev = qdev_create(NULL, "xlnx.xps-intc");
>> + qdev_prop_set_uint32(dev, "kind-of-intr",
>> + 1 << ETHLITE_IRQ | 1 << UARTLITE_IRQ);
>> + qdev_init_nofail(dev);
>> + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
>> + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
>> for (i = 0; i < 32; i++) {
>> irq[i] = qdev_get_gpio_in(dev, i);
>> }
>> diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c
>> index 88312f8..1e2f532 100644
>> --- a/hw/ppc/virtex_ml507.c
>> +++ b/hw/ppc/virtex_ml507.c
>> @@ -218,7 +218,11 @@ static void virtex_init(QEMUMachineInitArgs *args)
>> 1, 0x89, 0x18, 0x0000, 0x0, 1);
>>
>> cpu_irq = (qemu_irq *) &env->irq_inputs[PPC40x_INPUT_INT];
>> - dev = xilinx_intc_create(0x81800000, cpu_irq[0], 0);
>> + dev = qdev_create(NULL, "xlnx.xps-intc");
>> + qdev_prop_set_uint32(dev, "kind-of-intr", 0);
>> + qdev_init_nofail(dev);
>> + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, INTC_BASEADDR);
>> + sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, cpu_irq[0]);
>> for (i = 0; i < 32; i++) {
>> irq[i] = qdev_get_gpio_in(dev, i);
>> }
>> diff --git a/include/hw/xilinx.h b/include/hw/xilinx.h
>> index 9d6debe..02400cd 100644
>> --- a/include/hw/xilinx.h
>> +++ b/include/hw/xilinx.h
>> @@ -7,19 +7,6 @@
>> #include "hw/stream.h"
>> #include "net/net.h"
>>
>> -static inline DeviceState *
>> -xilinx_intc_create(hwaddr base, qemu_irq irq, int kind_of_intr)
>> -{
>> - DeviceState *dev;
>> -
>> - dev = qdev_create(NULL, "xlnx.xps-intc");
>> - qdev_prop_set_uint32(dev, "kind-of-intr", kind_of_intr);
>> - qdev_init_nofail(dev);
>> - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
>> - sysbus_connect_irq(SYS_BUS_DEVICE(dev), 0, irq);
>> - return dev;
>> -}
>> -
>> /* OPB Timer/Counter. */
>> static inline DeviceState *
>> xilinx_timer_create(hwaddr base, qemu_irq irq, int oto, int freq)
>> --
>> 1.8.5.2
>>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2014-01-12 22:21 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-02 0:00 [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 1/8] microblaze/s3adsp_1800: Define macros for irq map Peter Crosthwaite
2014-01-02 0:01 ` [Qemu-devel] [RFC/RFT v1 2/8] ppc/virtex_ml507: Define macros for irq/memory maps Peter Crosthwaite
2014-01-02 0:02 ` [Qemu-devel] [RFC/RFT v1 3/8] microblaze/ml605: " Peter Crosthwaite
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 4/8] xilinx: Inline usages of xilinx_intc_create() Peter Crosthwaite
2014-01-12 13:32 ` Edgar E. Iglesias
2014-01-12 22:21 ` Peter Crosthwaite
2014-01-02 0:03 ` [Qemu-devel] [RFC/RFT v1 5/8] xilinx: Inline usages of xilinx_timer_create() Peter Crosthwaite
2014-01-02 0:04 ` [Qemu-devel] [RFC/RFT v1 6/8] xilinx: Inline usage of xilinx_ethlite_create() Peter Crosthwaite
2014-01-02 0:04 ` [Qemu-devel] [RFC/RFT v1 7/8] xilinx: Inline usages of xilinx_axi*_init() Peter Crosthwaite
2014-01-02 0:05 ` [Qemu-devel] [RFC/RFT v1 8/8] xilinx: Delete hw/include/xilinx.h Peter Crosthwaite
2014-01-02 1:12 ` [Qemu-devel] [RFC/RFT v1 0/8] mb/ppc: Remove include/hw/xilinx.h Alexander Graf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).