blob: 798374944d0971647580d7528fe6a6c78f059713 [file] [log] [blame]
Sandrine Bailleuxa6a1dcb2022-11-08 13:36:42 +01001Platform Ports Policy
2=====================
Soby Mathew6e93eef2018-09-26 11:17:23 +01003
Sandrine Bailleuxa6a1dcb2022-11-08 13:36:42 +01004This document clarifies a couple of policy points around platform ports
5management.
Soby Mathew6e93eef2018-09-26 11:17:23 +01006
7Platform compatibility policy
8-----------------------------
9
10Platform compatibility is mainly affected by changes to Platform APIs (as
Paul Beesley34760952019-04-12 14:19:42 +010011documented in the :ref:`Porting Guide`), driver APIs (like the GICv3 drivers) or
Soby Mathew6e93eef2018-09-26 11:17:23 +010012library interfaces (like xlat_table library). The project will try to maintain
13compatibility for upstream platforms. Due to evolving requirements and
14enhancements, there might be changes affecting platform compatibility which
15means the previous interface needs to be deprecated and a new interface
16introduced to replace it. In case the migration to the new interface is trivial,
17the contributor of the change is expected to make good effort to migrate the
18upstream platforms to the new interface.
19
Paul Beesley34760952019-04-12 14:19:42 +010020The deprecated interfaces are listed inside :ref:`Release Processes` as well as
John Tsichritzisd012c012019-07-05 14:14:40 +010021the release after which each one will be removed. When an interface is
22deprecated, the page must be updated to indicate the release after which the
23interface will be removed. This must be at least 1 full release cycle in future.
24For non-trivial interface changes, an email should be sent out to the `TF-A
25public mailing list`_ to notify platforms that they should migrate away from the
26deprecated interfaces. Platforms are expected to migrate before the removal of
27the deprecated interface.
Soby Mathew6e93eef2018-09-26 11:17:23 +010028
Sandrine Bailleuxa6a1dcb2022-11-08 13:36:42 +010029Platform deprecation policy
30---------------------------
31
32If a platform is no longer maintained, it is best to deprecate it to keep the
33projects' source tree clean and healthy. Deprecation can be a 1-stage or 2-stage
34process (up to the platform maintainers).
35
36 - *2-stage*: The platform's source code can be kept in the repository for a
37 cooling off period before deleting it (typically 2 release cycles). In this
38 case, we keep track ot the *Deprecated* version separately from the *Deleted*
39 version.
40
41 - *1-stage*: The platform's source code can be deleted straight away. In this
42 case, both versions are the same.
43
44The :ref:`Platform Ports` page provides a list of all deprecated/deleted
45platform ports (or soon to be) to this day.
46
Soby Mathew6e93eef2018-09-26 11:17:23 +010047--------------
48
Sandrine Bailleuxf4a55e62022-04-21 10:17:22 +020049*Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.*
Soby Mathew6e93eef2018-09-26 11:17:23 +010050
Sandrine Bailleuxf4a55e62022-04-21 10:17:22 +020051.. _TF-A public mailing list: https://lists.trustedfirmware.org/mailman3/lists/tf-a.lists.trustedfirmware.org/