From 4093e2a24dc1c1b85384d8484860c2b73f86db91 Mon Sep 17 00:00:00 2001 From: Yuguo Zou Date: Mon, 22 Nov 2021 15:20:43 +0800 Subject: [PATCH] soc: arc: fix ARC_HAS_ACCL_REGS settings ARC_HAS_ACCL_REGS should set to y to protect ACCL and ACCH registers during irq. These registers could be used as GPRs by compilers and therefore need store/restore during irq. Signed-off-by: Yuguo Zou --- arch/arc/Kconfig | 1 - soc/arc/snps_arc_hsdk/Kconfig.defconfig | 3 +++ soc/arc/snps_nsim/Kconfig.defconfig.em | 3 +++ soc/arc/snps_nsim/Kconfig.defconfig.em7d_v22 | 3 +++ soc/arc/snps_nsim/Kconfig.defconfig.hs | 3 +++ soc/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6 | 3 +++ soc/arc/snps_nsim/Kconfig.defconfig.sem | 3 +++ 7 files changed, 18 insertions(+), 1 deletion(-) diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 5fd90cb27fa23..2875717eb3035 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -263,7 +263,6 @@ config CODE_DENSITY config ARC_HAS_ACCL_REGS bool "Reg Pair ACCL:ACCH (FPU and/or MPY > 6)" default y if CPU_HS3X - default y if FPU help Depending on the configuration, CPU can contain accumulator reg-pair (also referred to as r58:r59). These can also be used by gcc as GPR so diff --git a/soc/arc/snps_arc_hsdk/Kconfig.defconfig b/soc/arc/snps_arc_hsdk/Kconfig.defconfig index 3a6f73390352d..ca6e2f5cca828 100644 --- a/soc/arc/snps_arc_hsdk/Kconfig.defconfig +++ b/soc/arc/snps_arc_hsdk/Kconfig.defconfig @@ -47,4 +47,7 @@ config UART_NS16550_ACCESS_WORD_ONLY default y depends on UART_NS16550 +config ARC_HAS_ACCL_REGS + default y + endif # ARC_HSDK diff --git a/soc/arc/snps_nsim/Kconfig.defconfig.em b/soc/arc/snps_nsim/Kconfig.defconfig.em index ac69c49e32923..a7b5dd81755ba 100644 --- a/soc/arc/snps_nsim/Kconfig.defconfig.em +++ b/soc/arc/snps_nsim/Kconfig.defconfig.em @@ -50,4 +50,7 @@ config ZTEST_STACKSIZE endif # ARC_MPU_VER +config ARC_HAS_ACCL_REGS + default y + endif # SOC_NSIM_EM diff --git a/soc/arc/snps_nsim/Kconfig.defconfig.em7d_v22 b/soc/arc/snps_nsim/Kconfig.defconfig.em7d_v22 index 11ca82dc00dde..2cd0ff92f452f 100644 --- a/soc/arc/snps_nsim/Kconfig.defconfig.em7d_v22 +++ b/soc/arc/snps_nsim/Kconfig.defconfig.em7d_v22 @@ -47,4 +47,7 @@ config ZTEST_STACKSIZE endif # ARC_MPU_VER +config ARC_HAS_ACCL_REGS + default y + endif # SOC_NSIM_EM diff --git a/soc/arc/snps_nsim/Kconfig.defconfig.hs b/soc/arc/snps_nsim/Kconfig.defconfig.hs index 8383e1bb717f6..844873d00101e 100644 --- a/soc/arc/snps_nsim/Kconfig.defconfig.hs +++ b/soc/arc/snps_nsim/Kconfig.defconfig.hs @@ -30,4 +30,7 @@ config ARC_FIRQ config CACHE_MANAGEMENT default y +config ARC_HAS_ACCL_REGS + default y + endif # SOC_NSIM_HS diff --git a/soc/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6 b/soc/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6 index 5dca50e1dd385..9798acb2b116e 100644 --- a/soc/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6 +++ b/soc/arc/snps_nsim/Kconfig.defconfig.hs_mpuv6 @@ -36,4 +36,7 @@ config ARC_FIRQ config CACHE_MANAGEMENT default y +config ARC_HAS_ACCL_REGS + default y + endif # SOC_NSIM_HS_MPUV6 diff --git a/soc/arc/snps_nsim/Kconfig.defconfig.sem b/soc/arc/snps_nsim/Kconfig.defconfig.sem index 708261eb8b2c1..124cd9c244aba 100644 --- a/soc/arc/snps_nsim/Kconfig.defconfig.sem +++ b/soc/arc/snps_nsim/Kconfig.defconfig.sem @@ -33,4 +33,7 @@ config ARC_FIRQ config CACHE_MANAGEMENT default y +config ARC_HAS_ACCL_REGS + default y + endif # SOC_NSIM_SEM