Re: [Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers
On Tue, Jul 18, 2023 at 10:34 PM Lee, Lup Yuen wrote: > Thanks Nathan! I'm still getting used to NuttX Kernel Mode and RISC-V > Machine / Supervisor Modes, so I thought I might stick with QEMU Kernel > Mode and make it work on Star64. > > But you're right, when I'm more familiar with Star64, I ought to explore > more of CONFIG_ARCH_USE_S_MODE and RISC-V Machine Mode :-) > > Lup Great! Just food for (future) thought... Looking forward to following along on more RiscV discoveries:-) Cheers Nathan
Re: [Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers
Thanks Nathan! I'm still getting used to NuttX Kernel Mode and RISC-V Machine / Supervisor Modes, so I thought I might stick with QEMU Kernel Mode and make it work on Star64. But you're right, when I'm more familiar with Star64, I ought to explore more of CONFIG_ARCH_USE_S_MODE and RISC-V Machine Mode :-) Lup On Wed, Jul 19, 2023 at 10:25 AM Nathan Hartman wrote: > On Tue, Jul 18, 2023 at 7:33 PM Lee, Lup Yuen wrote: > > > We’re in the super-early stage of porting NuttX to the Pine64 Star64 > 64-bit > > RISC-V SBC. (Based on StarFive JH7110 SoC) > > > > In this article we’ll talk about the interesting things that we learnt > > about RISC-V and Star64 JH7110… > > > > (1) What are RISC-V Privilege Levels > > (And why they make NuttX a little more complicated) > > > > (2) What is NuttX Kernel Mode > > (And how it differs from Flat Mode) > > > > (3) All about JH7110’s UART Registers > > (And how they are different from other 16550 UARTs) > > > > (4) Why (naively) porting NuttX from QEMU to Star64 might become really > > challenging! > > (Thankfully we have the LiteX Arty-A7 and PolarFire Icicle ports) > > > > https://lupyuen.codeberg.page/articles/privilege.html > > > > Lup > > > > Beautiful article! > > Question: In section 6, "NuttX flat mode becomes kernel mode," isn't it > possible to set CONFIG_ARCH_USE_S_MODE for the FLAT build as well? Since > the board's built-in firmware switches from Machine Mode to Supervisor Mode > before calling U-Boot -> NuttX, I think that all configurations running on > this board should select CONFIG_ARCH_USE_S_MODE by default. This can be set > in Kconfig by default whenever this board is selected, so there is no need > to remember and add it in multiple places/configs; however if someone > figures out an alternative firmware that lets us boot NuttX on this board > in Machine Mode, it will be easy to override. Just a thought... > > Thanks for a great article as always! > > Cheers, > Nathan >
Re: [Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers
On Tue, Jul 18, 2023 at 7:33 PM Lee, Lup Yuen wrote: > We’re in the super-early stage of porting NuttX to the Pine64 Star64 64-bit > RISC-V SBC. (Based on StarFive JH7110 SoC) > > In this article we’ll talk about the interesting things that we learnt > about RISC-V and Star64 JH7110… > > (1) What are RISC-V Privilege Levels > (And why they make NuttX a little more complicated) > > (2) What is NuttX Kernel Mode > (And how it differs from Flat Mode) > > (3) All about JH7110’s UART Registers > (And how they are different from other 16550 UARTs) > > (4) Why (naively) porting NuttX from QEMU to Star64 might become really > challenging! > (Thankfully we have the LiteX Arty-A7 and PolarFire Icicle ports) > > https://lupyuen.codeberg.page/articles/privilege.html > > Lup > Beautiful article! Question: In section 6, "NuttX flat mode becomes kernel mode," isn't it possible to set CONFIG_ARCH_USE_S_MODE for the FLAT build as well? Since the board's built-in firmware switches from Machine Mode to Supervisor Mode before calling U-Boot -> NuttX, I think that all configurations running on this board should select CONFIG_ARCH_USE_S_MODE by default. This can be set in Kconfig by default whenever this board is selected, so there is no need to remember and add it in multiple places/configs; however if someone figures out an alternative firmware that lets us boot NuttX on this board in Machine Mode, it will be easy to override. Just a thought... Thanks for a great article as always! Cheers, Nathan
[Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers
We’re in the super-early stage of porting NuttX to the Pine64 Star64 64-bit RISC-V SBC. (Based on StarFive JH7110 SoC) In this article we’ll talk about the interesting things that we learnt about RISC-V and Star64 JH7110… (1) What are RISC-V Privilege Levels (And why they make NuttX a little more complicated) (2) What is NuttX Kernel Mode (And how it differs from Flat Mode) (3) All about JH7110’s UART Registers (And how they are different from other 16550 UARTs) (4) Why (naively) porting NuttX from QEMU to Star64 might become really challenging! (Thankfully we have the LiteX Arty-A7 and PolarFire Icicle ports) https://lupyuen.codeberg.page/articles/privilege.html Lup