LinuxBoot is a firmware that replaces specific firmware functionality
like the UEFI DXE phase with a Linux kernel and runtime. At the end of
the DXE phase, UEFI will hand over the control to the LinuxBoot kernel.

This package contains the LinuxBoot binary (flashkernel) which is built
and added manually by following the instructions in the Readme.md
("Platform/Ampere/LinuxBootPkg/AArch64/Readme.md").

Cc: Thang Nguyen <th...@os.amperecomputing.com>
Cc: Chuong Tran <chu...@os.amperecomputing.com>
Cc: Phong Vo <ph...@os.amperecomputing.com>
Cc: Leif Lindholm <l...@nuviainc.com>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Nate DeSimone <nathaniel.l.desim...@intel.com>

Signed-off-by: Nhi Pham <n...@os.amperecomputing.com>
---
 Platform/Ampere/LinuxBootPkg/LinuxBoot.inf     | 17 ++++++++++++
 Platform/Ampere/LinuxBootPkg/AArch64/Readme.md | 29 ++++++++++++++++++++
 2 files changed, 46 insertions(+)

diff --git a/Platform/Ampere/LinuxBootPkg/LinuxBoot.inf 
b/Platform/Ampere/LinuxBootPkg/LinuxBoot.inf
new file mode 100644
index 000000000000..5e8f6f83dfb2
--- /dev/null
+++ b/Platform/Ampere/LinuxBootPkg/LinuxBoot.inf
@@ -0,0 +1,17 @@
+## @file
+#
+# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+  INF_VERSION                   = 0x0001001B
+  BASE_NAME                     = LinuxBoot
+  FILE_GUID                     = D834A5AD-459C-4AED-B0D0-8CBCB28838D7
+  MODULE_TYPE                   = UEFI_APPLICATION
+  VERSION_STRING                = 1.0
+
+[Binaries.AArch64]
+  PE32|AArch64/flashkernel|*
diff --git a/Platform/Ampere/LinuxBootPkg/AArch64/Readme.md 
b/Platform/Ampere/LinuxBootPkg/AArch64/Readme.md
new file mode 100644
index 000000000000..92c6c3165eac
--- /dev/null
+++ b/Platform/Ampere/LinuxBootPkg/AArch64/Readme.md
@@ -0,0 +1,29 @@
+# flashkernel
+
+The LinuxBoot image, named flashkernel, is required to build the final EDK2 
image with LinuxBoot support.
+The flashkernel image consists of [Linux](https://kernel.org) kernel and 
initramfs generated using [u-root](https://github.com/u-root/u-root).
+
+## Overview
+
+LinuxBoot is a firmware that replaces specific firmware functionality
+like the UEFI DXE phase with a Linux kernel and runtime. It is built-in
+UEFI image like an application as it will be executed at the end of DXE phase.
+
+The flashkernel is built completely from the 
[linuxboot/mainboards](https://github.com/linuxboot/mainboards) repository.
+
+## How to build
+
+1. Clone the `linuxboot/mainboards` repository:
+
+    ```Bash
+    git clone https://github.com/linuxboot/mainboards.git
+    ```
+
+2. Build with the following command:
+
+    ```Bash
+    cd ampere/jade
+    make fetch flashkernel
+    ```
+
+Once the build is done, copy the flashkernel into the edk2-platform under the 
`Platform/Ampere/LinuxBootPkg/AArch64` directory.
-- 
2.17.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#75640): https://edk2.groups.io/g/devel/message/75640
Mute This Topic: https://groups.io/mt/83097180/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to