|Patrick Georgi c34edd83b0||5 years ago|
|AppPkg||5 years ago|
|ArmPkg||5 years ago|
|ArmPlatformPkg||5 years ago|
|ArmVirtPkg||5 years ago|
|BaseTools||5 years ago|
|BeagleBoardPkg||5 years ago|
|Conf||6 years ago|
|CorebootModulePkg||5 years ago|
|CorebootPayloadPkg||5 years ago|
|CryptoPkg||5 years ago|
|DuetPkg||5 years ago|
|EdkCompatibilityPkg||5 years ago|
|EdkShellBinPkg||6 years ago|
|EdkShellPkg||6 years ago|
|EmbeddedPkg||5 years ago|
|EmulatorPkg||5 years ago|
|FatBinPkg||5 years ago|
|IntelFrameworkModulePkg||5 years ago|
|IntelFrameworkPkg||5 years ago|
|IntelFspPkg||5 years ago|
|IntelFspWrapperPkg||5 years ago|
|MdeModulePkg||5 years ago|
|MdePkg||5 years ago|
|NetworkPkg||5 years ago|
|Nt32Pkg||5 years ago|
|Omap35xxPkg||5 years ago|
|OptionRomPkg||5 years ago|
|OvmfPkg||5 years ago|
|PcAtChipsetPkg||5 years ago|
|PerformancePkg||5 years ago|
|SecurityPkg||5 years ago|
|ShellBinPkg||5 years ago|
|ShellPkg||5 years ago|
|SourceLevelDebugPkg||5 years ago|
|StdLib||5 years ago|
|StdLibPrivateInternalFiles||6 years ago|
|UefiCpuPkg||5 years ago|
|UnixPkg||7 years ago|
|Vlv2DeviceRefCodePkg||5 years ago|
|Vlv2TbltDevicePkg||5 years ago|
|corebootPkg||5 years ago|
|.gitignore||6 years ago|
|BuildNotes2.txt||7 years ago|
|Edk2Setup.bat||5 years ago|
|Maintainers.txt||5 years ago|
|README.md||5 years ago|
|edksetup.bat||5 years ago|
|edksetup.sh||5 years ago|
This branch introduces the corebootPkg. It allows to easily build a tianocore image that is suitable as coreboot payload.
First you need to set up your EDK2 environment. You can try to use your host gcc for which edk2 provides toolchain configurations GCC44 through GCC49. You also need iasl and nasm installed.
You will also need the EDK2 base tools, which can be generated through
(cd BaseTools/Source/C; make)
After entering the environment (". edksetup.sh"), build corebootPkg using one of
build -t YOURTOOLCHAIN -a IA32 -p corebootPkg/corebootPkg.dsc build -t YOURTOOLCHAIN -a X64 -p corebootPkg/corebootPkg.dsc
This ideally creates Build/coreboot$ARCH/DEBUG_YOURTOOLCHAIN/FV/COREBOOT.fd, the payload image. Use -b RELEASE for release builds and -b NOOPT for no-optimization builds, which also end up in their respective paths.
Configure coreboot to use a Tianocore payload and point it to the COREBOOT.fd created before.
Build, run, have fun. If (no, when) you find bugs, I'd love to see your patches that fix them :-)
It's possible to run corebootPkg with SeaBIOS as CSM. David Woodhouse did the necessary work at http://git.infradead.org/users/dwmw2/edk2.git which I integrated (Thanks David!).
From here, proceed as usual (add COREBOOT.fd as payload).
Please note that the vgabios-cirrus.bin shipped with QEmu/KVM isn't exactly in the format CSM expects. See https://lists.gnu.org/archive/html/qemu-devel/2013-01/msg03650.html
Using SeaBIOS' vgabios implementation for QEmu from latest master should work.
Following options exist to change the default:
To enable video output with corebootPkg, it expects coreboot to initialize the graphics and leave it in a graphics mode (not VGA's text16!).
To facilitate this, you'll need VGABIOS or native graphics init in coreboot, and its config options FRAMEBUFFER_SET_VESA_MODE and FRAMEBUFFER_KEEP_VESA_MODE.
There's some issue that prevents the cirrus native graphics driver in coreboot from initializing framebuffers over a certain size (1024x768 or larger, ie. what Windows 8 requires). To boot with native graphics on QEmu, use -vga std, which works.
corebootPkg is a collaborative work. First, it's standing on the shoulders of giants, namely the Tianocore project, from which it was branched from. Hopefully we'll eventually get far enough to merge the coreboot support there.
It was started as kind of a dare, which at times seems to be the main driver of coreboot innovation. "Thanks" Stefan Reinauer ;-)
He also contributed a bunch of interoperability patches, most importantly memory table support.
David Woodhouse did the CSM port and provided some guidance when it came to integration.
Scott Duplichan is (to my knowledge) the first one to seriously try to get it running on real hardware. Some of the emulator-specific bits that corebootPkg inherited from OVMF are gone thanks to his code slaying prowess.
Vladimir 'phcoder' Serbinenko added corebootPkg support to GRUB2's coreboot loader, so it can chainload into UEFI.
-- Patrick Georgi