3.6.6 Generation of secure gateway veneers

armlink can generate secure gateway veneers for symbols that are present in a Secure image. It can also output symbols to a specified output import library, when necessary.

armlink generates a secure gateway veneer when it finds in the Secure image an entry function that has both symbols __acle_se_<entry> and <entry> pointing to the same offset in the same section.

The secure gateway veneer is a sequence of two instructions:

<entry>:
        SG
        B.W __acle_se_<entry>

The original symbol <entry> is changed to point to the SG instruction of the secure gateway veneer.

You can specify an input import library and output import library with the following command-line options:

Placement of secure gateway veneers is controlled by an input import library and by a scatter file selection. The linker can also output addresses of secure gateways to an output import library.

Example

The following example shows the generation of a secure gateway veneer:

Input code:

        .text
entry:
__acle_se_entry:
        [entry's code]
        BXNS lr

Output code produced by armlink:

        .text
__acle_se_entry:
        [entry's code]
        BXNS lr

        .section Veneer$$CMSE, "ax"
entry:
        SG
        B.W __acle_se_entry
Non-ConfidentialPDF file icon PDF versionDUI0803J
Copyright © 2014–2017, 2019 Arm Limited or its affiliates. All rights reserved.