Re: [Article] NuttX on Star64 JH7110: RISC-V Privilege Levels and UART Registers

2023-07-18 Thread Nathan Hartman
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

2023-07-18 Thread Lee, Lup Yuen
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

2023-07-18 Thread Nathan Hartman
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

2023-07-18 Thread Lee, Lup Yuen
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