Sandrine Bailleux | dad3561 | 2022-11-08 13:36:42 +0100 | [diff] [blame] | 1 | Platform Ports Policy |
| 2 | ===================== |
Soby Mathew | 02bdbb9 | 2018-09-26 11:17:23 +0100 | [diff] [blame] | 3 | |
Sandrine Bailleux | dad3561 | 2022-11-08 13:36:42 +0100 | [diff] [blame] | 4 | This document clarifies a couple of policy points around platform ports |
| 5 | management. |
Soby Mathew | 02bdbb9 | 2018-09-26 11:17:23 +0100 | [diff] [blame] | 6 | |
| 7 | Platform compatibility policy |
| 8 | ----------------------------- |
| 9 | |
| 10 | Platform compatibility is mainly affected by changes to Platform APIs (as |
Paul Beesley | f864067 | 2019-04-12 14:19:42 +0100 | [diff] [blame] | 11 | documented in the :ref:`Porting Guide`), driver APIs (like the GICv3 drivers) or |
Soby Mathew | 02bdbb9 | 2018-09-26 11:17:23 +0100 | [diff] [blame] | 12 | library interfaces (like xlat_table library). The project will try to maintain |
| 13 | compatibility for upstream platforms. Due to evolving requirements and |
| 14 | enhancements, there might be changes affecting platform compatibility which |
| 15 | means the previous interface needs to be deprecated and a new interface |
| 16 | introduced to replace it. In case the migration to the new interface is trivial, |
| 17 | the contributor of the change is expected to make good effort to migrate the |
| 18 | upstream platforms to the new interface. |
| 19 | |
Paul Beesley | f864067 | 2019-04-12 14:19:42 +0100 | [diff] [blame] | 20 | The deprecated interfaces are listed inside :ref:`Release Processes` as well as |
John Tsichritzis | 4730c11 | 2019-07-05 14:14:40 +0100 | [diff] [blame] | 21 | the release after which each one will be removed. When an interface is |
| 22 | deprecated, the page must be updated to indicate the release after which the |
| 23 | interface will be removed. This must be at least 1 full release cycle in future. |
| 24 | For non-trivial interface changes, an email should be sent out to the `TF-A |
| 25 | public mailing list`_ to notify platforms that they should migrate away from the |
| 26 | deprecated interfaces. Platforms are expected to migrate before the removal of |
| 27 | the deprecated interface. |
Soby Mathew | 02bdbb9 | 2018-09-26 11:17:23 +0100 | [diff] [blame] | 28 | |
Sandrine Bailleux | dad3561 | 2022-11-08 13:36:42 +0100 | [diff] [blame] | 29 | Platform deprecation policy |
| 30 | --------------------------- |
| 31 | |
| 32 | If a platform is no longer maintained, it is best to deprecate it to keep the |
| 33 | projects' source tree clean and healthy. Deprecation can be a 1-stage or 2-stage |
| 34 | process (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 | |
| 44 | The :ref:`Platform Ports` page provides a list of all deprecated/deleted |
| 45 | platform ports (or soon to be) to this day. |
| 46 | |
Soby Mathew | 02bdbb9 | 2018-09-26 11:17:23 +0100 | [diff] [blame] | 47 | -------------- |
| 48 | |
Sandrine Bailleux | 1a4efb1 | 2022-04-21 10:17:22 +0200 | [diff] [blame] | 49 | *Copyright (c) 2018-2022, Arm Limited and Contributors. All rights reserved.* |
Soby Mathew | 02bdbb9 | 2018-09-26 11:17:23 +0100 | [diff] [blame] | 50 | |
Sandrine Bailleux | 1a4efb1 | 2022-04-21 10:17:22 +0200 | [diff] [blame] | 51 | .. _TF-A public mailing list: https://lists.trustedfirmware.org/mailman3/lists/tf-a.lists.trustedfirmware.org/ |