Build: define IMAGE_AT_EL1 or IMAGE_AT_EL3 globally for C files

The build system defines the IMAGE_BL* macro when compiling each image.
This is useful to distinguish which image the current file is being
built for by using #if defined(IMAGE_BL2) or #if defined(IMAGE_BL31),
or whatever.

There are some cases where we are more interested in which exception
level the current file is being built for.

include/lib/cpus/{aarch32,aarch64}/cpu_macros.S defines IMAGE_AT_EL3,
but we do not have it globally.

Pass IMAGE_AT_EL1 or IMAGE_AT_EL3 to BL*_CFLAGS so that it is available
from all C code.

The library code (libc.a, libmbedtls.a, etc.) is exceptional cases,
where the code can be shared between BL images.

Other than that, we know the exception level at the build time, and
this macro will be useful in the shared code.

Change-Id: I7c8a1da10726906adfba981cfe8464dff111d6b0
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
Masahiro Yamada 2020-03-26 13:18:48 +09:00
parent 21e22c74cd
commit d5e97a1d2c
1 changed files with 12 additions and 0 deletions

View File

@ -508,6 +508,18 @@ ifeq ($(ARCH),aarch64)
endif
endif
ifeq (${ARCH},aarch64)
BL1_CFLAGS += -DIMAGE_AT_EL3
ifeq ($(BL2_AT_EL3),1)
BL2_CFLAGS += -DIMAGE_AT_EL3
else
BL2_CFLAGS += -DIMAGE_AT_EL1
endif
BL2U_CFLAGS += -DIMAGE_AT_EL1
BL31_CFLAGS += -DIMAGE_AT_EL3
BL32_CFLAGS += -DIMAGE_AT_EL1
endif
# Include the CPU specific operations makefile, which provides default
# values for all CPU errata workarounds and CPU specific optimisations.
# This can be overridden by the platform.