diff --git a/soc/riscv/riscv-ite/common/vector.S b/soc/riscv/riscv-ite/common/vector.S index d5062d434cc..10d8e93835c 100644 --- a/soc/riscv/riscv-ite/common/vector.S +++ b/soc/riscv/riscv-ite/common/vector.S @@ -16,6 +16,14 @@ GTEXT(__initialize) GTEXT(__irq_wrapper) SECTION_FUNC(vectors, __start) +#ifdef CONFIG_RISCV_GP + .option push + .option norelax + /* Configure the GP register */ + la gp, __global_pointer$ + .option pop +#endif + .option norvc; /* diff --git a/soc/riscv/riscv-ite/it8xxx2/Kconfig.defconfig.series b/soc/riscv/riscv-ite/it8xxx2/Kconfig.defconfig.series index c5147ad1d54..00803146694 100644 --- a/soc/riscv/riscv-ite/it8xxx2/Kconfig.defconfig.series +++ b/soc/riscv/riscv-ite/it8xxx2/Kconfig.defconfig.series @@ -13,6 +13,9 @@ config ITE_IT8XXX2_INTC select FLASH_HAS_DRIVER_ENABLED select HAS_FLASH_LOAD_OFFSET +config RISCV_GP + default y + config SYS_CLOCK_HW_CYCLES_PER_SEC default 32768