* [PATCH 1/4] ARM: at91: add code to handle secure calls
2022-02-22 15:08 [PATCH 0/4] ARM: at91: add support for secure suspend on sama5d2 Clément Léger
@ 2022-02-22 15:08 ` Clément Léger
2022-02-22 15:08 ` [PATCH 2/4] ARM: at91: pm: move "atmel.pm_modes" parsing into a common file Clément Léger
` (2 subsequent siblings)
3 siblings, 0 replies; 9+ messages in thread
From: Clément Léger @ 2022-02-22 15:08 UTC (permalink / raw)
To: Russell King, Nicolas Ferre, Alexandre Belloni, Ludovic Desroches
Cc: linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
Since OP-TEE now has a more complete support for sama5d2, add necessary
code to perform SMC calls. The detection of OP-TEE is based on a
specific device-tree node path (/firmware/optee) such has done by some
other SoC. A check is added to avoid doing SMC calls without having
OP-TEE.
Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
arch/arm/mach-at91/Makefile | 2 +-
arch/arm/mach-at91/sam_secure.c | 46 +++++++++++++++++++++++++++++++++
arch/arm/mach-at91/sam_secure.h | 14 ++++++++++
arch/arm/mach-at91/sama5.c | 2 ++
4 files changed, 63 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/mach-at91/sam_secure.c
create mode 100644 arch/arm/mach-at91/sam_secure.h
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 522b680b6446..0dcc37180588 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -7,7 +7,7 @@
obj-$(CONFIG_SOC_AT91RM9200) += at91rm9200.o
obj-$(CONFIG_SOC_AT91SAM9) += at91sam9.o
obj-$(CONFIG_SOC_SAM9X60) += sam9x60.o
-obj-$(CONFIG_SOC_SAMA5) += sama5.o
+obj-$(CONFIG_SOC_SAMA5) += sama5.o sam_secure.o
obj-$(CONFIG_SOC_SAMA7) += sama7.o
obj-$(CONFIG_SOC_SAMV7) += samv7.o
diff --git a/arch/arm/mach-at91/sam_secure.c b/arch/arm/mach-at91/sam_secure.c
new file mode 100644
index 000000000000..979fc3c892a3
--- /dev/null
+++ b/arch/arm/mach-at91/sam_secure.c
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2012, Bootlin
+ */
+
+#include <linux/arm-smccc.h>
+#include <linux/of.h>
+
+#include "sam_secure.h"
+
+static bool optee_available;
+
+#define SAM_SIP_SMC_STD_CALL_VAL(func_num) \
+ ARM_SMCCC_CALL_VAL(ARM_SMCCC_STD_CALL, ARM_SMCCC_SMC_32, \
+ ARM_SMCCC_OWNER_SIP, (func_num))
+
+struct arm_smccc_res sam_smccc_call(u32 fn, u32 arg0, u32 arg1)
+{
+ struct arm_smccc_res res = {.a0 = -1};
+
+ if (WARN_ON(!optee_available))
+ return res;
+
+ arm_smccc_smc(SAM_SIP_SMC_STD_CALL_VAL(fn), arg0, arg1,
+ 0, 0, 0, 0, 0, &res);
+
+ return res;
+}
+
+void __init sam_secure_init(void)
+{
+ struct device_node *np;
+
+ /*
+ * We only check that the OP-TEE node is present and available. The
+ * OP-TEE kernel driver is not needed for the type of interaction made
+ * with OP-TEE here so the driver's status is not checked.
+ */
+ np = of_find_node_by_path("/firmware/optee");
+ if (np && of_device_is_available(np))
+ optee_available = true;
+ of_node_put(np);
+
+ if (optee_available)
+ pr_info("Running under OP-TEE firmware\n");
+}
diff --git a/arch/arm/mach-at91/sam_secure.h b/arch/arm/mach-at91/sam_secure.h
new file mode 100644
index 000000000000..af19e24ca59e
--- /dev/null
+++ b/arch/arm/mach-at91/sam_secure.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (C) 2012, Bootlin
+ */
+
+#ifndef SAM_SECURE_H
+#define SAM_SECURE_H
+
+#include <linux/arm-smccc.h>
+
+void __init sam_secure_init(void);
+struct arm_smccc_res sam_smccc_call(u32 fn, u32 arg0, u32 arg1);
+
+#endif /* SAM_SECURE_H */
diff --git a/arch/arm/mach-at91/sama5.c b/arch/arm/mach-at91/sama5.c
index 89dab7cf01e8..de5dd28b392e 100644
--- a/arch/arm/mach-at91/sama5.c
+++ b/arch/arm/mach-at91/sama5.c
@@ -14,6 +14,7 @@
#include <asm/system_misc.h>
#include "generic.h"
+#include "sam_secure.h"
static void __init sama5_dt_device_init(void)
{
@@ -47,6 +48,7 @@ MACHINE_END
static void __init sama5d2_init(void)
{
of_platform_default_populate(NULL, NULL, NULL);
+ sam_secure_init();
sama5d2_pm_init();
}
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 9+ messages in thread* [PATCH 2/4] ARM: at91: pm: move "atmel.pm_modes" parsing into a common file
2022-02-22 15:08 [PATCH 0/4] ARM: at91: add support for secure suspend on sama5d2 Clément Léger
2022-02-22 15:08 ` [PATCH 1/4] ARM: at91: add code to handle secure calls Clément Léger
@ 2022-02-22 15:08 ` Clément Léger
2022-02-22 23:41 ` kernel test robot
2022-02-22 15:08 ` [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend Clément Léger
2022-02-22 15:08 ` [PATCH 4/4] ARM: at91: pm: fix defines to select *_pm_init functions Clément Léger
3 siblings, 1 reply; 9+ messages in thread
From: Clément Léger @ 2022-02-22 15:08 UTC (permalink / raw)
To: Russell King, Nicolas Ferre, Alexandre Belloni, Ludovic Desroches
Cc: linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
In order to add secure suspend support, split out code that will be
reused to parse the boot argument "atmel.pm_modes".
Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
arch/arm/mach-at91/Makefile | 2 +-
arch/arm/mach-at91/pm.c | 31 ++-------------------------
arch/arm/mach-at91/pm.h | 7 ++++++
arch/arm/mach-at91/pm_common.c | 39 ++++++++++++++++++++++++++++++++++
4 files changed, 49 insertions(+), 30 deletions(-)
create mode 100644 arch/arm/mach-at91/pm_common.c
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 0dcc37180588..23620ccf7ab6 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -12,7 +12,7 @@ obj-$(CONFIG_SOC_SAMA7) += sama7.o
obj-$(CONFIG_SOC_SAMV7) += samv7.o
# Power Management
-obj-$(CONFIG_ATMEL_PM) += pm.o pm_suspend.o
+obj-$(CONFIG_ATMEL_PM) += pm.o pm_suspend.o pm_common.o
ifeq ($(CONFIG_CPU_V7),y)
AFLAGS_pm_suspend.o := -march=armv7-a
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index dd6f4ce3f766..b575304ccf63 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -99,15 +99,6 @@ static struct at91_soc_pm soc_pm = {
},
};
-static const match_table_t pm_modes __initconst = {
- { AT91_PM_STANDBY, "standby" },
- { AT91_PM_ULP0, "ulp0" },
- { AT91_PM_ULP0_FAST, "ulp0-fast" },
- { AT91_PM_ULP1, "ulp1" },
- { AT91_PM_BACKUP, "backup" },
- { -1, NULL },
-};
-
#define at91_ramc_read(id, field) \
__raw_readl(soc_pm.data.ramc[id] + field)
@@ -1243,25 +1234,7 @@ void __init sama7_pm_init(void)
static int __init at91_pm_modes_select(char *str)
{
- char *s;
- substring_t args[MAX_OPT_ARGS];
- int standby, suspend;
-
- if (!str)
- return 0;
-
- s = strsep(&str, ",");
- standby = match_token(s, pm_modes, args);
- if (standby < 0)
- return 0;
-
- suspend = match_token(str, pm_modes, args);
- if (suspend < 0)
- return 0;
-
- soc_pm.data.standby_mode = standby;
- soc_pm.data.suspend_mode = suspend;
-
- return 0;
+ return at91_pm_common_modes_select(str, &soc_pm.data.standby_mode,
+ &soc_pm.data.suspend_mode);
}
early_param("atmel.pm_modes", at91_pm_modes_select);
diff --git a/arch/arm/mach-at91/pm.h b/arch/arm/mach-at91/pm.h
index 53bdc9000e44..e9f7f9841afd 100644
--- a/arch/arm/mach-at91/pm.h
+++ b/arch/arm/mach-at91/pm.h
@@ -40,6 +40,13 @@ struct at91_pm_data {
unsigned int pmc_mckr_offset;
unsigned int pmc_version;
};
+
+#include <linux/parser.h>
+
+extern const match_table_t pm_modes;
+
+int at91_pm_common_modes_select(char *str, int *standby_mode, int *suspend_mode);
+
#endif
#endif
diff --git a/arch/arm/mach-at91/pm_common.c b/arch/arm/mach-at91/pm_common.c
new file mode 100644
index 000000000000..45b74fb0a211
--- /dev/null
+++ b/arch/arm/mach-at91/pm_common.c
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include <linux/kernel.h>
+#include <linux/parser.h>
+#include <linux/string.h>
+
+#include "pm.h"
+
+const match_table_t pm_modes __initconst = {
+ { AT91_PM_STANDBY, "standby" },
+ { AT91_PM_ULP0, "ulp0" },
+ { AT91_PM_ULP0_FAST, "ulp0-fast" },
+ { AT91_PM_ULP1, "ulp1" },
+ { AT91_PM_BACKUP, "backup" },
+ { -1, NULL },
+};
+
+int at91_pm_common_modes_select(char *str, int *standby_mode, int *suspend_mode)
+{
+ char *s;
+ substring_t args[MAX_OPT_ARGS];
+ int standby, suspend;
+
+ if (!str)
+ return 0;
+
+ s = strsep(&str, ",");
+ standby = match_token(s, pm_modes, args);
+ if (standby < 0)
+ return 0;
+
+ suspend = match_token(str, pm_modes, args);
+ if (suspend < 0)
+ return 0;
+
+ *standby_mode = standby;
+ *suspend_mode = suspend;
+
+ return 0;
+}
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 2/4] ARM: at91: pm: move "atmel.pm_modes" parsing into a common file
2022-02-22 15:08 ` [PATCH 2/4] ARM: at91: pm: move "atmel.pm_modes" parsing into a common file Clément Léger
@ 2022-02-22 23:41 ` kernel test robot
0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2022-02-22 23:41 UTC (permalink / raw)
To: Clément Léger, Russell King, Nicolas Ferre,
Alexandre Belloni, Ludovic Desroches
Cc: kbuild-all, linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
Hi "Clément,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on soc/for-next]
[also build test WARNING on arm/for-next abelloni/rtc-next linus/master v5.17-rc5 next-20220217]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Cl-ment-L-ger/ARM-at91-add-support-for-secure-suspend-on-sama5d2/20220222-231305
base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
config: arm-multi_v4t_defconfig (https://download.01.org/0day-ci/archive/20220223/202202230722.7V2NTBn5-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/2f5afeeacfd5e7985d4ef768c9a3f2b430fe3fa3
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Cl-ment-L-ger/ARM-at91-add-support-for-secure-suspend-on-sama5d2/20220222-231305
git checkout 2f5afeeacfd5e7985d4ef768c9a3f2b430fe3fa3
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> WARNING: modpost: vmlinux.o(.text+0xb79c): Section mismatch in reference from the function at91_pm_common_modes_select() to the (unknown reference) .init.rodata:(unknown)
The function at91_pm_common_modes_select() references
the (unknown reference) __initconst (unknown).
This is often because at91_pm_common_modes_select lacks a __initconst
annotation or the annotation of (unknown) is wrong.
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend
2022-02-22 15:08 [PATCH 0/4] ARM: at91: add support for secure suspend on sama5d2 Clément Léger
2022-02-22 15:08 ` [PATCH 1/4] ARM: at91: add code to handle secure calls Clément Léger
2022-02-22 15:08 ` [PATCH 2/4] ARM: at91: pm: move "atmel.pm_modes" parsing into a common file Clément Léger
@ 2022-02-22 15:08 ` Clément Léger
2022-02-23 5:50 ` kernel test robot
2022-02-23 9:15 ` kernel test robot
2022-02-22 15:08 ` [PATCH 4/4] ARM: at91: pm: fix defines to select *_pm_init functions Clément Léger
3 siblings, 2 replies; 9+ messages in thread
From: Clément Léger @ 2022-02-22 15:08 UTC (permalink / raw)
To: Russell King, Nicolas Ferre, Alexandre Belloni, Ludovic Desroches
Cc: linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
When running with OP-TEE, the suspend control is handled securely.
Since the sama5d2 supports multiple suspend modes add a new
CONFIG_ATMEL_SECURE_PM which is mutually exclusive with CONFIG_ATMEL_PM
and allows to issue a SMC call to select the suspend mode.
"atmel.pm_modes" boot argument is still supported for compatibility
purposes but the standby value is actually ignored since PSCI suspend
is used and it only support one mode (suspend).
Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
arch/arm/mach-at91/Kconfig | 14 ++++++-
arch/arm/mach-at91/Makefile | 1 +
arch/arm/mach-at91/pm_secure.c | 64 +++++++++++++++++++++++++++++
arch/arm/mach-at91/sam_secure.h | 4 ++
include/linux/platform_data/atmel.h | 2 +-
5 files changed, 82 insertions(+), 3 deletions(-)
create mode 100644 arch/arm/mach-at91/pm_secure.c
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 02f6b108fd5d..bb11a914ad3e 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -201,14 +201,24 @@ config SOC_SAM_V7
config SOC_SAMA5
bool
select ATMEL_AIC5_IRQ
- select ATMEL_PM if PM
select ATMEL_SDRAMC
select MEMORY
select SOC_SAM_V7
select SRAM if PM
config ATMEL_PM
- bool
+ bool "Atmel PM support"
+ default y if SOC_SAMA5 && PM
+ depends on !ATMEL_SECURE_PM
+
+config ATMEL_SECURE_PM
+ bool "Atmel Secure PM support"
+ depends on SOC_SAMA5D2 && PM
+ help
+ When running under a TEE, the suspend mode must be requested to be set
+ at TEE level. When enable, this option will use secure monitor calls
+ to set the suspend level.
+ NOTE: This support is mutually exclusive with CONFIG_ATMEL_PM
config SOC_SAMA7
bool
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 23620ccf7ab6..ebd88de8d0e7 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -13,6 +13,7 @@ obj-$(CONFIG_SOC_SAMV7) += samv7.o
# Power Management
obj-$(CONFIG_ATMEL_PM) += pm.o pm_suspend.o pm_common.o
+obj-$(CONFIG_ATMEL_SECURE_PM) += pm_secure.o pm_common.o
ifeq ($(CONFIG_CPU_V7),y)
AFLAGS_pm_suspend.o := -march=armv7-a
diff --git a/arch/arm/mach-at91/pm_secure.c b/arch/arm/mach-at91/pm_secure.c
new file mode 100644
index 000000000000..2f63ff8c6226
--- /dev/null
+++ b/arch/arm/mach-at91/pm_secure.c
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2012, Bootlin
+ */
+
+#include <linux/export.h>
+#include <linux/kernel.h>
+#include <linux/parser.h>
+#include <linux/string.h>
+#include "generic.h"
+#include "sam_secure.h"
+#include "pm.h"
+
+static int suspend_mode = AT91_PM_ULP0;
+
+static void at91_pm_secure_init(void)
+{
+ struct arm_smccc_res res;
+
+ res = sam_smccc_call(SAMA5_SMC_SIP_SET_SUSPEND_MODE, suspend_mode, 0);
+ if (res.a0 == 0) {
+ pr_info("AT91: Secure PM: suspend mode set to %s\n",
+ pm_modes[suspend_mode].pattern);
+ return;
+ }
+
+ pr_warn("AT91: Secure PM: %s mode not supported !\n",
+ pm_modes[suspend_mode].pattern);
+
+ res = sam_smccc_call(SAMA5_SMC_SIP_GET_SUSPEND_MODE, 0, 0);
+ if (res.a0 == 0) {
+ pr_warn("AT91: Secure PM: failed to get default mode\n");
+ return;
+ }
+ suspend_mode = res.a1;
+
+ pr_info("AT91: Secure PM: using default suspend mode %s\n",
+ pm_modes[suspend_mode].pattern);
+}
+
+void __init sama5_pm_init(void)
+{
+}
+
+void __init sama5d2_pm_init(void)
+{
+ at91_pm_secure_init();
+}
+
+int at91_suspend_entering_slow_clock(void)
+{
+ return (suspend_mode >= AT91_PM_ULP0);
+}
+EXPORT_SYMBOL(at91_suspend_entering_slow_clock);
+
+static int __init at91_pm_modes_select(char *str)
+{
+ int dummy;
+
+ pr_warn("AT91: Secure PM: ignoring standby mode\n");
+
+ return at91_pm_common_modes_select(str, &dummy, &suspend_mode);
+}
+early_param("atmel.pm_modes", at91_pm_modes_select);
diff --git a/arch/arm/mach-at91/sam_secure.h b/arch/arm/mach-at91/sam_secure.h
index af19e24ca59e..b169317f61f6 100644
--- a/arch/arm/mach-at91/sam_secure.h
+++ b/arch/arm/mach-at91/sam_secure.h
@@ -8,6 +8,10 @@
#include <linux/arm-smccc.h>
+/* Secure Monitor mode APIs */
+#define SAMA5_SMC_SIP_SET_SUSPEND_MODE 0x400
+#define SAMA5_SMC_SIP_GET_SUSPEND_MODE 0x401
+
void __init sam_secure_init(void);
struct arm_smccc_res sam_smccc_call(u32 fn, u32 arg0, u32 arg1);
diff --git a/include/linux/platform_data/atmel.h b/include/linux/platform_data/atmel.h
index 73f63be509c4..cbb19712b4f0 100644
--- a/include/linux/platform_data/atmel.h
+++ b/include/linux/platform_data/atmel.h
@@ -7,7 +7,7 @@
#define __ATMEL_H__
/* FIXME: this needs a better location, but gets stuff building again */
-#ifdef CONFIG_ATMEL_PM
+#if defined(CONFIG_ATMEL_PM) || defined(CONFIG_ATMEL_SECURE_PM)
extern int at91_suspend_entering_slow_clock(void);
#else
static inline int at91_suspend_entering_slow_clock(void)
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend
2022-02-22 15:08 ` [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend Clément Léger
@ 2022-02-23 5:50 ` kernel test robot
2022-02-23 9:15 ` kernel test robot
1 sibling, 0 replies; 9+ messages in thread
From: kernel test robot @ 2022-02-23 5:50 UTC (permalink / raw)
To: Clément Léger, Russell King, Nicolas Ferre,
Alexandre Belloni, Ludovic Desroches
Cc: kbuild-all, linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
Hi "Clément,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on soc/for-next]
[also build test WARNING on arm/for-next abelloni/rtc-next linus/master v5.17-rc5 next-20220217]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Cl-ment-L-ger/ARM-at91-add-support-for-secure-suspend-on-sama5d2/20220222-231305
base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20220223/202202231329.2hzbFwiR-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/e7f524a6f3693c0e84b0258766c98a24046c9ba1
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Cl-ment-L-ger/ARM-at91-add-support-for-secure-suspend-on-sama5d2/20220222-231305
git checkout e7f524a6f3693c0e84b0258766c98a24046c9ba1
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> arch/arm/mach-at91/pm_secure.c:50:5: warning: no previous prototype for 'at91_suspend_entering_slow_clock' [-Wmissing-prototypes]
50 | int at91_suspend_entering_slow_clock(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for ATMEL_PM
Depends on ARCH_AT91 && !ATMEL_SECURE_PM
Selected by
- SOC_SAMA7 && ARCH_AT91 && PM
vim +/at91_suspend_entering_slow_clock +50 arch/arm/mach-at91/pm_secure.c
49
> 50 int at91_suspend_entering_slow_clock(void)
51 {
52 return (suspend_mode >= AT91_PM_ULP0);
53 }
54 EXPORT_SYMBOL(at91_suspend_entering_slow_clock);
55
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend
2022-02-22 15:08 ` [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend Clément Léger
2022-02-23 5:50 ` kernel test robot
@ 2022-02-23 9:15 ` kernel test robot
2022-02-23 9:30 ` Clément Léger
1 sibling, 1 reply; 9+ messages in thread
From: kernel test robot @ 2022-02-23 9:15 UTC (permalink / raw)
To: Clément Léger, Russell King, Nicolas Ferre,
Alexandre Belloni, Ludovic Desroches
Cc: kbuild-all, linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
Hi "Clément,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on soc/for-next]
[also build test ERROR on abelloni/rtc-next linus/master v5.17-rc5 next-20220222]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Cl-ment-L-ger/ARM-at91-add-support-for-secure-suspend-on-sama5d2/20220222-231305
base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20220223/202202231708.CAFCHZIn-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/e7f524a6f3693c0e84b0258766c98a24046c9ba1
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Cl-ment-L-ger/ARM-at91-add-support-for-secure-suspend-on-sama5d2/20220222-231305
git checkout e7f524a6f3693c0e84b0258766c98a24046c9ba1
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
arm-linux-gnueabi-ld: arch/arm/mach-at91/pm_secure.o: in function `sama5_pm_init':
>> (.init.text+0x10c): multiple definition of `sama5_pm_init'; arch/arm/mach-at91/pm.o:(.init.text+0x1b58): first defined here
arm-linux-gnueabi-ld: arch/arm/mach-at91/pm_secure.o: in function `sama5d2_pm_init':
>> (.init.text+0x160): multiple definition of `sama5d2_pm_init'; arch/arm/mach-at91/pm.o:(.init.text+0x1c0c): first defined here
arm-linux-gnueabi-ld: arch/arm/mach-at91/pm_secure.o: in function `at91_suspend_entering_slow_clock':
>> (.text+0x0): multiple definition of `at91_suspend_entering_slow_clock'; arch/arm/mach-at91/pm.o:(.text+0x80): first defined here
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for ATMEL_PM
Depends on ARCH_AT91 && !ATMEL_SECURE_PM
Selected by
- SOC_SAMA7 && ARCH_AT91 && PM
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 9+ messages in thread* Re: [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend
2022-02-23 9:15 ` kernel test robot
@ 2022-02-23 9:30 ` Clément Léger
0 siblings, 0 replies; 9+ messages in thread
From: Clément Léger @ 2022-02-23 9:30 UTC (permalink / raw)
To: kernel test robot
Cc: Alexandre Belloni, kbuild-all, linux-kernel, Russell King,
Ludovic Desroches, Thomas Petazzoni, linux-arm-kernel
Le Wed, 23 Feb 2022 17:15:44 +0800,
kernel test robot <lkp@intel.com> a écrit :
> arm-linux-gnueabi-ld: arch/arm/mach-at91/pm_secure.o: in function `sama5_pm_init':
> >> (.init.text+0x10c): multiple definition of `sama5_pm_init'; arch/arm/mach-at91/pm.o:(.init.text+0x1b58): first defined here
> arm-linux-gnueabi-ld: arch/arm/mach-at91/pm_secure.o: in function `sama5d2_pm_init':
> >> (.init.text+0x160): multiple definition of `sama5d2_pm_init'; arch/arm/mach-at91/pm.o:(.init.text+0x1c0c): first defined here
> arm-linux-gnueabi-ld: arch/arm/mach-at91/pm_secure.o: in function `at91_suspend_entering_slow_clock':
> >> (.text+0x0): multiple definition of `at91_suspend_entering_slow_clock'; arch/arm/mach-at91/pm.o:(.text+0x80): first defined here
>
> Kconfig warnings: (for reference only)
> WARNING: unmet direct dependencies detected for ATMEL_PM
> Depends on ARCH_AT91 && !ATMEL_SECURE_PM
> Selected by
> - SOC_SAMA7 && ARCH_AT91 && PM
Actually, using mutually exclusive option for ATMEL_PM and
ATMEL_SECURE_PM does not seems to fit this really well. I guess it
would be better to integrate secure PM handling inside existing PM.c
code.
--
Clément Léger,
Embedded Linux and Kernel engineer at Bootlin
https://bootlin.com
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 4/4] ARM: at91: pm: fix defines to select *_pm_init functions
2022-02-22 15:08 [PATCH 0/4] ARM: at91: add support for secure suspend on sama5d2 Clément Léger
` (2 preceding siblings ...)
2022-02-22 15:08 ` [PATCH 3/4] ARM: at91: pm: add support for sama5d2 secure suspend Clément Léger
@ 2022-02-22 15:08 ` Clément Léger
3 siblings, 0 replies; 9+ messages in thread
From: Clément Léger @ 2022-02-22 15:08 UTC (permalink / raw)
To: Russell King, Nicolas Ferre, Alexandre Belloni, Ludovic Desroches
Cc: linux-arm-kernel, linux-kernel, Thomas Petazzoni,
Clément Léger
These defines actually don't depend on CONFIG_PM but CONFIG_ATMEL_PM.
In the same time, add a "or" with CONFIG_ATMEL_SECURE_PM since it can
also provides these functions.
Signed-off-by: Clément Léger <clement.leger@bootlin.com>
---
arch/arm/mach-at91/generic.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index 0c3960a8b3eb..279ab7e0cdca 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -8,7 +8,7 @@
#ifndef _AT91_GENERIC_H
#define _AT91_GENERIC_H
-#ifdef CONFIG_PM
+#if defined(CONFIG_ATMEL_PM) || defined(CONFIG_ATMEL_SECURE_PM)
extern void __init at91rm9200_pm_init(void);
extern void __init at91sam9_pm_init(void);
extern void __init sam9x60_pm_init(void);
--
2.34.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 9+ messages in thread