TianoCore: Difference between revisions

From coreboot
Jump to navigation Jump to search
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:


There are various approaches for loading TianoCore, the easiest one seem to be to use SeaBIOS floppy mechanism and DuetPkg.
There are various approaches for loading TianoCore, the easiest one seem to be to use SeaBIOS floppy mechanism and DuetPkg.
 
== DUET ==
=== Howto DuetPkg ===
=== Howto DuetPkg ===
* Setup edk2 for compilation:
* Setup edk2 for compilation:
Line 35: Line 35:


=== Result ===
=== Result ===
M4a785T-M => fails with an interrupt issue
M4A785T-M => fails with an interrupt issue
 
Qemu => way too slow


Qemu => wait or hang (I should use gdb to find out which one)
x60 => seem to work,no media to test


x60 => reboots (maybe it's normal and it reboots becuase it didn't find an uefi boot media?)
== The right way ==
http://www.phisch.org/website/efiboot/ has some pointers on how it should be implemented, but no source code...

Revision as of 18:55, 1 January 2013

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.

DUET

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/PostBuild.sh IA32 GCC44
./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

Result

M4A785T-M => fails with an interrupt issue

Qemu => way too slow

x60 => seem to work,no media to test

The right way

http://www.phisch.org/website/efiboot/ has some pointers on how it should be implemented, but no source code...