summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorChuck Jordan <cjordan@synopsys.com>2016-10-07 10:29:11 -0700
committerAnas Nashif <nashif@linux.intel.com>2016-10-07 20:50:25 +0000
commited569f525d3d9fa5d675194f86142d0bd6d0eeda (patch)
tree1f9fe45a9a40f69b2637f0d1ddc1f0ec05a553ff /arch
parent67d6b592cf1b1df4f230a1421302948c66716f5e (diff)
arc: RGF_NUM_BANKS is another configurable option for ARCs
In order to add the EM7D SOC, I will be implementing a version of the FIRQ interrupt handler that saves and restores registers on the stack when RGF_NUM_BANKS==1. All other ARC SOCs at this time have RGF_NUM_BANKS==2, allowing for a faster handler that can use the registers in the 2nd register bank. But EM7D doesn't have this 2nd bank, hence the need for this new configurable choice. (See ZEP-966) Change-Id: Ie089f1f079902552cf279c2cda23ee0805b01eed Signed-off-by: Chuck Jordan <cjordan@synopsys.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arc/Kconfig14
-rw-r--r--arch/arc/soc/em11d/Kconfig.defconfig3
-rw-r--r--arch/arc/soc/em9d/Kconfig.defconfig3
-rw-r--r--arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig3
4 files changed, 23 insertions, 0 deletions
diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index 78031439c..1e4676aa0 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -112,6 +112,20 @@ config NUM_IRQS
The BSP must provide a valid default. This drives the size of the
vector table.
+config RGF_NUM_BANKS
+ int
+ prompt "Number of General Purpose Register Banks"
+ depends on CPU_ARCV2
+ range 1 2
+ default 2
+ 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 regsiters.
+
config FIRQ_STACK_SIZE
int
prompt "Size of stack for FIRQs (in bytes)"
diff --git a/arch/arc/soc/em11d/Kconfig.defconfig b/arch/arc/soc/em11d/Kconfig.defconfig
index 768a09769..6fb38296b 100644
--- a/arch/arc/soc/em11d/Kconfig.defconfig
+++ b/arch/arc/soc/em11d/Kconfig.defconfig
@@ -36,6 +36,9 @@ config NUM_IRQS
# must be > the highest interrupt number used
default 36
+config RGF_NUM_BANKS
+ default 2
+
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 20000000
diff --git a/arch/arc/soc/em9d/Kconfig.defconfig b/arch/arc/soc/em9d/Kconfig.defconfig
index c3a12829a..1614deff4 100644
--- a/arch/arc/soc/em9d/Kconfig.defconfig
+++ b/arch/arc/soc/em9d/Kconfig.defconfig
@@ -36,6 +36,9 @@ config NUM_IRQS
# must be > the highest interrupt number used
default 36
+config RGF_NUM_BANKS
+ default 2
+
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 20000000
diff --git a/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig b/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig
index 3f3c21787..d5b82da2b 100644
--- a/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig
+++ b/arch/arc/soc/quark_se_c1000_ss/Kconfig.defconfig
@@ -33,6 +33,9 @@ config NUM_IRQS
# must be > the highest interrupt number used
default 68
+config RGF_NUM_BANKS
+ default 2
+
config SYS_CLOCK_HW_CYCLES_PER_SEC
default 32000000