[Draft proposal, subject to discussions]
Source hierarchy:
arch/ -- [Note: at this stage no hierarchical distinction required between various cortex-m architectures, arch version specifics to be be managed by #defines.
plat/include/ -- contains API prototypes that platform must implement. more details in another ticket.
Abstract assembly instructions to -
arch/interrupt.S (architecture specific assembly code for interrupt handling)
arch/include/*.h -- exports architecture specific implementations through uniform interface definition.
arch/svc.S (arch specific svc handling)
arch/mpu.c (weak functions that implement Arm MPUs, can be overridden by platform)
arch/tz.c/s - weak binding to veneer functions (only for v8m) that can be overridden by platform implementation.