diff --git a/Makefile b/Makefile index bdc317b19..105233b62 100644 --- a/Makefile +++ b/Makefile @@ -166,6 +166,14 @@ TF_CFLAGS_aarch64 = -march=armv8-a LD = $(LINKER) endif +ifeq (${AARCH32_INSTRUCTION_SET},A32) +TF_CFLAGS_aarch32 += -marm +else ifeq (${AARCH32_INSTRUCTION_SET},T32) +TF_CFLAGS_aarch32 += -mthumb +else +$(error Error: Unknown AArch32 instruction set ${AARCH32_INSTRUCTION_SET}) +endif + TF_CFLAGS_aarch32 += -mno-unaligned-access TF_CFLAGS_aarch64 += -mgeneral-regs-only -mstrict-align diff --git a/docs/user-guide.rst b/docs/user-guide.rst index 3f8170fd0..b8baf4711 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -75,7 +75,7 @@ In addition, the following optional packages and tools may be needed: - To create and modify the diagram files included in the documentation, `Dia`_. This tool can be found in most Linux distributions. Inkscape is needed to - generate the actual *.png files. + generate the actual \*.png files. Getting the TF-A source code ---------------------------- @@ -212,6 +212,10 @@ performed. Common build options ^^^^^^^^^^^^^^^^^^^^ +- ``AARCH32_INSTRUCTION_SET``: Choose the AArch32 instruction set that the + compiler should use. Valid values are T32 and A32. It defaults to T32 due to + code having a smaller resulting size. + - ``AARCH32_SP`` : Choose the AArch32 Secure Payload component to be built as as the BL32 image when ``ARCH=aarch32``. The value should be the path to the directory containing the SP source, relative to the ``bl32/``; the directory diff --git a/make_helpers/defaults.mk b/make_helpers/defaults.mk index 49f403d2e..908da2216 100644 --- a/make_helpers/defaults.mk +++ b/make_helpers/defaults.mk @@ -10,6 +10,9 @@ # poised to handle dependencies, as all build variables would have a default # value by then. +# Use T32 by default +AARCH32_INSTRUCTION_SET := T32 + # The AArch32 Secure Payload to be built as BL32 image AARCH32_SP := none