From: Damien Le Moal <Damien.LeMoal@wdc.com> To: Sean Anderson <seanga2@gmail.com>, "linux-riscv@lists.infradead.org" <linux-riscv@lists.infradead.org>, Palmer Dabbelt <palmer@dabbelt.com> Cc: Anup Patel <Anup.Patel@wdc.com>, Paul Walmsley <paul.walmsley@sifive.com> Subject: Re: [PATCH 02/10] riscv: Force flat memory model with no-mmu Date: Sat, 15 Feb 2020 02:40:59 +0000 Message-ID: <BYAPR04MB5816D6AB39649A563BC96F2FE7140@BYAPR04MB5816.namprd04.prod.outlook.com> (raw) In-Reply-To: <cb38129d-ceb8-4eb0-6bbb-a9c825478410@gmail.com> On 2020/02/15 11:26, Sean Anderson wrote: > On 2/14/20 9:15 PM, Damien Le Moal wrote: >> On 2020/02/15 5:18, Sean Anderson wrote: >>> Hi, >>> >>> On 2/12/20 5:34 AM, Damien Le Moal wrote: >>>> Compilation errors trigger if ARCH_SPARSEMEM_ENABLE is enabled for >>>> a nommu kernel. Since the sparsemem model does not make sense anyway >>>> for the nommu case, do not allow selecting this option to always use >>>> the flatmem model. >>>> >>>> Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> >>>> --- >>>> arch/riscv/Kconfig | 1 + >>>> 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig >>>> index 73f029eae0cc..1a3b5a5276be 100644 >>>> --- a/arch/riscv/Kconfig >>>> +++ b/arch/riscv/Kconfig >>>> @@ -121,6 +121,7 @@ config ARCH_FLATMEM_ENABLE >>>> >>>> config ARCH_SPARSEMEM_ENABLE >>>> def_bool y >>>> + depends on MMU >>>> select SPARSEMEM_VMEMMAP_ENABLE >>>> >>>> config ARCH_SELECT_MEMORY_MODEL >>>> >>> >>> Just for some background, why did you choose NOMMU? Afaik the K210 has >>> an MMU following the RISC-V privileged specification 1.9 >> >> Our early experiments with the k210 with opensbi revealed that the mmu is >> definitely not a normal one or that it is not functional (e.g. S-mode fault >> delegation bit setup leads to a hang). So at the time, we started assuming >> that this is a nommu platform. >> >> Since then, others also mentioned that there is in fact an MMU but not >> following the latest specs (I think Olof mentioned that). But I have not >> look into this (yet) to try to make it work. Not sure how much effort would >> be needed on the kernel to support this older specs mmu. >> >> In any case, considering the tiny 6+2MB of memory available, direct M-mode >> Linux boot avoids the bootloader chain and openSBI use, which saves a lot >> of memory. We could reduce this chain to opensbi with direct payload only, >> but even then, page alignment will lead to memory loss. And at run-time, >> nommu saves a lot too with the absence of page tables. Nommu makes sense >> for this platform. > > Well, the VM mode bits are in mstatus for this priv spec, so OpenSBI > won't work since there is no way to set them. Interesting. At FOSDEM, we discussed with Palmer the work that would be needed to disentangle NOMMU and M-MODE boot, which for now are rather synonymous, but shouldn't. I guess this platform would still require M-MODE boot, but not necessarily NOMMU. >> This is the first step to get this platform running Linux. Due to the low >> memory, it probably isn't a practical use case to use Linux in the first >> place, but it definitely is a great inexpensive platform for getting >> started with RISCV. NOMMU allows running Linux without much effort. Going >> forward, we can also try to get that SoC MMU running. > > Yeah, that's pretty reasonable. However, I don't think much has changed > other than the locations of some of the registers has been changed > around. The existing code to set up page table entries should not need > major modifications. OK. Sounds easy enough. But I think cleanup work to dissociate M-mode boot and NOMMU will be needed first. After that, trying to enable the MMU should be easier. > > Alternatively, the base+bound scheme could probably work pretty well > with low memory, though we would not be able to re-use any existing > code. > > --Sean > -- Damien Le Moal Western Digital Research
next prev parent reply index Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-12 10:34 [PATCH 00/10] Kendryte k210 SoC boards support Damien Le Moal 2020-02-12 10:34 ` [PATCH 01/10] riscv: Fix gitignore Damien Le Moal 2020-02-20 0:15 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 02/10] riscv: Force flat memory model with no-mmu Damien Le Moal 2020-02-14 20:18 ` Sean Anderson 2020-02-15 2:15 ` Damien Le Moal 2020-02-15 2:26 ` Sean Anderson 2020-02-15 2:40 ` Damien Le Moal [this message] 2020-03-02 3:48 ` Anup Patel 2020-03-04 18:38 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 03/10] riscv: Unaligned load/store handling for M_MODE Damien Le Moal 2020-03-02 3:57 ` Anup Patel 2020-03-04 19:28 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 04/10] riscv: Add BUILTIN_DTB support Damien Le Moal 2020-03-02 3:58 ` Anup Patel 2020-03-04 19:28 ` Palmer Dabbelt 2020-03-05 4:58 ` Anup Patel 2020-03-05 5:14 ` Damien Le Moal 2020-03-05 5:37 ` Anup Patel 2020-03-05 6:13 ` Damien Le Moal 2020-03-08 6:10 ` Anup Patel 2020-03-05 8:18 ` Atish Patra 2020-03-07 0:02 ` Sean Anderson 2020-03-07 1:51 ` Atish Patra 2020-03-07 2:08 ` Sean Anderson 2020-03-06 23:56 ` Sean Anderson 2020-02-12 10:34 ` [PATCH 05/10] riscv: Add SOC early init support Damien Le Moal 2020-03-04 19:28 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 06/10] riscv: Add Kendryte K210 SoC support Damien Le Moal 2020-02-14 20:31 ` Sean Anderson 2020-03-04 19:38 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 07/10] riscv: Select required drivers for Kendryte SOC Damien Le Moal 2020-03-02 3:59 ` Anup Patel 2020-03-04 19:44 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 08/10] riscv: Add Kendryte K210 device tree Damien Le Moal 2020-02-14 20:51 ` Sean Anderson 2020-02-15 2:34 ` Damien Le Moal 2020-02-15 2:48 ` Sean Anderson 2020-02-15 3:00 ` Damien Le Moal 2020-02-18 14:12 ` Carlos Eduardo de Paula 2020-02-18 14:18 ` Sean Anderson 2020-02-18 14:30 ` Carlos Eduardo de Paula 2020-02-18 17:48 ` Sean Anderson 2020-02-18 19:26 ` Carlos Eduardo de Paula 2020-02-19 9:06 ` Wladimir J. van der Laan 2020-02-19 22:28 ` Sean Anderson 2020-02-20 10:48 ` Wladimir J. van der Laan 2020-02-22 19:07 ` Wladimir J. van der Laan 2020-04-01 17:55 ` Drew Fustini 2020-04-02 2:24 ` Damien Le Moal 2020-02-19 8:50 ` Wladimir J. van der Laan 2020-02-27 19:43 ` Sean Anderson 2020-03-02 4:06 ` Anup Patel 2020-03-02 4:15 ` Damien Le Moal 2020-03-02 4:22 ` Anup Patel 2020-03-02 4:51 ` Damien Le Moal 2020-03-02 5:05 ` Anup Patel 2020-03-02 5:08 ` Damien Le Moal 2020-03-07 0:18 ` Sean Anderson 2020-03-07 4:11 ` Anup Patel 2020-03-04 19:44 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 09/10] riscv: Kendryte K210 default config Damien Le Moal 2020-03-02 4:07 ` Anup Patel 2020-03-04 19:44 ` Palmer Dabbelt 2020-02-12 10:34 ` [PATCH 10/10] riscv: create a loader.bin for the kendryte kflash.py tool Damien Le Moal 2020-03-02 4:08 ` Anup Patel 2020-03-04 19:44 ` Palmer Dabbelt 2020-02-14 15:05 ` [PATCH 00/10] Kendryte k210 SoC boards support Carlos Eduardo de Paula 2020-02-15 2:02 ` Damien Le Moal 2020-02-17 13:28 ` Carlos Eduardo de Paula 2020-02-26 21:31 ` Carlos Eduardo de Paula 2020-02-27 2:18 ` Damien Le Moal 2020-02-28 20:32 ` Sean Anderson 2020-03-02 3:01 ` Damien Le Moal 2020-03-02 3:53 ` Sean Anderson 2020-03-02 4:11 ` Damien Le Moal 2020-03-02 4:18 ` Sean Anderson 2020-03-02 4:54 ` Damien Le Moal 2020-03-02 4:56 ` Sean Anderson 2020-03-02 5:03 ` Damien Le Moal 2020-03-02 4:17 ` Anup Patel 2020-03-02 4:21 ` Sean Anderson 2020-03-02 4:48 ` Damien Le Moal 2020-03-02 4:51 ` Damien Le Moal 2020-03-02 5:02 ` Sean Anderson 2020-03-02 5:11 ` Damien Le Moal 2020-03-02 5:25 ` Sean Anderson 2020-03-02 5:43 ` Damien Le Moal 2020-03-04 19:44 ` Palmer Dabbelt
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=BYAPR04MB5816D6AB39649A563BC96F2FE7140@BYAPR04MB5816.namprd04.prod.outlook.com \ --to=damien.lemoal@wdc.com \ --cc=Anup.Patel@wdc.com \ --cc=linux-riscv@lists.infradead.org \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=seanga2@gmail.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
Linux-RISC-V Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-riscv/0 linux-riscv/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-riscv linux-riscv/ https://lore.kernel.org/linux-riscv \ linux-riscv@lists.infradead.org public-inbox-index linux-riscv Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.infradead.lists.linux-riscv AGPL code for this site: git clone https://public-inbox.org/public-inbox.git