blob: 8c5b400cbb7765b512a54bdbeed052b8f07e25c9 [file] [log] [blame]
Gyorgy Szingdb9783c2019-04-17 21:08:48 +02001#########################################################
2Generic OS migration from Armv7-M to Armv8-M architecture
3#########################################################
4The purpose of this document is to list a set of requirements needed for
5migrating a generic OS kernel running on Armv7-M to the Armv8-M architecture.
6
7********************
8List of requirements
9********************
10- If the same OS codebase is used for both Secure and Non Secure builds, it is
11 suggested to put specific code targeted to the Non Secure build under a
12 compile time switch, e.g. ``#if (DOMAIN_NS == 1U)``. The OS build system in
13 this case needs to be amended accordingly to support this new switch.
14- If the OS implements stack limit checking, the ``PSPLIM`` register
15 needs to be initialized and properly handled during thread context switch
16 operations.
17- If the OS manipulates directly the Link Register, the default Link Register
18 value used in Handler mode transitions needs to be differentiated between
19 Secure and Non Secure builds, i.e. ``0xFD`` and ``0xBC``, respectively.
Anton Komlev0dbe8f12022-06-17 16:48:12 +010020- If the OS manages the non-secure client identification, please check the
Anton Komlev3356ba32022-03-31 22:02:11 +010021 :doc:`Non-secure Client Extension Integration Guide </integration_guide/non-secure_client_extension_integration_guide>`.
Gyorgy Szingdb9783c2019-04-17 21:08:48 +020022
23--------------
24
Summer Qinabf66982021-04-06 17:22:15 +080025*Copyright (c) 2018-2021, Arm Limited. All rights reserved.*