EBC FAQ - lzeng14/tianocore GitHub Wiki

Table of Contents

Frequently asked questions about EDK and EBC

What is EBC?

EFI Byte Code (EBC) compiles UEFI driver C source code into an architecture-independent interpretive language instead of a native processor architecture (e.g. IA32, x64 or IPF).

Can you write a shell app in EBC?

Yes, it is possible. There are no known technical issues with using EBC for Shell Applications or UEFI Applications, but there be validation issues.

The UEFI Specification version 2.3, Section 2.6.2, item (19), states that the EBC interpreter is only required if a platform intends to support EBC drivers in containers for add in devices. This means that the EBC interpreter is optional and may not be available on all platforms. As a result, a Shell Application or UEFI Application that is compiled for EBC may not be able to run on all platforms.

Add-in cards need to support legacy images as well as EBC. Are there any conversion tools?

There are no tools to help convert a Legacy Option ROM sources or binaries to a UEFI complaint driver. Once a UEFI complaint driver is designed and implemented, it may be cross compiled to EBC. There are some compatibility issues that the UEFI driver writer must be aware of in order to implement a UEFI driver is C that is compatible with native mode compilers as well as the EBC compiler. Chapter 19 of the EFI Driver Writers Guide at UEFI Driver Writer's Guide describes porting considerations when using the EBC compiler.

⚠️ **GitHub.com Fallback** ⚠️