qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bernhard Beschow <shentey@gmail.com>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: "QEMU Developers" <qemu-devel@nongnu.org>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
	"Huacai Chen" <chenhuacai@kernel.org>,
	"open list:sam460ex" <qemu-ppc@nongnu.org>
Subject: Re: [PATCH 8/9] hw/isa/vt82c686: QOM'ify RTC creation
Date: Tue, 23 Aug 2022 20:38:25 +0200	[thread overview]
Message-ID: <CAG4p6K4BhgTAXAApG4CyRH3bCgMF97wBV5Vm0caBc-krOgEX_Q@mail.gmail.com> (raw)
In-Reply-To: <96f054aa-41b5-b3c0-accc-46678485b87d@eik.bme.hu>

[-- Attachment #1: Type: text/plain, Size: 3484 bytes --]

On Tue, Aug 23, 2022 at 2:20 AM BALATON Zoltan <balaton@eik.bme.hu> wrote:

> On Tue, 23 Aug 2022, Bernhard Beschow wrote:
> > Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> > ---
> > hw/isa/vt82c686.c | 12 +++++++++++-
> > 1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
> > index 47f2fd2669..ee745d5d49 100644
> > --- a/hw/isa/vt82c686.c
> > +++ b/hw/isa/vt82c686.c
> > @@ -546,6 +546,7 @@ struct ViaISAState {
> >     qemu_irq cpu_intr;
> >     qemu_irq *isa_irqs;
> >     ViaSuperIOState via_sio;
> > +    RTCState rtc;
> >     PCIIDEState ide;
> >     UHCIState uhci[2];
> >     ViaPMState pm;
> > @@ -567,6 +568,7 @@ static void via_isa_init(Object *obj)
> > {
> >     ViaISAState *s = VIA_ISA(obj);
> >
> > +    object_initialize_child(obj, "rtc", &s->rtc, TYPE_MC146818_RTC);
> >     object_initialize_child(obj, "ide", &s->ide, "via-ide");
> >     object_initialize_child(obj, "uhci1", &s->uhci[0],
> "vt82c686b-usb-uhci");
> >     object_initialize_child(obj, "uhci2", &s->uhci[1],
> "vt82c686b-usb-uhci");
> > @@ -615,7 +617,15 @@ static void via_isa_realize(PCIDevice *d, Error
> **errp)
> >     isa_bus_irqs(isa_bus, s->isa_irqs);
> >     i8254_pit_init(isa_bus, 0x40, 0, NULL);
> >     i8257_dma_init(isa_bus, 0);
> > -    mc146818_rtc_init(isa_bus, 2000, NULL);
> > +
> > +    /* RTC */
> > +    qdev_prop_set_int32(DEVICE(&s->rtc), "base_year", 2000);
> > +    if (!qdev_realize(DEVICE(&s->rtc), BUS(isa_bus), errp)) {
> > +        return;
> > +    }
> > +    object_property_add_alias(qdev_get_machine(), "rtc-time",
> OBJECT(&s->rtc),
> > +                              "date");
> > +    isa_connect_gpio_out(ISA_DEVICE(&s->rtc), 0, s->rtc.isairq);
> >
> >     for (i = 0; i < PCI_CONFIG_HEADER_SIZE; i++) {
> >         if (i < PCI_COMMAND || i >= PCI_REVISION_ID) {
> >
>
> This actually introduces code duplication as all other places except piix4
> seem to still use the init function (probably to ensure that the rtc-rime
> alias on the machine is properly set) so I'd keep this the same as
> everything else and drop this patch until this init function is removed
> from all other places as well.
>

Hi Zoltan,

Thanks for the fast reply! Regarding code homogeneity and duplication I've
made a similar argument for mc146818_rtc_init() in the past [1] and I've
learnt that my patch went backwards. Incidentally, Peter mentioned vt686c
as a candidate for the embed-the-device-struct style which - again
incidentally - I've now done.

The rtc-time alias is actually only used by a couple of PPC machines where
Pegasos II is one of them. So the alias actually needs to be created only
for these machines, and identifying the cases where it has to be preserved
requires a lot of careful investigation. In the Pegasos II case this seems
especially complicated since one needs to look through several layers of
devices. During my work on the VT82xx south bridges I've gained some
knowledge such that I'd like to make this simplifying contribution.

Our discussion makes me realize that the creation of the alias could now
actually be moved to the Pegasos II board. This way, the Pegasos II board
would both create and consume that alias, which seems to remove quite some
cognitive load. Do you agree? Would moving the alias to the board work for
you?

Thanks,
Bernhard

[1]
http://patchwork.ozlabs.org/project/qemu-devel/patch/20220205175913.31738-2-shentey@gmail.com/

>
> Regards,
> BALATON Zoltan
>

[-- Attachment #2: Type: text/html, Size: 4782 bytes --]

  reply	other threads:[~2022-08-23 18:47 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-22 22:43 [PATCH 0/9] QOM'ify VT82xx devices Bernhard Beschow
2022-08-22 22:43 ` [PATCH 1/9] hw/isa/vt82c686: QOM'ify Super I/O creation Bernhard Beschow
2022-08-23  0:35   ` BALATON Zoltan
2022-08-23 18:47     ` Bernhard Beschow
2022-08-23 23:36       ` BALATON Zoltan
2022-08-24 22:21         ` Bernhard Beschow
2022-08-22 22:43 ` [PATCH 2/9] hw/isa/vt82c686: Resolve unneeded attribute Bernhard Beschow
2022-08-22 22:43 ` [PATCH 3/9] hw/isa/vt82c686: Prefer pci_address_space() over get_system_memory() Bernhard Beschow
2022-08-22 22:43 ` [PATCH 4/9] hw/isa/vt82c686: QOM'ify via-ide creation Bernhard Beschow
2022-08-24 13:54   ` BALATON Zoltan
2022-08-24 22:19     ` Bernhard Beschow
2022-08-24 23:18       ` BALATON Zoltan
2022-08-29 16:43         ` BB
2022-08-29 17:04           ` BALATON Zoltan
2022-08-29 18:12             ` BB
2022-08-30 19:05               ` BB
2022-08-22 22:43 ` [PATCH 5/9] hw/isa/vt82c686: QOM'ify vt82c686b-usb-uhci creation Bernhard Beschow
2022-08-22 22:43 ` [PATCH 6/9] hw/isa/vt82c686: QOM'ify pm creation Bernhard Beschow
2022-08-22 22:43 ` [PATCH 7/9] hw/isa/vt82c686: QOM'ify ac97 and mc97 creation Bernhard Beschow
2022-08-23  0:44   ` BALATON Zoltan
2022-08-23 18:50     ` Bernhard Beschow
2022-08-23 22:54       ` BALATON Zoltan
2022-08-24 22:43         ` Bernhard Beschow
2022-08-22 22:43 ` [PATCH 8/9] hw/isa/vt82c686: QOM'ify RTC creation Bernhard Beschow
2022-08-23  0:20   ` BALATON Zoltan
2022-08-23 18:38     ` Bernhard Beschow [this message]
2022-08-23 23:23       ` BALATON Zoltan
2022-08-29 17:07         ` BB
2022-08-29 17:50           ` BALATON Zoltan
2022-08-29 18:07             ` BB
2022-08-22 22:43 ` [PATCH 9/9] hw/isa/vt82c686: Reuse errp Bernhard Beschow

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=CAG4p6K4BhgTAXAApG4CyRH3bCgMF97wBV5Vm0caBc-krOgEX_Q@mail.gmail.com \
    --to=shentey@gmail.com \
    --cc=balaton@eik.bme.hu \
    --cc=chenhuacai@kernel.org \
    --cc=f4bug@amsat.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@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).