diff mbox series

arm: include: secure: Don't include asm\global_data.h in .S file

Message ID 20210219023143.24373-1-elly.siew.chin.lim@intel.com
State Superseded
Delegated to: Tom Rini
Headers show
Series arm: include: secure: Don't include asm\global_data.h in .S file | expand

Commit Message

Siew Chin Lim Feb. 19, 2021, 2:31 a.m. UTC
Commit "common: Drop asm/global_data.h from common header" added
asm\global_data.h into secure.h. However, secure.h will be included
by psci.S. Adding asm\global_data.h has caused compilation failure in
pcsi.S. Update secure.h to only include asm\global_data.h in non-assembly
section.

Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
---
 arch/arm/include/asm/secure.h | 23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

Comments

Simon Glass Feb. 20, 2021, 11:55 a.m. UTC | #1
Hi Siew,

On Thu, 18 Feb 2021 at 19:31, Siew Chin Lim
<elly.siew.chin.lim@intel.com> wrote:
>
> Commit "common: Drop asm/global_data.h from common header" added
> asm\global_data.h into secure.h. However, secure.h will be included

asm/global_data.h

> by psci.S. Adding asm\global_data.h has caused compilation failure in
> pcsi.S. Update secure.h to only include asm\global_data.h in non-assembly
> section.
>
> Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
> ---
>  arch/arm/include/asm/secure.h | 23 ++++++++++++-----------
>  1 file changed, 12 insertions(+), 11 deletions(-)

Which board shows this failure?

>
> diff --git a/arch/arm/include/asm/secure.h b/arch/arm/include/asm/secure.h
> index 64e5582c1f..63a21f89ce 100644
> --- a/arch/arm/include/asm/secure.h
> +++ b/arch/arm/include/asm/secure.h
> @@ -2,7 +2,9 @@
>  #define __ASM_SECURE_H
>
>  #include <config.h>
> +#ifndef __ASSEMBLY__
>  #include <asm/global_data.h>
> +#endif
>
>  #define __secure __attribute__ ((section ("._secure.text")))
>  #define __secure_data __attribute__ ((section ("._secure.data")))
> @@ -27,17 +29,6 @@ typedef struct secure_svc_tbl {
>                                 .id = _id, \
>                                 .func = _fn }
>
> -#else
> -
> -#ifdef CONFIG_ARMV8_PSCI
> -#define SECURE_SVC_TBL_OFFSET          16
> -#else
> -#define SECURE_SVC_TBL_OFFSET          8
> -
> -#endif
> -
> -#endif /* __ASSEMBLY__ */
> -
>  #if defined(CONFIG_ARMV7_SECURE_BASE) || defined(CONFIG_ARMV8_SECURE_BASE)
>  /*
>   * Warning, horror ahead.
> @@ -58,4 +49,14 @@ typedef struct secure_svc_tbl {
>  #define secure_ram_addr(_fn)   (_fn)
>  #endif
>
> +#else /* __ASSEMBLY__ */
> +
> +#ifdef CONFIG_ARMV8_PSCI
> +#define SECURE_SVC_TBL_OFFSET          16
> +#else
> +#define SECURE_SVC_TBL_OFFSET          8
> +#endif
> +
> +#endif /* __ASSEMBLY__ */
> +
>  #endif
> --
> 2.13.0
>

Regards,
Simon
Siew Chin Lim Feb. 22, 2021, 1:10 a.m. UTC | #2
Hi Simon,

> -----Original Message-----
> From: Simon Glass <sjg@chromium.org>
> Sent: Saturday, February 20, 2021 7:55 PM
> To: Lim, Elly Siew Chin <elly.siew.chin.lim@intel.com>
> Cc: U-Boot Mailing List <u-boot@lists.denx.de>; Marek Vasut
> <marex@denx.de>; Tan, Ley Foon <ley.foon.tan@intel.com>; See, Chin Liang
> <chin.liang.see@intel.com>; Simon Goldschmidt
> <simon.k.r.goldschmidt@gmail.com>; Chee, Tien Fong
> <tien.fong.chee@intel.com>; Westergreen, Dalon
> <dalon.westergreen@intel.com>; Gan, Yau Wai <yau.wai.gan@intel.com>
> Subject: Re: [PATCH] arm: include: secure: Don't include asm\global_data.h
> in .S file
> 
> Hi Siew,
> 
> On Thu, 18 Feb 2021 at 19:31, Siew Chin Lim <elly.siew.chin.lim@intel.com>
> wrote:
> >
> > Commit "common: Drop asm/global_data.h from common header" added
> > asm\global_data.h into secure.h. However, secure.h will be included
> 
> asm/global_data.h

Noted. I will update the comment.

> 
> > by psci.S. Adding asm\global_data.h has caused compilation failure in
> > pcsi.S. Update secure.h to only include asm\global_data.h in
> > non-assembly section.
> >
> > Signed-off-by: Siew Chin Lim <elly.siew.chin.lim@intel.com>
> > ---
> >  arch/arm/include/asm/secure.h | 23 ++++++++++++-----------
> >  1 file changed, 12 insertions(+), 11 deletions(-)
> 
> Which board shows this failure?
> 

