:orphan: .. title:: CONFIG_RISCV_GP .. kconfig:: CONFIG_RISCV_GP CONFIG_RISCV_GP ############### *Enable RISC-V global pointer relative addressing* Type: ``bool`` Help ==== .. code-block:: none Use global pointer relative addressing for small globals declared anywhere in the executable. It can benefit performance and reduce the code size. Note: To support this feature, RISC-V SoC needs to initialize global pointer at program start or earlier than any instruction using GP relative addressing. Direct dependencies =================== \ :kconfig:`SOC_SERIES_RISCV_ANDES_V5 ` || \ :kconfig:`SOC_SERIES_RISCV32_MIV ` || \ :kconfig:`SOC_SERIES_RISCV_SIFIVE_FREEDOM ` || \ :kconfig:`SOC_SERIES_STARFIVE_JH71XX ` || \ :kconfig:`SOC_SERIES_RISCV_TELINK_B91 ` || \ :kconfig:`SOC_SERIES_RISCV_VIRT ` || \ :kconfig:`SOC_SERIES_RISCV_ANDES_V5 ` || \ :kconfig:`SOC_SERIES_RISCV32_MIV ` || \ :kconfig:`SOC_SERIES_RISCV_SIFIVE_FREEDOM ` || \ :kconfig:`SOC_SERIES_STARFIVE_JH71XX ` || \ :kconfig:`SOC_SERIES_RISCV_TELINK_B91 ` || \ :kconfig:`SOC_SERIES_RISCV_VIRT ` || \ :kconfig:`RISCV ` *(Includes any dependencies from ifs and menus.)* Defaults ======== - y - y - y - y - y - y - y - y - y - y - y - y - n Symbols that select this symbol =============================== - \ :kconfig:`SOC_ESP32C3 ` - \ :kconfig:`SOC_ESP32C3 ` Kconfig definitions =================== At ``/riscv/riscv-privilege/andes_v5/Kconfig.defconfig.series:33`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_ANDES_V5 ---- At ``/riscv/riscv-privilege/miv/Kconfig.defconfig.series:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV32_MIV ---- At ``/riscv/riscv-privilege/sifive-freedom/Kconfig.defconfig.series:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_SIFIVE_FREEDOM ---- At ``/riscv/riscv-privilege/starfive_jh71xx/Kconfig.defconfig.series:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_STARFIVE_JH71XX ---- At ``/riscv/riscv-privilege/telink_b91/Kconfig.defconfig.series:26`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_TELINK_B91 ---- At ``/riscv/riscv-privilege/virt/Kconfig.defconfig.series:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_VIRT ---- At ``/riscv/riscv-privilege/andes_v5/Kconfig.defconfig.series:33`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_ANDES_V5 ---- At ``/riscv/riscv-privilege/miv/Kconfig.defconfig.series:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV32_MIV ---- At ``/riscv/riscv-privilege/sifive-freedom/Kconfig.defconfig.series:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_SIFIVE_FREEDOM ---- At ``/riscv/riscv-privilege/starfive_jh71xx/Kconfig.defconfig.series:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_STARFIVE_JH71XX ---- At ``/riscv/riscv-privilege/telink_b91/Kconfig.defconfig.series:26`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_TELINK_B91 ---- At ``/riscv/riscv-privilege/virt/Kconfig.defconfig.series:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/riscv/riscv-privilege/Kconfig.defconfig:6`` Menu path: (Top) .. code-block:: kconfig config RISCV_GP bool default y depends on SOC_SERIES_RISCV_VIRT ---- At ``/riscv/Kconfig:23`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:39`` → ``/Kconfig:12`` Menu path: (Top) → RISCV Options .. code-block:: kconfig config RISCV_GP bool "Enable RISC-V global pointer relative addressing" default n depends on RISCV help Use global pointer relative addressing for small globals declared anywhere in the executable. It can benefit performance and reduce the code size. Note: To support this feature, RISC-V SoC needs to initialize global pointer at program start or earlier than any instruction using GP relative addressing. *(The 'depends on' condition includes propagated dependencies from ifs and menus.)*