From: KONRAD Frederic <frederic.konrad@adacore.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, mark.cave-ayland@ilande.co.uk,
chouteau@adacore.com, frederic.konrad@adacore.com,
philmd@redhat.com, atar4qemu@gmail.com
Subject: [Qemu-devel] [PATCH v3 3/7] grlib, gptimer: get rid of the old-style create function
Date: Wed, 15 May 2019 14:31:29 +0200 [thread overview]
Message-ID: <1557923493-4836-4-git-send-email-frederic.konrad@adacore.com> (raw)
In-Reply-To: <1557923493-4836-1-git-send-email-frederic.konrad@adacore.com>
Suggested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
---
hw/sparc/leon3.c | 17 ++++++++++++++++-
hw/timer/grlib_gptimer.c | 4 ++--
include/hw/sparc/grlib.h | 27 +--------------------------
3 files changed, 19 insertions(+), 29 deletions(-)
diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c
index 3430693..fb52527 100644
--- a/hw/sparc/leon3.c
+++ b/hw/sparc/leon3.c
@@ -49,6 +49,10 @@
#define LEON3_IRQMP_OFFSET (0x80000200)
+#define LEON3_TIMER_OFFSET (0x80000300)
+#define LEON3_TIMER_IRQ (6)
+#define LEON3_TIMER_COUNT (2)
+
typedef struct ResetData {
SPARCCPU *cpu;
uint32_t entry; /* save kernel entry in case of reset */
@@ -124,6 +128,7 @@ static void leon3_generic_hw_init(MachineState *machine)
int prom_size;
ResetData *reset_info;
DeviceState *dev;
+ int i;
/* Init CPU */
cpu = SPARC_CPU(cpu_create(machine->cpu_type));
@@ -220,7 +225,17 @@ static void leon3_generic_hw_init(MachineState *machine)
}
/* Allocate timers */
- grlib_gptimer_create(0x80000300, 2, CPU_CLK, cpu_irqs, 6);
+ dev = qdev_create(NULL, TYPE_GRLIB_GPTIMER);
+ qdev_prop_set_uint32(dev, "nr-timers", LEON3_TIMER_COUNT);
+ qdev_prop_set_uint32(dev, "frequency", CPU_CLK);
+ qdev_prop_set_uint32(dev, "irq-line", LEON3_TIMER_IRQ);
+ qdev_init_nofail(dev);
+
+ sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, LEON3_TIMER_OFFSET);
+ for (i = 0; i < LEON3_TIMER_COUNT; i++) {
+ sysbus_connect_irq(SYS_BUS_DEVICE(dev), i,
+ cpu_irqs[LEON3_TIMER_IRQ + i]);
+ }
/* Allocate uart */
if (serial_hd(0)) {
diff --git a/hw/timer/grlib_gptimer.c b/hw/timer/grlib_gptimer.c
index 183eddc..4b7088f 100644
--- a/hw/timer/grlib_gptimer.c
+++ b/hw/timer/grlib_gptimer.c
@@ -1,7 +1,7 @@
/*
* QEMU GRLIB GPTimer Emulator
*
- * Copyright (c) 2010-2011 AdaCore
+ * Copyright (c) 2010-2019 AdaCore
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -23,6 +23,7 @@
*/
#include "qemu/osdep.h"
+#include "hw/sparc/grlib.h"
#include "hw/sysbus.h"
#include "qemu/timer.h"
#include "hw/ptimer.h"
@@ -52,7 +53,6 @@
#define COUNTER_RELOAD_OFFSET 0x04
#define TIMER_BASE 0x10
-#define TYPE_GRLIB_GPTIMER "grlib,gptimer"
#define GRLIB_GPTIMER(obj) \
OBJECT_CHECK(GPTimerUnit, (obj), TYPE_GRLIB_GPTIMER)
diff --git a/include/hw/sparc/grlib.h b/include/hw/sparc/grlib.h
index bef371a..fe553e9 100644
--- a/include/hw/sparc/grlib.h
+++ b/include/hw/sparc/grlib.h
@@ -42,32 +42,7 @@ void grlib_irqmp_set_irq(void *opaque, int irq, int level);
void grlib_irqmp_ack(DeviceState *dev, int intno);
/* GPTimer */
-
-static inline
-DeviceState *grlib_gptimer_create(hwaddr base,
- uint32_t nr_timers,
- uint32_t freq,
- qemu_irq *cpu_irqs,
- int base_irq)
-{
- DeviceState *dev;
- int i;
-
- dev = qdev_create(NULL, "grlib,gptimer");
- qdev_prop_set_uint32(dev, "nr-timers", nr_timers);
- qdev_prop_set_uint32(dev, "frequency", freq);
- qdev_prop_set_uint32(dev, "irq-line", base_irq);
-
- qdev_init_nofail(dev);
-
- sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, base);
-
- for (i = 0; i < nr_timers; i++) {
- sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, cpu_irqs[base_irq + i]);
- }
-
- return dev;
-}
+#define TYPE_GRLIB_GPTIMER "grlib,gptimer"
/* APB UART */
--
1.8.3.1
next prev parent reply other threads:[~2019-05-15 12:38 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-15 12:31 [Qemu-devel] [PATCH v3 0/7] Leon3 patches KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 1/7] leon3: fix the error message when no bios are provided KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 2/7] grlib, irqmp: get rid of the old-style create function KONRAD Frederic
2019-05-15 12:31 ` KONRAD Frederic [this message]
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 4/7] grlib, apbuart: " KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 5/7] leon3: add a little bootloader KONRAD Frederic
2019-05-17 10:27 ` Philippe Mathieu-Daudé
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 6/7] leon3: introduce the plug and play mechanism KONRAD Frederic
2019-05-15 12:31 ` [Qemu-devel] [PATCH v3 7/7] MAINTAINERS: add myself for leon3 KONRAD Frederic
2019-05-17 8:51 ` [Qemu-devel] [PATCH v3 0/7] Leon3 patches Mark Cave-Ayland
2019-05-17 9:18 ` KONRAD Frederic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1557923493-4836-4-git-send-email-frederic.konrad@adacore.com \
--to=frederic.konrad@adacore.com \
--cc=atar4qemu@gmail.com \
--cc=chouteau@adacore.com \
--cc=mark.cave-ayland@ilande.co.uk \
--cc=peter.maydell@linaro.org \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).