arch: riscv: introduce CONFIG_RISCV_GP_PURPOSE choice

Introduce `CONFIG_RISCV_GP_PURPOSE` choice to make sure that only
one of `CONFIG_RISCV_GP` or `CONFIG_RISCV_CURRENT_VIA_GP` can be
enabled, instead of relying of dependencies.

To do that, introduce a new
`CONFIG_RISCV_SOC_HAS_GP_RELATIVE_ADDRESSING` that can be selected
by SoC when it implemented global pointer (GP) initialization for
relative addressing in its linker.

`CONFIG_RISCV_GP` will be the default choice when
`CONFIG_RISCV_SOC_HAS_GP_RELATIVE_ADDRESSING=y`

Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
This commit is contained in:
Yong Cong Sin 2024-11-25 12:54:01 +08:00 committed by Benjamin Cabé
commit e6dd68ec89
37 changed files with 33 additions and 56 deletions

View file

@ -7,6 +7,7 @@ config SOC_SERIES_MIV
select RISCV
select RISCV_PRIVILEGED
select RISCV_HAS_PLIC
select RISCV_SOC_HAS_GP_RELATIVE_ADDRESSING
imply XIP
config SOC_MIV

View file

@ -9,9 +9,6 @@ config SYS_CLOCK_HW_CYCLES_PER_SEC
config RISCV_SOC_INTERRUPT_INIT
default y
config RISCV_GP
default y
config 2ND_LVL_ISR_TBL_OFFSET
default 12

View file

@ -7,13 +7,14 @@ config SOC_SERIES_POLARFIRE
select RISCV
select RISCV_PRIVILEGED
select RISCV_HAS_PLIC
select RISCV_SOC_HAS_GP_RELATIVE_ADDRESSING
imply XIP
config SOC_POLARFIRE
select 64BIT
select SCHED_IPI_SUPPORTED
select ATOMIC_OPERATIONS_BUILTIN
select RISCV_GP
select RISCV_SOC_HAS_GP_RELATIVE_ADDRESSING
select USE_SWITCH_SUPPORTED
select USE_SWITCH

View file

@ -13,9 +13,6 @@ config SYS_CLOCK_HW_CYCLES_PER_SEC
config RISCV_SOC_INTERRUPT_INIT
default y
config RISCV_GP
default y
config 2ND_LVL_ISR_TBL_OFFSET
default 13