Hi all,
after Stefan pushed out his effort at a Tiano payload, and I got a couple of deadlines behind me, I thought it might be a nice project to implement my concept of a Tiano payload.
The result as of now can be found on https://github.com/pgeorgi/edk2/commit/d53b201dcaf2257c0c3f7827cab9d83f05a9e... It's branched of edk2 as of today and builds an image that can be added to coreboot as a payload using some magic incantations which are detailed in the commit message I linked to.
Since I'm lazy, I just copy it over, since it explains the status of this port, too:
Got corebootPkg to boot
It reuses more Ovmf libraries than is good for its health or mine, it has no idea about coreboot and its tables yet. It can't store "fault tolerant" (ie. non-volatile) variables.
The entry point is still 0x64 bytes off for unknown reasons, but that luckily doesn't matter since 0x32 times 0x00 0x00 are just the right instruction for x86 to survive.
It's half blind since I have no GOP driver - serial console works.
In short, it has tons of warts. Tons of places that can be improved. Many things left to do.
But it boots into EFI Shell. Let's ship it.
build instructions Tiano side: . edksetup.sh build -a IA32 -p corebootPkg/corebootPkgIa32.dsc
build instructions coreboot side: build emulator/qemu-x86 image with 2MB and no payload cbfstool coreboot.rom add-flat-binary \ -f edk2/Build/corebootIa32/DEBUG_UNIXGCC/FV/COREBOOT.fd \ -n fallback/payload -l 0x800000 -e 0x800400 -c lzma
0x800000 is the location (see corebootPkgIa32.fdf) 0x800400 is the entry point (you have to believe me on that one)
Regards, Patrick