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

Lim, Elly Siew Chin elly.siew.chin.lim at intel.com
Mon Feb 22 02:10:00 CET 2021


Hi Simon,

> -----Original Message-----
> From: Simon Glass <sjg at chromium.org>
> Sent: Saturday, February 20, 2021 7:55 PM
> To: Lim, Elly Siew Chin <elly.siew.chin.lim at intel.com>
> Cc: U-Boot Mailing List <u-boot at lists.denx.de>; Marek Vasut
> <marex at denx.de>; Tan, Ley Foon <ley.foon.tan at intel.com>; See, Chin Liang
> <chin.liang.see at intel.com>; Simon Goldschmidt
> <simon.k.r.goldschmidt at gmail.com>; Chee, Tien Fong
> <tien.fong.chee at intel.com>; Westergreen, Dalon
> <dalon.westergreen at intel.com>; Gan, Yau Wai <yau.wai.gan at 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 at 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 at 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


More information about the U-Boot mailing list