From: Bin Meng <bmeng.cn@gmail.com>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: "open list:RISC-V" <qemu-riscv@nongnu.org>,
Sagar Karandikar <sagark@eecs.berkeley.edu>,
Bastian Koppelmann <kbastian@mail.uni-paderborn.de>,
Palmer Dabbelt <palmer@sifive.com>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>,
Chih-Min Chao <chihmin.chao@sifive.com>,
Alistair Francis <Alistair.Francis@wdc.com>
Subject: Re: [Qemu-devel] [Qemu-riscv] [PATCH] riscv: sifive_e: Correct various SoC IP block sizes
Date: Wed, 7 Aug 2019 09:36:17 +0800 [thread overview]
Message-ID: <CAEUhbmVfUAwvDi_p8FikZnzX0drZ9an_mENdGKF0yEmR7Gvseg@mail.gmail.com> (raw)
In-Reply-To: <11403b54-d41a-3083-7794-2c699a223479@redhat.com>
On Wed, Aug 7, 2019 at 5:06 AM Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
> On 8/5/19 8:43 AM, Bin Meng wrote:
> > On Mon, Aug 5, 2019 at 2:14 PM Chih-Min Chao <chihmin.chao@sifive.com> wrote:
> >> On Sat, Aug 3, 2019 at 8:27 AM Bin Meng <bmeng.cn@gmail.com> wrote:
> >>>
> >>> Some of the SoC IP block sizes are wrong. Correct them according
> >>> to the FE310 manual.
> >>>
> >>> Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
> >>> ---
> >>>
> >>> hw/riscv/sifive_e.c | 6 +++---
> >>> 1 file changed, 3 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c
> >>> index 2a499d8..9655847 100644
> >>> --- a/hw/riscv/sifive_e.c
> >>> +++ b/hw/riscv/sifive_e.c
> >>> @@ -53,13 +53,13 @@ static const struct MemmapEntry {
> >>> hwaddr base;
> >>> hwaddr size;
> >>> } sifive_e_memmap[] = {
> >>> - [SIFIVE_E_DEBUG] = { 0x0, 0x100 },
> >>> + [SIFIVE_E_DEBUG] = { 0x0, 0x1000 },
> >>> [SIFIVE_E_MROM] = { 0x1000, 0x2000 },
> >>> [SIFIVE_E_OTP] = { 0x20000, 0x2000 },
> >>> [SIFIVE_E_CLINT] = { 0x2000000, 0x10000 },
> >>> [SIFIVE_E_PLIC] = { 0xc000000, 0x4000000 },
> >>> - [SIFIVE_E_AON] = { 0x10000000, 0x8000 },
> >>> - [SIFIVE_E_PRCI] = { 0x10008000, 0x8000 },
> >>> + [SIFIVE_E_AON] = { 0x10000000, 0x1000 },
> >>> + [SIFIVE_E_PRCI] = { 0x10008000, 0x1000 },
> >>> [SIFIVE_E_OTP_CTRL] = { 0x10010000, 0x1000 },
> >>> [SIFIVE_E_GPIO0] = { 0x10012000, 0x1000 },
> >>> [SIFIVE_E_UART0] = { 0x10013000, 0x1000 },
> >>> --
> >>> 2.7.4
> >>>
> >>
> >> It seems the modification follows E310-G002(Hifive1 Rev B) spec and the origin is for E310-G000(Hifive1) spec.
> >> There should be some way to specify different board version with different memory map or we have policy, always support the latest spec.
>
> I agree with Chao, it would be cleaner to have two different boards
> (machines).
> Since the SoCs are very similar, you could add a 'revision' property and
> use it to select the correct map.
>
> >>
> >
> > Yes, I checked both specs. The older spec says these bigger sizes,
> > however their register sizes fit well in the smaller range as well. So
> > I think the modification works well for both.
>
> This is OK for the PRCI, since sifive_prci_create() does not use
> memmap[SIFIVE_E_PRCI].size.
>
> However the AON case is borderline, since you shrink it from 32KiB to 4KiB.
>
> BTW (not related to this patch) it is odd a function named
> sifive_mmio_emulate() creates a RAM region with memory_region_init_ram()
> and does not use the UnimplementedDevice (see make_unimp_dev() in
> hw/arm/musca.c).
Yes, this sifive_mmio_emulate() issue has been pointed out by Alistair
when reviewing the following patch:
http://patchwork.ozlabs.org/patch/1142293/
Regards,
Bin
next prev parent reply other threads:[~2019-08-07 1:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-03 0:27 [Qemu-devel] [PATCH] riscv: sifive_e: Correct various SoC IP block sizes Bin Meng
2019-08-05 6:14 ` [Qemu-devel] [Qemu-riscv] " Chih-Min Chao
2019-08-05 6:43 ` Bin Meng
2019-08-06 21:06 ` Philippe Mathieu-Daudé
2019-08-07 1:36 ` Bin Meng [this message]
2019-08-07 2:53 ` Bin Meng
2019-08-14 9:34 ` Bin Meng
2019-09-04 3:41 ` Bin Meng
2019-09-04 18:34 ` Palmer Dabbelt
2020-06-23 6:35 ` Bin Meng
2020-06-23 16:07 ` Alistair Francis
2019-08-05 17:51 ` [Qemu-devel] " Alistair Francis
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=CAEUhbmVfUAwvDi_p8FikZnzX0drZ9an_mENdGKF0yEmR7Gvseg@mail.gmail.com \
--to=bmeng.cn@gmail.com \
--cc=Alistair.Francis@wdc.com \
--cc=chihmin.chao@sifive.com \
--cc=kbastian@mail.uni-paderborn.de \
--cc=palmer@sifive.com \
--cc=philmd@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=sagark@eecs.berkeley.edu \
/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).