All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philippe.mathieu.daude@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Stefan Pejic" <stefan.pejic@syrmia.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Bernhard Beschow" <shentey@gmail.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>
Subject: [PULL 40/49] hw/rtc/mc146818rtc: QOM'ify io_base offset
Date: Sat, 11 Jun 2022 12:33:03 +0200	[thread overview]
Message-ID: <20220611103312.67773-41-philippe.mathieu.daude@gmail.com> (raw)
In-Reply-To: <20220611103312.67773-1-philippe.mathieu.daude@gmail.com>

From: Bernhard Beschow <shentey@gmail.com>

Exposing the io_base offset as a QOM property not only allows it to be
configurable but also to be displayed in HMP:

Before:

(qemu) info qtree
       ...
          dev: mc146818rtc, id ""
            gpio-out "" 1
            base_year = 0 (0x0)
            irq = 8 (0x8)
            lost_tick_policy = "discard"

After:

          dev: mc146818rtc, id ""
            gpio-out "" 1
            base_year = 0 (0x0)
            iobase = 112 (0x70)
            irq = 8 (0x8)
            lost_tick_policy = "discard"

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20220529184006.10712-4-shentey@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 hw/i386/microvm-dt.c         | 2 +-
 hw/rtc/mc146818rtc.c         | 9 ++++++---
 include/hw/rtc/mc146818rtc.h | 2 +-
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/hw/i386/microvm-dt.c b/hw/i386/microvm-dt.c
index 287818c641..b3049e4f9f 100644
--- a/hw/i386/microvm-dt.c
+++ b/hw/i386/microvm-dt.c
@@ -210,7 +210,7 @@ static void dt_add_isa_rtc(MicrovmMachineState *mms, ISADevice *dev)
 {
     const char compat[] = "motorola,mc146818";
     uint32_t irq = object_property_get_uint(OBJECT(dev), "irq", &error_fatal);
-    hwaddr base = RTC_ISA_BASE;
+    hwaddr base = object_property_get_uint(OBJECT(dev), "iobase", &error_fatal);
     hwaddr size = 8;
     char *nodename;
 
diff --git a/hw/rtc/mc146818rtc.c b/hw/rtc/mc146818rtc.c
index ef9765bb8f..1ebb412479 100644
--- a/hw/rtc/mc146818rtc.c
+++ b/hw/rtc/mc146818rtc.c
@@ -74,6 +74,8 @@
 #define RTC_CLOCK_RATE            32768
 #define UIP_HOLD_LENGTH           (8 * NANOSECONDS_PER_SECOND / 32768)
 
+#define RTC_ISA_BASE 0x70
+
 static void rtc_set_time(RTCState *s);
 static void rtc_update_time(RTCState *s);
 static void rtc_set_cmos(RTCState *s, const struct tm *tm);
@@ -941,7 +943,7 @@ static void rtc_realizefn(DeviceState *dev, Error **errp)
     qemu_register_suspend_notifier(&s->suspend_notifier);
 
     memory_region_init_io(&s->io, OBJECT(s), &cmos_ops, s, "rtc", 2);
-    isa_register_ioport(isadev, &s->io, RTC_ISA_BASE);
+    isa_register_ioport(isadev, &s->io, s->io_base);
 
     /* register rtc 0x70 port for coalesced_pio */
     memory_region_set_flush_coalesced(&s->io);
@@ -950,7 +952,7 @@ static void rtc_realizefn(DeviceState *dev, Error **errp)
     memory_region_add_subregion(&s->io, 0, &s->coalesced_io);
     memory_region_add_coalescing(&s->coalesced_io, 0, 1);
 
-    qdev_set_legacy_instance_id(dev, RTC_ISA_BASE, 3);
+    qdev_set_legacy_instance_id(dev, s->io_base, 3);
 
     object_property_add_tm(OBJECT(s), "date", rtc_get_date);
 
@@ -983,6 +985,7 @@ ISADevice *mc146818_rtc_init(ISABus *bus, int base_year, qemu_irq intercept_irq)
 
 static Property mc146818rtc_properties[] = {
     DEFINE_PROP_INT32("base_year", RTCState, base_year, 1980),
+    DEFINE_PROP_UINT16("iobase", RTCState, io_base, RTC_ISA_BASE),
     DEFINE_PROP_UINT8("irq", RTCState, isairq, RTC_ISA_IRQ),
     DEFINE_PROP_LOSTTICKPOLICY("lost_tick_policy", RTCState,
                                lost_tick_policy, LOST_TICK_POLICY_DISCARD),
@@ -1028,7 +1031,7 @@ static void rtc_build_aml(AcpiDevAmlIf *adev, Aml *scope)
      * does, even though qemu only responds to the first two ports.
      */
     crs = aml_resource_template();
-    aml_append(crs, aml_io(AML_DECODE16, RTC_ISA_BASE, RTC_ISA_BASE,
+    aml_append(crs, aml_io(AML_DECODE16, s->io_base, s->io_base,
                            0x01, 0x08));
     aml_append(crs, aml_irq_no_flags(s->isairq));
 
diff --git a/include/hw/rtc/mc146818rtc.h b/include/hw/rtc/mc146818rtc.h
index 33d85753c0..1db0fcee92 100644
--- a/include/hw/rtc/mc146818rtc.h
+++ b/include/hw/rtc/mc146818rtc.h
@@ -26,6 +26,7 @@ struct RTCState {
     uint8_t cmos_data[128];
     uint8_t cmos_index;
     uint8_t isairq;
+    uint16_t io_base;
     int32_t base_year;
     uint64_t base_rtc;
     uint64_t last_update;
@@ -49,7 +50,6 @@ struct RTCState {
 };
 
 #define RTC_ISA_IRQ 8
-#define RTC_ISA_BASE 0x70
 
 ISADevice *mc146818_rtc_init(ISABus *bus, int base_year,
                              qemu_irq intercept_irq);
-- 
2.36.1



  parent reply	other threads:[~2022-06-11 11:30 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-11 10:32 [PULL 00/49] MIPS patches for 2022-06-11 Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 01/49] target/mips: Fix WatchHi.M handling Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 02/49] target/mips: Fix SAT_S trans helper Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 03/49] target/mips: Fix df_extract_val() and df_extract_df() dfe lookup Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 04/49] target/mips: Fix msa checking condition in trans_msa_elm_fn() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 05/49] target/mips: Do not treat msa INSERT as NOP when wd is zero Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 06/49] target/mips: Fix store adress of high 64bit in helper_msa_st_b() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 07/49] target/mips: Fix FTRUNC_S and FTRUNC_U trans helper Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 08/49] target/mips: Fix emulation of nanoMIPS MTHLIP instruction Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 09/49] target/mips: Fix emulation of nanoMIPS EXTRV_S.H instruction Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 10/49] target/mips: Fix emulation of nanoMIPS BPOSGE32C instruction Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 11/49] target/mips: Fix emulation of nanoMIPS BNEC[32] instruction Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 12/49] target/mips: Fix handling of unaligned memory access for nanoMIPS ISA Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 13/49] target/mips: Add missing default cases for some nanoMIPS pools Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 14/49] target/mips: Undeprecate nanoMIPS ISA support in QEMU Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 15/49] hw/block/fdc-sysbus: Always mark sysbus floppy controllers as not having DMA Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 16/49] hw/acpi/piix4: move xen_enabled() logic from piix4_pm_init() to piix4_pm_realize() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 17/49] hw/acpi/piix4: change smm_enabled from int to bool Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 18/49] hw/acpi/piix4: convert smm_enabled bool to qdev property Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 19/49] hw/acpi/piix4: move PIIX4PMState into separate piix4.h header Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 20/49] hw/acpi/piix4: alter piix4_pm_init() to return PIIX4PMState Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 21/49] hw/acpi/piix4: rename piix4_pm_init() to piix4_pm_initfn() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 22/49] hw/acpi/piix4: use qdev gpio to wire up sci_irq Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 23/49] hw/acpi/piix4: use qdev gpio to wire up smi_irq Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 24/49] hw/i386/pc_piix: create PIIX4_PM device directly instead of using piix4_pm_initfn() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 25/49] hw/isa/piix4.c: " Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 26/49] hw/acpi/piix4: remove unused piix4_pm_initfn() function Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 27/49] hw/southbridge/piix: Aggregate all PIIX southbridge type names Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 28/49] hw/isa/piix4: Use object_initialize_child() for embedded struct Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 29/49] hw/isa/piix4: Move pci_map_irq_fn' near pci_set_irq_fn Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 30/49] hw/isa/piix4: QOM'ify PCI device creation and wiring Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 31/49] hw/isa/piix4: Factor out ISABus retrieval from piix4_create() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 32/49] hw/isa/piix4: QOM'ify PIIX4 PM creation Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 33/49] hw/isa/piix4: Inline and remove piix4_create() Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 34/49] hw/isa/piix3: Move pci_map_irq_fn near pci_set_irq_fn Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 35/49] hw/isa/piix3: QOM'ify PCI device creation and wiring Philippe Mathieu-Daudé
