Re: Kconfig-induced build errors: CONFIG_PAGE_OFFSET

From: Palmer Dabbelt
Date: Tue Feb 02 2021 - 21:28:33 EST


On Fri, 29 Jan 2021 05:52:51 PST (-0800), geert@xxxxxxxxxxxxxx wrote:
Hi Atish,

On Thu, Jan 28, 2021 at 9:09 PM Atish Patra <atishp@xxxxxxxxxxxxxx> wrote:
On Wed, Jan 27, 2021 at 7:18 PM Randy Dunlap <rdunlap@xxxxxxxxxxxxx> wrote:
> I took a riscv-32 .config from kernel test robot (it was for a clang build)
> and did a "make olddefconfig" (using gcc tools) and got build errors
> due to this config item from arch/riscv/Kconfig;
>
>
> config PAGE_OFFSET
> hex
> default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB
> default 0x80000000 if 64BIT && !MMU
> default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB
> default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB
>
> PAGE_OFFSET is undefined for the case of 32BIT && MAXPHYSMEM_2GB.

Because, RV32 doesn't support 2GB physical memory yet.

The compilation errors can be fixed by not allowing MAXPHYSMEM_2GB for RV32 and
MAXPHYSMEM_1GB for RV64. How about this ?

--- a/arch/riscv/Kconfig
+++ b/arch/riscv/Kconfig
@@ -253,8 +253,10 @@ choice
default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY

config MAXPHYSMEM_1GB
+ depends on 32BIT
bool "1GiB"
config MAXPHYSMEM_2GB
+ depends on 64BIT && CMODEL_MEDLOW
bool "2GiB"
config MAXPHYSMEM_128GB
depends on 64BIT && CMODEL_MEDANY

Thanks, works fine on litex-vexriscv.
Tested-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>

Atish: did I miss an actual patch? I just see diff here.