Git Product home page Git Product logo

uefi-simple's Introduction

UEFI:SIMPLE - EFI development made easy

A simple UEFI "Hello World!" style application that can:

  • be compiled on Windows or Linux, using Visual Studio 2019, MinGW or gcc.
  • be compiled for x86_32, x86_64, ARM or ARM64/AARCH64 targets
  • be tested on the fly, through a QEMU + OVMF or QEMU_EFI virtual machine.

Prerequisites

  • Visual Studio 2019 or gcc/make
  • QEMU v2.7 or later (NB: You can find QEMU Windows binaries here)
  • git
  • wget, unzip, if not using Visual Studio

Sub-Module initialization

For convenience, the project relies on the gnu-efi library, so you need to initialize the git submodule either through git commandline with:

git submodule init
git submodule update

Or, if using a UI client (such as TortoiseGit) by selecting Submodule Update in the context menu.

Compilation and testing

If using Visual Studio, just press F5 to have the application compiled and launched in the QEMU emulator.

If using MinGW or Linux, issue the following from a command prompt:

make

If needed you can also add ARCH=<arch> and CROSS_COMPILE=<tuple>, e.g.:

  • make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
  • make ARCH=aa64 CROSS_COMPILE=aarch64-linux-gnu-

where <arch> can be x64, ia32, arm or aa64.

You can also add qemu as your make target to run the application under QEMU, in which case a relevant UEFI firmware (OVMF for x86 or QEMU_EFI for Arm) will be automatically downloaded to run your application against it.

Visual Studio 2019 and ARM/ARM64 support

Please be mindful that, to enable ARM or ARM64 compilation support in Visual Studio 2019, you MUST go to the Individual components screen in the setup application and select the ARM/ARM64 build tools there, as they do NOT appear in the default Workloads screen:

VS2019 Individual Components

uefi-simple's People

Contributors

pbatard avatar schierlm avatar utshina avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.