All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Baumann <Andrew.Baumann@microsoft.com>
To: bzt bzt <bztemail@gmail.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	Peter Maydell <peter.maydell@linaro.org>,
	"qemu-arm@nongnu.org" <qemu-arm@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] BCM2837 and machine raspi3
Date: Tue, 24 Oct 2017 16:44:56 +0000	[thread overview]
Message-ID: <MWHPR21MB01591543E188B048145985709E470@MWHPR21MB0159.namprd21.prod.outlook.com> (raw)
In-Reply-To: <CADYoBw1ksGDo26-PC4eMnyqxZQoZkXNLDeGoWfcRHs-SfTCJkw@mail.gmail.com>

> From: bzt bzt [mailto:bztemail@gmail.com]
> Sent: Tuesday, 24 October 2017 02:54
> On Mon, Oct 23, 2017 at 6:34 PM, Andrew Baumann wrote:
> 	Are there any changes from bcm2836 other than the CPU model?
> 
> 
> 	Duplicating the whole file just to have a different CPU seems like a bad
> idea to me. I would suggest parameterising the CPU model in bcm2836 (and
> maybe noting in header comments etc. that it can also model 2837), and then
> instantiating it from raspi.c with the correct CPU type depending on which
> machine is being used. That will also reduce the size of the patch significantly,
> which will make it easier to get it reviewed.
> 
> 
> 
> For now, there's no more difference in the emulation than the CPU, but
> BCM2837 has a lot more to offer (40 bit address space, wifi, bluetooth etc.). So
> sooner or later it will need it's own source file to support all of that without
> getting the code messy. I have asked Peter whether it does worth writing
> future proof code, or keep the change at the bare minimum, but had no answer
> yet.

I see. The address space size sounds like it would affect the SoC (although is there really 40 bits of usable physical address space beyond the core?). If it's like pi2, however, the wifi and BT are both behind USB, so that would be handled more naturally in the board model (raspi.c) than the SoC.

> Well, bcm2837 is backward compatible with the bcm2836, but has a lot more
> registers and a different boot up process (different address and no atags). The
> common functionality is already in bcm2835_peripherals, and the MMIO
> address change from bcm2835 to bcm2836 has already been added by you.
> What's different is a lot more devices, which imho would be unwise to add to
> bcm2835 or either to bcm2836. So to be future proof I've created a separated
> file, but you are right at the current level of emulation it's not necessary.

Right, but as I wrote above if those devices are behind USB that's not part of the SoC model, and belongs in the board logic. If "more registers" just refers to the CPU, then that's irrelevant. If there are really more devices / device registers on the system bus, then that calls for a deeper change in the SoC model and perhaps a new implementation.

> 	Similarly, this looks like a clone of raspi2_init. I think it would be better
> to have one function, parametrised if needed.
> 
> 
> 
> For now, yes. But the extra devices bcm2837 have will need extra initialization,
> and I though it would be clearer to separate in advance. Again, I've asked Peter
> about this, but had no response. As I see having a parametrised single function
> is simplier for now, but could lead to a messy code later when all the SoC
> features will be added. But I'm ain't no expert on qemu source, this is my first
> patch, so I'm open to suggestions! :-)

I'm more open to the need for evolution in the machine init logic (raspi.c), so splitting there makes more sense to me than in bcm2836/7.

I see you just posted another patch. FWIW, this isn't quite what I was proposing -- rather than have bcm2736.c take a version number that is 2 or 3, I would just pass it the CPU model to instantiate. But at this point I think it's best waiting for one of the Qemu maintainers to chime in and see what they prefer.

Andrew

  parent reply	other threads:[~2017-10-24 16:45 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-22 13:20 [Qemu-devel] [PATCH] BCM2837 and machine raspi3 bzt bzt
2017-10-23  9:34 ` KONRAD Frederic
2017-10-23 12:39   ` bzt bzt
2017-10-23 16:34 ` Andrew Baumann
2017-10-24  9:53   ` bzt bzt
2017-10-24 11:05     ` BALATON Zoltan
2017-10-24 16:30       ` bzt bzt
2017-10-24 16:44     ` Andrew Baumann [this message]
2017-10-25  8:52       ` bzt bzt
2017-11-25 16:43         ` bzt bzt
2017-11-25 18:04           ` Peter Maydell
2017-11-27 19:06             ` Andrew Baumann
2017-11-28 11:26               ` bzt bzt
2017-11-28 11:56                 ` Peter Maydell
2017-11-29  7:17                   ` bzt bzt
2017-11-28 17:54                 ` Andrew Baumann
2017-11-29  7:52                   ` bzt bzt
2018-01-18 21:39                     ` bzt bzt
2018-01-22 11:41                       ` BALATON Zoltan
2018-01-23 11:13                         ` bzt bzt
2018-01-23 11:22                           ` Peter Maydell
2018-01-23 12:32                             ` bzt bzt
2018-01-22 12:12                       ` Peter Maydell
2018-01-23 11:49                         ` bzt bzt
2018-01-23 15:09                           ` BALATON Zoltan
2018-01-23 18:14                           ` Peter Maydell

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=MWHPR21MB01591543E188B048145985709E470@MWHPR21MB0159.namprd21.prod.outlook.com \
    --to=andrew.baumann@microsoft.com \
    --cc=bztemail@gmail.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --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 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.