1# Architecture Support 2 3## Overview 4 5Architectural configuration comes under the `arch` directory. This area provides 6not only instructions for building the architecture library, but for configuring 7any architecture-dependent behaviour required by the framework. 8 9## Structure 10 11The structure of this directory is like so: 12 13 . 14 |-- <vendor> 15 | |-- <architecture> 16 | | |-- arch.mk 17 | | |-- include 18 | | | `-- arch_*.h 19 | | `-- src 20 | | |-- arch.ld.S 21 | | |-- arch.scatter.S 22 | | |-- arch_*.S 23 | | |-- arch_*.c 24 | |-- include 25 | | `-- arch_*.h 26 | |-- src 27 | | `-- arch_*.c 28 | `-- vendor.mk 29 30### Vendors and architectures 31 32The _vendor_ refers to the umbrella architecture group. For Arm-based 33architectures this is "arm". 34 35The _architecture_ refers to the instruction set architecture of the target 36platform. 37 38### Build system integration 39 40`vendor.mk` is included by the build system when building the architecture 41library, and also when building the firmware. This allows you to configure 42sources to compile in the architecture library, and library dependencies 43(if any) when linking the final firmware binary. 44 45`arch.ld.S` and `arch.scatter.S` also provide the linker scripts for the final 46firmware. They are automatically used by the build system if not targeting the 47*none* vendor (which one is chosen is based on the linker in use). 48