Intel socfpga board with non-ATF flow. We need to enable CONFIG_ARMV8_PSCI at our downstream patch for non-ATF flow PSCI support. With this CONFIG_ARMV8_PSCI, it will compile psci.S, psci.S include secure.h, and secure.h have been updated to include "asm/global_data.h".
The compilation fails with the following errors.

./arch/arm/include/asm/types.h: Assembler messages:
./arch/arm/include/asm/types.h:6: Error: unknown mnemonic `typedef' -- `typedef unsigned short umode_t'
./arch/arm/include/asm/types.h:20: Error: unknown mnemonic `typedef' -- `typedef unsigned long long phys_addr_t'
./arch/arm/include/asm/types.h:21: Error: unknown mnemonic `typedef' -- `typedef unsigned long long phys_size_t'
./arch/arm/include/asm/types.h:38: Error: unknown mnemonic `typedef' -- `typedef unsigned long long dma_addr_t'
include/linux/posix_types.h:36: Error: unknown mnemonic `typedef' -- `typedef struct{'
...< truncated>...


Thanks,
Siew Chin

> >
> > diff --git a/arch/arm/include/asm/secure.h
> > b/arch/arm/include/asm/secure.h index 64e5582c1f..63a21f89ce 100644
> > --- a/arch/arm/include/asm/secure.h
> > +++ b/arch/arm/include/asm/secure.h
> > @@ -2,7 +2,9 @@
> >  #define __ASM_SECURE_H
> >
> >  #include <config.h>
> > +#ifndef __ASSEMBLY__
> >  #include <asm/global_data.h>
> > +#endif
> >
> >  #define __secure __attribute__ ((section ("._secure.text")))  #define
> > __secure_data __attribute__ ((section ("._secure.data"))) @@ -27,17
> > +29,6 @@ typedef struct secure_svc_tbl {
> >                                 .id = _id, \
> >                                 .func = _fn }
> >
> > -#else
> > -
> > -#ifdef CONFIG_ARMV8_PSCI
> > -#define SECURE_SVC_TBL_OFFSET          16
> > -#else
> > -#define SECURE_SVC_TBL_OFFSET          8
> > -
> > -#endif
> > -
> > -#endif /* __ASSEMBLY__ */
> > -
> >  #if defined(CONFIG_ARMV7_SECURE_BASE) ||
> > defined(CONFIG_ARMV8_SECURE_BASE)
> >  /*
> >   * Warning, horror ahead.
> > @@ -58,4 +49,14 @@ typedef struct secure_svc_tbl {
> >  #define secure_ram_addr(_fn)   (_fn)
> >  #endif
> >
> > +#else /* __ASSEMBLY__ */
> > +
> > +#ifdef CONFIG_ARMV8_PSCI
> > +#define SECURE_SVC_TBL_OFFSET          16
> > +#else
> > +#define SECURE_SVC_TBL_OFFSET          8
> > +#endif
> > +
> > +#endif /* __ASSEMBLY__ */
> > +
> >  #endif
> > --
> > 2.13.0
> >
> 
> Regards,
> Simon
diff mbox series

Patch

diff --git a/arch/arm/include/asm/secure.h b/arch/arm/include/asm/secure.h
index 64e5582c1f..63a21f89ce 100644
--- a/arch/arm/include/asm/secure.h
+++ b/arch/arm/include/asm/secure.h
@@ -2,7 +2,9 @@ 
 #define __ASM_SECURE_H
 
 #include <config.h>
+#ifndef __ASSEMBLY__
 #include <asm/global_data.h>
+#endif
 
 #define __secure __attribute__ ((section ("._secure.text")))
 #define __secure_data __attribute__ ((section ("._secure.data")))
@@ -27,17 +29,6 @@  typedef struct secure_svc_tbl {
 				.id = _id, \
 				.func = _fn }
 
-#else
-
-#ifdef CONFIG_ARMV8_PSCI
-#define SECURE_SVC_TBL_OFFSET		16
-#else
-#define SECURE_SVC_TBL_OFFSET		8
-
-#endif
-
-#endif /* __ASSEMBLY__ */
-
 #if defined(CONFIG_ARMV7_SECURE_BASE) || defined(CONFIG_ARMV8_SECURE_BASE)
 /*
  * Warning, horror ahead.
@@ -58,4 +49,14 @@  typedef struct secure_svc_tbl {
 #define secure_ram_addr(_fn)	(_fn)
 #endif
 
+#else /* __ASSEMBLY__ */
+
+#ifdef CONFIG_ARMV8_PSCI
+#define SECURE_SVC_TBL_OFFSET		16
+#else
+#define SECURE_SVC_TBL_OFFSET		8
+#endif
+
+#endif /* __ASSEMBLY__ */
+
 #endif