Page 1 of 1

Fake UEFI firmware

Posted: Sat Jul 28, 2012 5:32 am
by AlfaOmega08
After getting disappointed for my 3-yrs motherboard not supporting uefi, and find that an upgrade wont be released I decided to write an UEFI fake firmware to be runt on top of legacy BIOS. The pourpose is to boot my OS on.top of.UEFI without buying another mobo/cpu etc...

A few questions come to my mind:
1) Is this actually feasible? I already wrote some boot code long mode but I'm not sure that anything can be implemented.
2) Where fan I found dova about the EFI Executable Format and EFI System Partition? The UERI specifications.tells to look for them on the UEFI website itself but I can't find them.
3) Did I read correctly? The firmware won't receive interrupts but drivers will only poll devices?
4) If I release.my code opensource, will someone join me?
5) Should drivers be fast (dma instead of pio) for something that will last only a few seconds?
6) Is multitasking used in a UEFI firmware?
7) more to come...!

Thanks

Re: Fake UEFI firmware

Posted: Sat Jul 28, 2012 3:49 pm
by Nable
try googling before implementing anything.
At least, there are EFI roms for emulators, for example: http://smackerelofopinion.blogspot.com/ ... -bios.html
You can try porting it to be used with real hardware.

Then, if your motherboard is supported by coreboot, you may try to search about coreboot+EFI, here's somehow related link: http://blogs.coreboot.org/blog/category/uefi/

Re: Fake UEFI firmware

Posted: Sat Jul 28, 2012 9:46 pm
by AlfaOmega08
I did google but.my motherboard bis unsupported by coreboot. Also I found chamelon and.grub-efi to boot the Mac. But they only implement a small subset of UEFI needed to boot OSX.

I didn't find sources for TianoCore either...

Re: Fake UEFI firmware

Posted: Sun Jul 29, 2012 1:24 am
by djmauretto
Qui c'è un link dove puoi scaricare EFI (TIANOCORE) per QEMU.
http://sourceforge.net/apps/mediawiki/t ... title=OVMF

Io l'ho uso con QEMU per windows e gira abbastanza bene :-)
Considera che è sempre un emulatore e non una cosa reale, quindi se
vuoi sperimentare va benissimo, ma diffida sempre degli emulatori...
Quando avrai la possibilità, ti conviene prendere una scheda madre che supporti EFI
e sperimentare direttamente con una cosa reale :-)

Re: Fake UEFI firmware

Posted: Sun Jul 29, 2012 6:24 am
by AlfaOmega08
L'ho già provato ma non trovo il source... "Already test ed OVMF but I cant find tianocore sources"

Re: Fake UEFI firmware

Posted: Sun Jul 29, 2012 6:33 am
by Owen

Re: Fake UEFI firmware

Posted: Wed Aug 01, 2012 10:50 am
by Firestryke31
I've been working off and on on a UEFI implementation on top of BIOS. It's been shelved in favor of another project, but I'd still like to keep working on it once I've finished my current project. My current iteration is a restart after reviewing my previous iteration and how difficult to expand it was. All I have done is the MBR for reading GPT/MBR formatted disks, and started on the FAT32 VBR, so I still have a long way to go, especially since my plan was to do some low-level takeover from the BIOS (including modifying ACPI tables and memory maps, and if conceivable hook into SMM interrupts to emulate certain things). In my implementation ideally the user would be able to take their HDD and put it into a real UEFI machine and the OS would be none the wiser (other than maybe missing NVRAM variables and obviously different hardware). It's gonna take a while.

Re: Fake UEFI firmware

Posted: Wed Aug 01, 2012 9:49 pm
by ACcurrent
Hmm... I know those Hackintosh guys would need something that supports EFI and I believe grub does have some form of EFI emulation to bootload XNU.

Re: Fake UEFI firmware

Posted: Thu Aug 02, 2012 7:24 am
by Nable
+1, i've also found recently that grub2 has efiemu modules out-of-the-box.

Re: Fake UEFI firmware

Posted: Thu Aug 02, 2012 7:42 am
by AlfaOmega08
Efiemu only supports UEFI runtime services. The most simple to implement (and the only required by OSX). I'm writing something that will be installed onto the HD to fully replace.BIOS whit an UEFI-like software.