2022-06-11 10:32 ` [PULL 36/49] hw/isa/piix3: Factor out ISABus retrieval from piix3_create() Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 37/49] hw/isa/piix3: Inline and remove piix3_create() Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 38/49] hw/i386/microvm-dt: Force explicit failure if retrieving QOM property fails Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 39/49] hw/i386/microvm-dt: Determine mc146818rtc's IRQ number from QOM property Philippe Mathieu-Daudé
2022-06-11 10:33 ` Philippe Mathieu-Daudé [this message]
2022-06-11 10:33 ` [PULL 41/49] hw: Reuse TYPE_I8042 define Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 42/49] hw/audio/cs4231a: Const'ify global tables Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 43/49] hw/i386/pc: Unexport PC_CPU_MODEL_IDS macro Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 44/49] hw/i386/pc: Unexport functions used only internally Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 45/49] hw/i386/pc: Remove orphan declarations Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 46/49] hw/net/fsl_etsec/etsec: Remove obsolete and unused etsec_create() Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 47/49] accel/tcg/cpu-exec: Unexport dump_drift_info() Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 48/49] accel/tcg: Inline dump_opcount_info() and remove it Philippe Mathieu-Daudé
2022-06-11 10:33 ` [PULL 49/49] docs/devel: Fix link to developer mailing lists Philippe Mathieu-Daudé
2022-06-11 22:00 ` [PULL 00/49] MIPS patches for 2022-06-11 Philippe Mathieu-Daudé via
2022-06-12  3:50 ` Richard Henderson

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=20220611103312.67773-41-philippe.mathieu.daude@gmail.com \
    --to=philippe.mathieu.daude@gmail.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=aurelien@aurel32.net \
    --cc=f4bug@amsat.org \
    --cc=hpoussin@reactos.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=qemu-devel@nongnu.org \
    --cc=shentey@gmail.com \
    --cc=stefan.pejic@syrmia.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.