From c2ad38ce4fe754c750f3db480f732ac280f508e4 Mon Sep 17 00:00:00 2001 From: Varun Wadekar Date: Fri, 11 Jan 2019 14:47:48 -0800 Subject: Tegra: Support for scatterfile for the BL31 image This patch provides support for using the scatterfile format as the linker script with the 'armlink' linker for Tegra platforms. In order to enable the scatterfile usage the following changes have been made: * provide mapping for ld.S symbols in bl_common.h * include bl_common.h from all the affected files * update the makefile rules to use the scatterfile and armlink to compile BL31 * update pubsub.h to add sections to the scatterfile NOTE: THIS CHANGE HAS BEEN VERIFIED WITH TEGRA PLATFORMS ONLY. Change-Id: I7bb78b991c97d74a842e5635c74cb0b18e0fce67 Signed-off-by: Varun Wadekar --- docs/plat/nvidia-tegra.rst | 10 ++++++++++ docs/user-guide.rst | 6 ++++++ 2 files changed, 16 insertions(+) (limited to 'docs') diff --git a/docs/plat/nvidia-tegra.rst b/docs/plat/nvidia-tegra.rst index 7ed0f2c82..6a03b1283 100644 --- a/docs/plat/nvidia-tegra.rst +++ b/docs/plat/nvidia-tegra.rst @@ -82,6 +82,16 @@ Tegra132: TLK Tegra210: TLK and Trusty Tegra186: Trusty +Scatter files +============= + +Tegra platforms currently support scatter files and ld.S scripts. The scatter +files help support ARMLINK linker to generate BL31 binaries. For now, there +exists a common scatter file, plat/nvidia/tegra/scat/bl31.scat, for all Tegra +SoCs. The `LINKER` build variable needs to point to the ARMLINK binary for +the scatter file to be used. Tegra platforms have verified BL31 image generation +with ARMCLANG (compilation) and ARMLINK (linking) for the Tegra186 platforms. + Preparing the BL31 image to run on Tegra SoCs ============================================= diff --git a/docs/user-guide.rst b/docs/user-guide.rst index 4ff1c7270..03cce7d1a 100644 --- a/docs/user-guide.rst +++ b/docs/user-guide.rst @@ -716,6 +716,12 @@ Common build options Note: when ``EL3_EXCEPTION_HANDLING`` is ``1``, ``TSP_NS_INTR_ASYNC_PREEMPT`` must also be set to ``1``. +- ``USE_ARM_LINK``: This flag determines whether to enable support for ARM + linker. When the ``LINKER`` build variable points to the armlink linker, + this flag is enabled automatically. To enable support for armlink, platforms + will have to provide a scatter file for the BL image. Currently, Tegra + platforms use the armlink support to compile BL3-1 images. + - ``USE_COHERENT_MEM``: This flag determines whether to include the coherent memory region in the BL memory map or not (see "Use of Coherent memory in TF-A" section in `Firmware Design`_). It can take the value 1 -- cgit v1.2.3