Acidanthera variant of DuetPkg. Specialties:
- Significantly improved boot performance.
- BDS is simplified to load
EFI/OC/OpenCore.efi
. - EDID support removed for performance and compatibility.
- PCI option ROM support removed for security and performance.
- Setup and graphical interface removed.
- Resolved PCIe device path instead of PCI.
- Increased variable storage size to 64 KB.
- Always loads from bootstrapped volume first.
- Some changes inherited from Clover EFI bootloader.
boot0
is loaded by BIOS from MBR at7C00h
.boot0
finds active MBR or ESP GPT partition.boot0
loadsboot1
from found partition atE000h
.boot1
findsboot
file at partition root.boot1
loadsboot
at20000h
(begins withStartX64
orStartIA32
).Start
enables paging (prebuilt forX64
or generated forIA32
).Start
switches to native CPU mode (X64
orIA32
) with paging.Start
jumps to concatentatedEfiXX
at21000h
(Efi64
orEfi32
).EfiXX
loadsEfiLdr
(concatenated afterEfiXX
) at10000h
.EfiLdr
decompresses and mapsDUETFV
,DxeIpl
,DxeCore
.EfiLdr
jumps toDxeIpl
, which startsDxeCore
fromDUETFV
.DxeCore
starts BDS, which loadsEFI/OC/OpenCore.efi
.
Name | PHYS | VIRT |
---|---|---|
boot0 |
7C00h |
|
boot1 |
E000h |
|
Start |
20000h |
20000h |
EfiXX |
21000h |
21000h |
EfiLdr |
22000h |
10000h |
DxeIpl + |
22000h+ |
??? |
BOOT MISMATCH!
- Bootstrap partition signature identification failed. BDS code will try to lookupEFI/OC/OpenCore.efi
on any partition in 3 seconds.BOOT FAIL!
- No bootableEFI/OC/OpenCore.efi
file found on any partition. BDS code will dead-loop CPU in 3 seconds.
By default ocbuild-like compilation is used via macbuild.tool
.
As an alternative it is possible to perform in-tree compilation by using INTREE=1
environment variable:
TARGETARCH=X64 TARGET=RELEASE INTREE=1 DuetPkg/macbuild.tool
Note: 32-bit version may not work properly when compiled with older Xcode version (tested 11.4.1).
Builtin available drivers are set in OpenDuetPkg.fdf
(included drivers) and OpenDuetPkg.dsc
(compiled drivers, may not be included). Adding more drivers may result in the need to
change firmware volume size. To do this update NumBlocks
in DuetPkg.fdf
(number of 64 KB blocks in the firmware).
Note: OHCI driver is not bundled with DuetPkg (and EDK II) and can be found in
edk2-platforms/Silicon/Intel/QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Dxe
.