I have a related question. The EFI stub documentation (see [1]), seems to 
suggest that
we have the support to boot the kernel Image, DTB and Rootfs when supplied as 
separate images to the EFI stub.

However, other Bootloaders like u-boot are supporting newer FIT image format 
(see [2]), where
these 3 images can be bundled into one and passed to the bootloader for 
verification (both
crc as well as cryptographic checks) and loading. This is supported on both x86 
and ARM platforms.

At Freescale, we have a internal re-worked version of the ARM Bds Linux Loader, 
where we can parse a FIT format
Linux image and load Linux using the same on ARM64 platforms.

With the EFI_STUB becoming more or less mandatory and the leagacy ARM Bds Linux 
Loader being deprecated,
are there any plans to provide means to pass FIT format images via EFI_STUB to 
the ARM64 Linux kernel?

[1] https://www.kernel.org/doc/Documentation/efi-stub.txt

[2] 
http://git.denx.de/?p=u-boot.git;a=blob_plain;f=doc/uImage.FIT/kernel.its;hb=HEAD

Regards,
Bhupesh


> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Ard
> Biesheuvel
> Sent: Tuesday, August 04, 2015 1:27 PM
> To: edk2-devel@lists.01.org; leif.lindh...@linaro.org; ler...@redhat.com
> Cc: ryan.har...@linaro.org; Ard Biesheuvel
> Subject: [edk2] [PATCH] ArmVirtPkg: align ARM BDS build with LinuxLoader
> changes
> 
> LinuxLoader has been split off from the ARM BDS into a separate EFI
> application. Because we never included this application into the
> ArmVirtPkg platforms, its ARM BDS builds have effectively been broken ever
> since that change was merged.
> 
> Let's fix the situation by:
> - Disabling LinuxLoader support for AARCH64 builds: arm64 Linux kernels
>   have UEFI stub support enabled by default, and the LinuxLoader code for
>   booting arm64 Linux kernels is buggy. Note that this does not disable
>   the ARM BDS text menu, it just removes the ability to boot bare Linux
>   kernels.
> - Adding the LinuxLoader EFI application to the ARM builds.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
> ---
>  ArmVirtPkg/ArmVirt.dsc.inc | 9 ++++++---  ArmVirtPkg/ArmVirtQemu.dsc | 5
> +++++  ArmVirtPkg/ArmVirtQemu.fdf | 3 +++
>  3 files changed, 14 insertions(+), 3 deletions(-)
> 
> diff --git a/ArmVirtPkg/ArmVirt.dsc.inc b/ArmVirtPkg/ArmVirt.dsc.inc index
> 2e2708d1c281..735f9edc58d6 100644
> --- a/ArmVirtPkg/ArmVirt.dsc.inc
> +++ b/ArmVirtPkg/ArmVirt.dsc.inc
> @@ -206,6 +206,9 @@ [LibraryClasses.common.UEFI_APPLICATION]
> 
> PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.in
> f
> 
> MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAlloc
> ationLib.inf
>    HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
> +  ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
> +  FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
> +  SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
> 
>  [LibraryClasses.common.UEFI_DRIVER]
> 
> ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLib
> Framework/DxeReportStatusCodeLib.inf
> @@ -277,6 +280,9 @@ [PcdsFeatureFlag.common]
> 
>    gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
> 
> +[PcdsFeatureFlag.AARCH64]
> +  gArmPlatformTokenSpaceGuid.PcdBdsLinuxSupport|FALSE
> +
>  [PcdsFixedAtBuild.common]
>    gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Virtualization
> Platform"
> 
> @@ -398,9 +404,6 @@ [Components.common]
> 
> NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1Comman
> dsLib.inf
> 
> NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1Comman
> dsLib.inf
> 
> HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLi
> b.inf
> -      ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
> -
> FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
> -      SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
>        PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
> 
> BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgComma
> ndLib.inf
> 
> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc index
> a2a82a4dba8c..92d55c770f55 100644
> --- a/ArmVirtPkg/ArmVirtQemu.dsc
> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
> @@ -381,3 +381,8 @@ [Components.common]
>    MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
>    MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
>    MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
> +
> +[Components.ARM]
> +!if $(INTEL_BDS) == FALSE
> +  ArmPkg/Application/LinuxLoader/LinuxLoader.inf
> +!endif
> diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf index
> 3c0487cd95b6..47f9b095b3af 100644
> --- a/ArmVirtPkg/ArmVirtQemu.fdf
> +++ b/ArmVirtPkg/ArmVirtQemu.fdf
> @@ -177,6 +177,9 @@ [FV.FvMain]
>    INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
>  !else
>    INF ArmPlatformPkg/Bds/Bds.inf
> +!if $(ARCH) == ARM
> +  INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
> +!endif
>  !endif
> 
>    #
> --
> 1.9.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to