TianoCore: Difference between revisions
Jump to navigation
Jump to search
Line 6: | Line 6: | ||
* Setup edk2 for compilation: | * Setup edk2 for compilation: | ||
* First compile DuetPkg: | * First compile DuetPkg: | ||
cd BaseTools | |||
export EDK_TOOLS_PATH=$(pwd) | |||
cd ../ | |||
. ./edksetup.sh BaseTools | |||
build -p DuetPkg/DuetPkgIa32.dsc | |||
* Then package it in a floppy file: | * Then package it in a floppy file: | ||
Go in the edk2 directory, then run the following commands: | Go in the edk2 directory, then run the following commands: |
Revision as of 12:37, 31 December 2012
TianoCore is an open source implementation of UEFI, the Unified Extensible Firmware Interface. UEFI (formerly EFI) is intended to replace the traditional PC BIOS. TianoCore as in implementation cannot do that, as it lacks the code to do hardware initalization. Since hardware initialization is exactly what coreboot does, the combination of coreboot + TianoCore is the most straightforward option to provide a complete, opensource UEFI environment.
There are various approaches for loading TianoCore, the easiest one seem to be to use SeaBIOS floppy mechanism and DuetPkg.
Howto DuetPkg
- Setup edk2 for compilation:
- First compile DuetPkg:
cd BaseTools export EDK_TOOLS_PATH=$(pwd) cd ../ . ./edksetup.sh BaseTools build -p DuetPkg/DuetPkgIa32.dsc
- Then package it in a floppy file:
Go in the edk2 directory, then run the following commands:
cd BaseTools export EDK_TOOLS_PATH=$(pwd) cd ../ . ./edksetup.sh BaseTools ./DuetPkg/CreateBootDisk.sh file ./floppy.img ./floppy.img FAT12 IA32 GCC44 lzma -zc floppy.img > myfloppy.img.lzma
- Then add it to cbfs:
Go into the coreboot directory and do:
./build/cbfstool coreboot.rom add -f /path/to/myfloppy.img.lzma -n floppyimg/MyFloppy.lzma -t raw ./build/cbfstool coreboot.rom print
- reflash coreboot and reboot.
- Then while booting press F12 and choose it:
Press F12 for boot menu. Select boot device: 1. Ramdisk [MyFloppy] 2. ata1-0: Hitachi HDP725050GLA360 ATA-8 Hard-Disk (465 GiByte
- For me it fails with an interrupt issue....