[U-Boot] [PATCH v2 07/29] riscv: add Kconfig entries for the code model
Auer, Lukas
lukas.auer at aisec.fraunhofer.de
Wed Oct 31 15:01:46 UTC 2018
Hi Bin,
On Wed, 2018-10-31 at 10:13 +0800, Bin Meng wrote:
> Hi Lukas,
>
> On Tue, Oct 30, 2018 at 8:57 PM Lukas Auer
> <lukas.auer at aisec.fraunhofer.de> wrote:
> >
> > RISC-V has two code models, medium low (medlow) and medium any
> > (medany).
> > Medlow limits addressable memory to a single 2 GiB range between
> > the
> > absolute addresses -2 GiB and +2 GiB. Medany limits addressable
> > memory
> > to any single 2 GiB address range.
> > By default, medlow is selected on 32-bit systems and medany on 64-
> > bit
> > systems. This matches the configuration in Linux.
> >
> > The -mcmodel compiler flag is selected according to the Kconfig
> > configuration.
> >
> > Signed-off-by: Lukas Auer <lukas.auer at aisec.fraunhofer.de>
> > ---
> >
> > Changes in v2:
> > - Change ISA string construction, as suggested by Bin Meng
> >
> > arch/riscv/Kconfig | 19 +++++++++++++++++++
> > arch/riscv/Makefile | 9 ++++++++-
> > 2 files changed, 27 insertions(+), 1 deletion(-)
> >
>
> I had a further look at this, and I suspect we should stick to medlow
> for U-Boot, even for 64-bit. As U-Boot will be only running within
> the
> low 4GB memory space even for 64-bit. Adding medany seems
> unnecessary.
>
> Regards,
> Bin
You are right, however I think it's actually because U-Boot is compiled
as a position independent binary. U-Boot can be relocated above what's
addressable with 32-bit if the memory is large enough. This should
cause issues with medlow.
I suspects that's the reason, but I am not entirely sure. What do you
think?
Thanks,
Lukas
More information about the U-Boot
mailing list