Hi All,
This request was made at the end of last year, so I’ll take the opportunity to refresh the request, and to loop in some folks that were missing from the original mail.
Could we please get the following 2 staging branches?
1. edk2-staging
Branch Name: firmwarehandoff
2. edk2-platforms
Branch Name: devel-firmwarehandoff
Please let us know if we should provide more details/motivation 😊.
Kind Regards,
Jose
From: Prachotan Bathi <Prachotan.Bathi@arm.com>
Sent: 02 December 2024 20:02
To: devel@edk2.groups.io
Cc: Sami Mujawar <Sami.Mujawar@arm.com>; Jose Marinho <Jose.Marinho@arm.com>
Subject: [staging/firmwarehandoff PATCH v1 1/1] Branch to implement and migrate to Firmware Handoff for ARM Platforms
This branch introduces a new staging branch for Firmware Handoff
specification to:
- Implement the specification and introduce TransferList support for
ARM platforms in edk2.
- Migrate existing hand-off procedures to now use the standardized
TransferList.
More description in the readme.
Please create the following branches:
1. edk2-staging repo
Branch Name: firmwarehandoff
2. edk2-platforms repo
Branch Name: devel-firmwarehandoff
Signed-off-by: Prachotan Bathi <prachotan.bathi@arm.com>
---
readme.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
create mode 100644 readme.md
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000000..9165d19319
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,47 @@
+# Firmware Handoff
+
+## Introduction
+
+The [Firmware Handoff Specification](https://firmwarehandoff.github.io/firmware_handoff/) defines a data structure (Transfer List)
which facilitates handing off information between different firmware stages involved in platform initialization.
+
+The Firmware Handoff Specification is defined for ARM architecture (both AArch32 and AArch64) and is currently implemented in [ARM-Trusted Firmware](https://trustedfirmware-a.readthedocs.io/en/latest/getting_started/build-options.html#:~:text=)%20by%20default.-,TRANSFER_LIST,-%3A%20Setting%20this%20to)
. This branch will be used to:
+
+- Implement the specification and introduce TransferList support for ARM platforms in edk2.
+- Migrate existing hand-off procedures to now use the standardized TransferList
+
+## Goals
+
+- Streamline adoption by ARM platforms
+- Minimize impact of migration and enable backward compatibility where possible
+- Reuse common code and a standardized library
+
+## Key Features
+
+1. Standardized Information Passing:
+ - Establishes a well-defined and scalable data structure (a TransferList (TL) containing TransferList Entries (TEs))
+ - Allows information to be propagated and accumulated as the system boots
+2. Register Usage Standardization:
+ - Defines the usage of scratch registers (e.g., x0-x3) at handoff boundaries
+ - Ensures consistency across different firmware implementations
+
+## Benefits
+
+By implementing this specification, we aim to:
+
+1. Improve interoperability between different boot stages and firmware implementations
+2. Simplify the process of passing critical system information during boot
+3. Provide a flexible framework that can accommodate future extensions and requirement.
+
+# Guidelines for submitting patches
+
+1. Follow the standard edk2 coding guidelines for preparing patches. <BR>
+ The edk2-staging guidelines can be found at
+
+2. To submit a patch for edk2-staging repo include the branch name in
+ the subject line of the commit message. <BR>
+ e.g. **[staging/firmwarehandoff PATCH v<*n*> <x/y>]: Package/Module: Subject**
+
+3. To submit a patch for edk2-platforms staging repo include the branch
+ name in the subject line of the commit message. <BR>
+ e.g. **[platforms/devel-firmwarehandoff PATCH v<*n*> <x/y>]: Package/Module: Subject**
\ No newline at end of file
--
2.34.1