:orphan: .. title:: CONFIG_RGF_NUM_BANKS .. kconfig:: CONFIG_RGF_NUM_BANKS CONFIG_RGF_NUM_BANKS #################### *Number of General Purpose Register Banks* Type: ``int`` Help ==== .. code-block:: none The ARC CPU can be configured to have more than one register bank. If fast interrupts are supported (FIRQ), the 2nd register bank, in the set, will be used by FIRQ interrupts. If fast interrupts are supported but there is only 1 register bank, the fast interrupt handler must save and restore general purpose registers. NOTE: it's required to have more than one interrupt priority level to use second register bank - otherwise all interrupts will use same register bank. Such configuration isn't supported in software and it is not beneficial from the performance point of view. Direct dependencies =================== \ :kconfig:`SOC_ARC_HSDK ` || \ :kconfig:`SOC_ARC_IOT ` || (\ :kconfig:`SOC_EMSDP_EM4 ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM5D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM6 ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM7D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM7D_ESP ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM9D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM11D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSK_EM7D ` && \ :kconfig:`SOC_EMSK `) || (\ :kconfig:`SOC_EMSK_EM11D ` && \ :kconfig:`SOC_EMSK `) || (\ :kconfig:`SOC_EMSK_EM9D ` && \ :kconfig:`SOC_EMSK `) || (\ :kconfig:`SOC_NSIM_EM ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_EM7D_V22 ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_SEM ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_HS ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_HS_SMP ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_HS_MPUV6 ` && \ :kconfig:`SOC_NSIM `) || \ :kconfig:`SOC_QEMU_ARC ` || \ :kconfig:`SOC_ARC_HSDK ` || \ :kconfig:`SOC_ARC_IOT ` || (\ :kconfig:`SOC_EMSDP_EM4 ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM5D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM6 ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM7D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM7D_ESP ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM9D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSDP_EM11D ` && \ :kconfig:`SOC_ARC_EMSDP `) || (\ :kconfig:`SOC_EMSK_EM7D ` && \ :kconfig:`SOC_EMSK `) || (\ :kconfig:`SOC_EMSK_EM11D ` && \ :kconfig:`SOC_EMSK `) || (\ :kconfig:`SOC_EMSK_EM9D ` && \ :kconfig:`SOC_EMSK `) || (\ :kconfig:`SOC_NSIM_EM ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_EM7D_V22 ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_SEM ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_HS ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_HS_SMP ` && \ :kconfig:`SOC_NSIM `) || (\ :kconfig:`SOC_NSIM_HS_MPUV6 ` && \ :kconfig:`SOC_NSIM `) || \ :kconfig:`SOC_QEMU_ARC ` || (\ :kconfig:`ARC_FIRQ ` && \ :kconfig:`NUM_IRQ_PRIO_LEVELS ` > 1 && \ :kconfig:`ARC `) *(Includes any dependencies from ifs and menus.)* Defaults ======== - 2 - 2 - 2 - 2 - 2 - 2 - 1 - 2 - 2 - 1 - 2 - 2 - 2 - 1 - 1 - 2 - 2 - 2 - 1 - 2 - 2 - 2 - 2 - 2 - 2 - 1 - 2 - 2 - 1 - 2 - 2 - 2 - 1 - 1 - 2 - 2 - 2 - 1 - 2 Kconfig definitions =================== At ``/arc/snps_arc_hsdk/Kconfig.defconfig:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_ARC_HSDK ---- At ``/arc/snps_arc_iot/Kconfig.defconfig:25`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_ARC_IOT ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em4:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:14`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM4 && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em5d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:15`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM5D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em6:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:16`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM6 && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em7d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:17`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM7D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em7d_esp:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:18`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_EMSDP_EM7D_ESP && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em9d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:19`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM9D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em11d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsdp/Kconfig.defconfig:20`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM11D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsk/Kconfig.defconfig.em7d:24`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsk/Kconfig.defconfig:10`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_EMSK_EM7D && SOC_EMSK ---- At ``/arc/snps_emsk/Kconfig.defconfig.em11d:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsk/Kconfig.defconfig:11`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSK_EM11D && SOC_EMSK ---- At ``/arc/snps_emsk/Kconfig.defconfig.em9d:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_emsk/Kconfig.defconfig:12`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSK_EM9D && SOC_EMSK ---- At ``/arc/snps_nsim/Kconfig.defconfig.em:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_nsim/Kconfig.defconfig:12`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_EM && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.em7d_v22:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_nsim/Kconfig.defconfig:13`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_NSIM_EM7D_V22 && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.sem:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_nsim/Kconfig.defconfig:14`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_NSIM_SEM && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.hs:18`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_nsim/Kconfig.defconfig:15`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_HS && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.hs_smp:18`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_nsim/Kconfig.defconfig:16`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_HS_SMP && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6:24`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` → ``/arc/snps_nsim/Kconfig.defconfig:19`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_HS_MPUV6 && SOC_NSIM ---- At ``/arc/snps_qemu/Kconfig.defconfig:14`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:25`` → ``/kconfig/Kconfig.soc.defconfig:1`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_QEMU_ARC ---- At ``/arc/snps_arc_hsdk/Kconfig.defconfig:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_ARC_HSDK ---- At ``/arc/snps_arc_iot/Kconfig.defconfig:25`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_ARC_IOT ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em4:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:14`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM4 && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em5d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:15`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM5D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em6:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:16`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM6 && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em7d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:17`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM7D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em7d_esp:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:18`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_EMSDP_EM7D_ESP && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em9d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:19`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM9D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsdp/Kconfig.defconfig.em11d:15`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsdp/Kconfig.defconfig:20`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSDP_EM11D && SOC_ARC_EMSDP ---- At ``/arc/snps_emsk/Kconfig.defconfig.em7d:24`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsk/Kconfig.defconfig:10`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_EMSK_EM7D && SOC_EMSK ---- At ``/arc/snps_emsk/Kconfig.defconfig.em11d:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsk/Kconfig.defconfig:11`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSK_EM11D && SOC_EMSK ---- At ``/arc/snps_emsk/Kconfig.defconfig.em9d:20`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_emsk/Kconfig.defconfig:12`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_EMSK_EM9D && SOC_EMSK ---- At ``/arc/snps_nsim/Kconfig.defconfig.em:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_nsim/Kconfig.defconfig:12`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_EM && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.em7d_v22:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_nsim/Kconfig.defconfig:13`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_NSIM_EM7D_V22 && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.sem:21`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_nsim/Kconfig.defconfig:14`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_NSIM_SEM && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.hs:18`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_nsim/Kconfig.defconfig:15`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_HS && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.hs_smp:18`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_nsim/Kconfig.defconfig:16`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_HS_SMP && SOC_NSIM ---- At ``/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6:24`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` → ``/arc/snps_nsim/Kconfig.defconfig:19`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 2 depends on SOC_NSIM_HS_MPUV6 && SOC_NSIM ---- At ``/arc/snps_qemu/Kconfig.defconfig:14`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:27`` Menu path: (Top) .. code-block:: kconfig config RGF_NUM_BANKS int default 1 depends on SOC_QEMU_ARC ---- At ``/arc/Kconfig:136`` Included via ``Kconfig:8`` → ``Kconfig.zephyr:39`` → ``/Kconfig:12`` Menu path: (Top) → ARC Options → ARC CPU Options .. code-block:: kconfig config RGF_NUM_BANKS int "Number of General Purpose Register Banks" range 1 2 default 2 depends on ARC_FIRQ && NUM_IRQ_PRIO_LEVELS > 1 && ARC help The ARC CPU can be configured to have more than one register bank. If fast interrupts are supported (FIRQ), the 2nd register bank, in the set, will be used by FIRQ interrupts. If fast interrupts are supported but there is only 1 register bank, the fast interrupt handler must save and restore general purpose registers. NOTE: it's required to have more than one interrupt priority level to use second register bank - otherwise all interrupts will use same register bank. Such configuration isn't supported in software and it is not beneficial from the performance point of view. *(The 'depends on' condition includes propagated dependencies from ifs and menus.)*