uefi porting update for arm platformsorganization for gsoc one of the three projects we have had...

21
presented by UEFI Plugfest May 2014 UEFI Porting Update for ARM Platforms What did we do since July? Leif Lindholm UEFI tech lead Linaro Enterprise Group

Upload: others

Post on 27-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

presented by

UEFI Plugfest – May 2014

UEFI Porting

Update for ARM

Platforms

What did we do since July?

Leif LindholmUEFI tech lead

Linaro Enterprise Group

Page 2: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Agenda

Introduction

Linux Support

EDK2 Development

SCT

Platforms Tree

Future Work

2The UEFI Forum www.uefi.org

Page 3: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Introduction

Last year, Grant Likely presented an overview of the types of

things we were planning to do.

Since then, we have done various things...

3The UEFI Forum www.uefi.org

Page 4: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Linux Support

4The UEFI Forum www.uefi.org

Page 5: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Linux Support

The big topic since the last Linaro Connect event has been

Linux support:

Runtime Services

UEFI stub loader

Co-existence of ACPI/FDT

5The UEFI Forum www.uefi.org

Page 6: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Runtime Services

Runtime services support for both 32-bit and 64-bit ARMNot yet upstream, but aiming for Linux kernel v3.16

This included reworking of common code, since some functionality was

already duplicated between x86/ia64

Main purpose is enabling GetVariable()/SetVariable()

Enables bootloader installer to add boot entries, and update bootorder,

from within Linux

6The UEFI Forum www.uefi.org

Page 7: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Linux UEFI stub loader

The “stub loader” is the mechanism by which the Linux kernel

can be loaded directly from UEFI, as a UEFI application

Becoming the default mechanism on x86(/x64) platforms.

Enables the use of more light-weight bootloaders, like gummiboot or rEFInd

Not yet upstream, but aiming for 3.16

Majority of code shared between arm/arm64, and a fair bit shared with x86

7The UEFI Forum www.uefi.org

Page 8: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

ACPI vs. FDT

A slightly contentious issue with existing ARM Linux developers

… who just spent a couple of years converting everything to FDT

Very much a non-issue for UEFI

We picked a GUID to use for FDT, and just treat it as any other

configuration table

While simultaneously re-using FDT for the loader/kernel interface

Regardless of other hardware description, we use the UEFI memory map

to discover available RAM

8The UEFI Forum www.uefi.org

Page 9: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

We had help!

Many thanks to Mark Salter (Red Hat) and Matt Fleming (Intel)

Mark helped parallelize our effort by doing 64-bit port while we worked

on 32-bit, and also did some reworking on core memory-management

code to have less architecture-specific code in the UEFI subsystem.

Matt has been a friendly upstream, holding back invasive changes to

core code waiting for our bits to go in. And keeping us involved and

informed.

9The UEFI Forum www.uefi.org

Page 10: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

EDK2 Development

10The UEFI Forum www.uefi.org

Page 11: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

EDK2 development

The EDK2 development done in Linaro so far has mainly been

platform support

Keeping platforms in tree up-to-date with upstream changes

“plumbing” for Linux support

SMBIOS, FDT configuration table support

bugfixes (and reporting) for issues found while developing other code

Linux, GRUB

But…

We also have a port to a dynamic QEMU/AArch64 platform (EL1) underway.

11The UEFI Forum www.uefi.org

Page 12: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Google Summer of Code

This year, Linaro has been accepted as a mentoring

organization for GSoC

One of the three projects we have had approved is “Porting

UEFI to a low-cost embedded platform”We have opted for Texas Instruments’ BeagleBone Black,

which is a $45 Cortex-A8 based board.

12The UEFI Forum www.uefi.org

Page 13: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

SCT

13The UEFI Forum www.uefi.org

Page 14: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

SCT

To be honest, we have just brought the github SCT into our

non-public tree…

14The UEFI Forum www.uefi.org

Page 15: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

The Platforms Tree

15The UEFI Forum www.uefi.org

Page 16: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Linaro EDK2 builds

Linaro produces monthly builds of EDK2Augmented with platform support and not yet upstream patches

Initially this was done in a fairly monolithic fashionSingle git repository, with a bunch of topic branches

We have now set up a new platforms treeTo facilitate distributed development with multiple contributors and multiple

maintainers

16The UEFI Forum www.uefi.org

Page 17: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Linaro EDK2 tree

A clone of the github mirror

We pick a commit as our starting point for that month’s releaseThen we add platform and feature topic branches and create a tagged

release, as well as upload pre-built images to releases.linaro.org

Hosted on git.linaro.orghttps://git.linaro.org/uefi/linaro-edk2.git

We would love to have more (maintained) platform ports

17The UEFI Forum www.uefi.org

Page 18: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Future Work

18The UEFI Forum www.uefi.org

Page 19: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Future Work

Several new UEFI-based ARM platforms coming this year

Need to integrate member (and other) platforms into our tree

Look into platform requirements for secure key management on

ARM

Get rid of the ARM built-in Linux loader

Plumbing to simplify integrating FDT in firmware

Port to AArch64/Xen

19The UEFI Forum www.uefi.org

Page 20: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

Wish List

The resurrection of a common Bds under MdeModulePkg

CSM is dead, long live UEFI?

More common drivers

This is where we are currently losing platforms to U-Boot

More common helper protocols

libfdt, SMBIOS, IPMI, …?

20The UEFI Forum www.uefi.org

Page 21: UEFI Porting Update for ARM Platformsorganization for GSoC One of the three projects we have had approved is “Porting UEFI to a low-cost embedded platform” We have opted for Texas

For more information on the Unified EFI Forum and UEFI Specifications, visit http://www.uefi.org

presented by

Leif Lindholm

UEFI Tech Lead

Linaro Enterprise Group

21The UEFI Forum www.uefi.org