[U-Boot] [PATCH 06/30] riscv: add Kconfig entries for the C and A ISA extensions

Auer, Lukas lukas.auer at aisec.fraunhofer.de
Wed Oct 24 15:21:33 UTC 2018


Hi Bin,

On Mon, 2018-10-22 at 15:21 +0800, Bin Meng wrote:
> Hi Lukas,
> 
> On Sat, Oct 20, 2018 at 6:09 AM Lukas Auer
> <lukas.auer at aisec.fraunhofer.de> wrote:
> > 
> > Add Kconfig entries for the C (compressed instructions) and A
> > (atomic
> > instructions) ISA extensions. Only the C ISA extension is
> > selectable.
> > This matches the configuration in Linux.
> > 
> > The Kconfig entries are not used yet. A follow-up patch will select
> > the
> > appropriate compiler flags based on the Kconfig configuration.
> > 
> > Signed-off-by: Lukas Auer <lukas.auer at aisec.fraunhofer.de>
> > ---
> > 
> >  arch/riscv/Kconfig | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> > 
> > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> > index b81e0d990a..e15329c35e 100644
> > --- a/arch/riscv/Kconfig
> > +++ b/arch/riscv/Kconfig
> > @@ -38,6 +38,15 @@ config ARCH_RV64I
> > 
> >  endchoice
> > 
> > +config RISCV_ISA_C
> > +       bool "Emit compressed instructions"
> > +       default y
> > +       help
> > +         This enables the compressed instructions ("C") ISA
> > extension.
> 
> This is a little bit confusing. Can we use Linux kernel's description
> instead like below?
> 
>           Adds "C" to the ISA subsets that the toolchain is allowed
> to emit
>           when building U-Boot, which results in compressed
> instructions in the
>           U-Boot binary.
> 

Sure, I will change it in v2.

> > +
> > +config RISCV_ISA_A
> > +       def_bool y
> 
> I do not believe U-Boot need to care about 'A' extension. So this can
> be dropped?
> 

That's right. The only reason it might be used in U-Boot is on multi-
core systems. Linux chooses the hart to boot on with the hart lottery,
which requires atomics. The first core to increment a flag wins and
starts the boot process. We could do something similar in U-Boot, but I
don't think it's necessary. In my patches (for the next patch series) I
have added CONFIG_MAIN_HART to select the hart U-Boot should run on.

I have included it here so that I can use it in the next patch to build
the ISA string. I can remove it, but that would change the current
behavior, which has atomics enabled.

Thanks,
Lukas

> > +
> >  config 32BIT
> >         bool
> > 
> 
> Regards,
> Bin


More information about the U-Boot mailing list