[PATCH v3 2/3] buildman: differentiate between riscv32, riscv64

Simon Glass sjg at chromium.org
Mon Oct 3 17:23:01 CEST 2022


Hi,

On Mon, 3 Oct 2022 at 09:05, Tom Rini <trini at konsulko.com> wrote:
>
> On Mon, Oct 03, 2022 at 08:57:41AM -0600, Simon Glass wrote:
> > Hi Heinrich,
> >
> > On Mon, 3 Oct 2022 at 03:56, Heinrich Schuchardt
> > <heinrich.schuchardt at canonical.com> wrote:
> > >
> > >
> > >
> > > On 10/3/22 03:10, Simon Glass wrote:
> > > > Hi Heinrich,
> > > >
> > > > On Sat, 1 Oct 2022 at 20:21, Heinrich Schuchardt
> > > > <heinrich.schuchardt at canonical.com> wrote:
> > > >>
> > > >> riscv32 needs a different toolchain than riscv64
> > > >>
> > > >> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> > > >> ---
> > > >> v3:
> > > >>          new patch
> > > >> ---
> > > >>   tools/buildman/boards.py | 11 +++++++++++
> > > >>   1 file changed, 11 insertions(+)
> > > >>
> > > >> diff --git a/tools/buildman/boards.py b/tools/buildman/boards.py
> > > >> index 8a0971aa40..cdc4d9ffd2 100644
> > > >> --- a/tools/buildman/boards.py
> > > >> +++ b/tools/buildman/boards.py
> > > >> @@ -263,6 +263,17 @@ class KconfigScanner:
> > > >>           if params['arch'] == 'arm' and params['cpu'] == 'armv8':
> > > >>               params['arch'] = 'aarch64'
> > > >>
> > > >> +        # fix-up for riscv
> > > >> +        if params['arch'] == 'riscv':
> > > >> +            try:
> > > >> +                value = self._conf.syms.get('ARCH_RV32I').str_value
> > > >> +            except:
> > > >> +                value = ''
> > > >> +            if value == 'y':
> > > >> +                params['arch'] = 'riscv32'
> > > >> +            else:
> > > >> +                params['arch'] = 'riscv64'
> > > >> +
> > > >>           return params
> > > >>
> > > >>
> > > >> --
> > > >> 2.37.2
> > > >>
> > > >
> > > > Should we instead do what ARM does?
> > >
> > > My patch does exactly the same for RISC-V that was done previously for ARM:
> > > It sets the correct value of arch in dependence of the bitness of the
> > > architecture.
> >
> > Sort of. Can we use the 'cpu' for this, insteading of reading a config symbol?
>
> The problem is that "cpu" for riscv is not that determines this. None of
> the existing symbols that buildman puts in a handy table are.

OK, so can we fix/change that? Or do we need to add yet another field
to boards.cfg, just for riscv?

>
> > > Currently in our Docker image we have an alias entry for 'riscv' in file
> > > .buildman. Don't force users to create such an alias value when running
> > > buildman locally.
>
> This is because up until recently, a single toolchain was fine for both
> 32 and 64bit riscv so the alias is just to make things easier.

OK.

Regards,
Simon


More information about the U-Boot mailing list