On Tue, Jul 18, 2023 at 7:33 PM Lee, Lup Yuen <lu...@appkaki.com> 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