bofors Posted May 20, 2006 Share Posted May 20, 2006 EFI Learning, Documentation and Toolkits: Find, post and discuss EFI related resources This thread is for general reference information and advanced technical issues with the EFI toolkits available from the likes of Intel and the Tiancore project. MacEFIx86 toolkits and specific application goals should be discussed their respective threads. Intel EFI online tutorial (highly recommended): Using the EFI Shell: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=172 Intel EFI training videos (free registration required): Introduction to EFI OS Loaders: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=169 Introduction to Programming in EFI: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=170 Introduction to the EFI Tookit: http://or1cedar.cps.intel.com/softwarecoll...sp?courseID=171 These seem to be the two most important EFI pages: http://www.intel.com/technology/efi/ https://www.tianocore.org/ EFI application details: Intel's EFI Presentations page: http://www.intel.com/technology/efi/efi.htm Other EFI references: Amit Singh's EFI overview (excellent): http://www.kernelthread.com/publications/firmware/ The Wikipedia EFI page: http://en.wikipedia.org/wiki/Extensible_Firmware_Interface OSx86Project's EFI Wikipag: http://wiki.osx86project.org/wiki/index.php/EFI OnMac.net's EFI Wikipage: http://wiki.onmac.net/index.php/Developers/EFI EFI Toolkits Intel EFI Application Toolkit: http://www.intel.com/technology/efi/toolkit_overview.htm Intel EFI Sample Implementation: http://www.intel.com/technology/efi/main_sample.htm TianoCore EFI Development Kit (EDK): https://edk.tianocore.org/ TianoCore EFI Shell: https://efi-shell.tianocore.org/ Link to comment Share on other sites More sharing options...
bofors Posted May 20, 2006 Author Share Posted May 20, 2006 Welcome to the MacEFIx86 Project! This thread is for the discussion of the MacEFIx86 Project's motivation and goals EFI is the Extensible Firmware Interface that Intel has designed to replace BIOS. EFI is also the firmware system that Apple is using on all x86 Macintoshes. For more information on EFI and links to references see our EFI Learning, Documentation and Toolkits thread: http://forum.osx86project.org/index.php?showtopic=17917 The continued use of BIOS for OSx86 while Apple builds on EFI will likely result in a difficult series of technical problems for the OSx86 community. Furthermore, we wish to be able to use graphics drivers like Apple's ATI x1600 which require EFI environment. We also ultimately want to be able to use Macintosh firmware feartures like BootCamp, BootSelector and Target Disk Mode on our machines. In short, we want to build more perfect Macintosh clones by using EFI just like Apple. For more information, on why we should be working on EFI and also opposing arguments see our Why People Should Work On EFI thread: http://forum.osx86project.org/index.php?showtopic=13493 The MacEFIx86 Project has been formed to bring people together who are interested in moving beyond the limitations of the BIOS environment when running OSx86. We view this as a long term project that will be near the core of OSx86 community development effort. We have established three goals: Extracting Apple's EFI firmware: http://forum.osx86project.org/index.php?showtopic=18011 Booting EFI OS's on a BIOS Platform: http://forum.osx86project.org/index.php?showtopic=17932 EFI Motherboards, Flashing and Native Booting: http://forum.osx86project.org/index.php?showtopic=17930 Join the MacEFIx86 Project, we can use everyone's help! Link to comment Share on other sites More sharing options...
rogabean Posted May 21, 2006 Share Posted May 21, 2006 Aye! Welcome from Rogabean as well. Bofors is getting the forum in line while I prepare the first release of the environment from which we are working. Please excuse our dust. We need more people as well. I will be posting soon with a list of people I need at the moment for this project. Link to comment Share on other sites More sharing options...
bofors Posted May 21, 2006 Author Share Posted May 21, 2006 Extracting Apple's EFI firmware: Omni got it and we want it A sub-goal of this project is find a technique to abstract the EFI firmware from Intel Macintoshes in the form of .efi modules. Omni was able to get a copy of radeon.efi, so we know this is possible. Alternatively, Intel Macintosh EFI firmware is freely downloadable from Apple itself and it certainly is possible to unarchive it to the .efi modular form. Some of Apple's EFI firmware: http://www.apple.com/downloads/macosx/appl...eupdate101.html Wim's BIOS Page and forum has a lot of potentially useful information and knowledgeable people: http://www.wimsbios.com/ Use this thread to discuss the possibility of extracting and examining the Apple EFI Firmware. Link to comment Share on other sites More sharing options...
rogabean Posted May 22, 2006 Share Posted May 22, 2006 Specifically what we are in need of right now are the boot files being used to tell the system how to boot OS X. It is quite possible that Apple has reworked the EFI firmware to read HFS+ partitions, but that is unconfirmed. We need to see how this puppy really works. Link to comment Share on other sites More sharing options...
rogabean Posted May 22, 2006 Share Posted May 22, 2006 My first request of anyone would be to sit at the EFI shell prompt on the Intel mac and issue a drivers command and give me a listing of the output. it will be more then one page... so drivers -b will break it up. for now I don't need the memory addresses, just the driver name and image name. Link to comment Share on other sites More sharing options...
rollfaster Posted May 22, 2006 Share Posted May 22, 2006 Saw this on some tech blog: http://www.osxbook.com/book/bonus/chapter4/efiprogramming/ May be of use, or not, just thought I'd add it. RF Link to comment Share on other sites More sharing options...
bofors Posted May 22, 2006 Author Share Posted May 22, 2006 Thanks, that is another EFI resource from Amit Singh, "EFI Programming on Mac OS X". It is also useful to note that he has compiled his own EFI toolkits for both PPC and x86 OS X which are linked on that page. Link to comment Share on other sites More sharing options...
anomaly256 Posted May 28, 2006 Share Posted May 28, 2006 I've managed to dump the output from the drivers command using the efi shell on my macbook pro 15", however, for some reason it truncates the output to an 80 column width, despite having run 'mode 180 47' before hand. output as follows, let me know if you need anything else. more than happy to experiment. EDIT: Output attached to post as DriversDump.rtf In order to get the -full- guid image names, here's the output from 'dh' for the device handles. these map to the start of the image names from the previous 'drivers' output: EDIT: Output attached to post as HandlesDump.rtf DriverDump.txt HandlesDump.txt Link to comment Share on other sites More sharing options...
bofors Posted May 28, 2006 Author Share Posted May 28, 2006 Hey Anomaly, thanks for posting your data. I put the dumps into attached text files so the thread is easier to read. Is there anyway you could post some instructions on how to get into the EFI Shell on a Intel Mac? We also trying to figure out how to save the loaded EFI drivers as .efi files, this is something you may be able to figure out with a little experimentation. Link to comment Share on other sites More sharing options...
manchmod Posted May 29, 2006 Share Posted May 29, 2006 its trivial to get to the EFI shell with reFit (http://refit.sf.net) I still can't get their EFIAppLoader.efi to write the current firmware out from there. I'm thinking its going to be easier to extract the bin files. I decided to work on something else for the weekend (convertmake) I'll come back to this in a week or so when i feel up to unpacking PE binaries. Glad to help anyone else who wants to try tho -manch Link to comment Share on other sites More sharing options...
bofors Posted May 29, 2006 Author Share Posted May 29, 2006 I've managed to dump the output from the drivers command using the efi shell on my macbook pro 15", however, for some reason it truncates the output to an 80 column width, despite having run 'mode 180 47' before hand. output as follows, let me know if you need anything else. more than happy to experiment. EDIT: Output attached to post as DriversDump.rtf In order to get the -full- guid image names, here's the output from 'dh' for the device handles. these map to the start of the image names from the previous 'drivers' output: EDIT: Output attached to post as HandlesDump.rtf Here is a relate page at Intel: http://www.intel.com/technology/efi/help/m...ice_handles.htm Link to comment Share on other sites More sharing options...
bofors Posted May 29, 2006 Author Share Posted May 29, 2006 The rEFIt Project is another resoure: http://refit.sourceforge.net/ rEFIt is a boot menu and maintenance toolkit for EFI-based machines like the Intel Macs. You can use it to boot multiple operating systems easily, including triple-boot setups with Boot Camp. It also provides an easy way to enter and explore the EFI pre-boot environment Apparently, it also provides easy EFI Shell access on Intel Macs. Link to comment Share on other sites More sharing options...
mifki Posted June 3, 2006 Share Posted June 3, 2006 So what exactly are we doing here? Are we emulating EFI or are we hacking the Mobo firmware to enable it. Link to comment Share on other sites More sharing options...
bofors Posted June 3, 2006 Author Share Posted June 3, 2006 Are we emulating EFI? Yes, we are working on emulating EFI on BIOS boards. or are we hacking the Mobo firmware to enable it. Sort of, we are also interested in flashing Apple's EFI firmware on to Intel EFI boards. Link to comment Share on other sites More sharing options...
anomaly256 Posted June 3, 2006 Share Posted June 3, 2006 As manchmod said, I'm using rEFIt to run the efi shell (aswell as other things). I've been pretty busy at work lately, a deadline for our current project is getting close so I haven't had much free time to play around with efi. However I have some free time coming up soon and will gladly devote my time to trying to pull this stuff apart I'll post anything I find here. One thing in particular I would like to pull out of the firmware is the ATI 'vbios' driver that bootcamp uses so I can preload it for enabling 3d acceleration when booting using elilo instead of having to boot standard lilo through bootcamp and losing the framebuffer support Link to comment Share on other sites More sharing options...
mifki Posted June 4, 2006 Share Posted June 4, 2006 Ok i did not know that this project existed. For the past few months i have been hacking my mobo firmware to try and enable the EFI chipp that is already onboard (All boards that use the Intel 945 chipset support EFI). The only problem is that no mobo maker wants to enbale it I think that it would be much more useful to work on enabling this EFI chip instead of trying to emulate it. I do not think the BIOS will be able to Emulate it properly, and i also think taht it would take much more time to emulate it as we would have to initiate the Emualtion before booting an OS. I was also thinking (and hoping) that the mobo manufacturers would release an udae to support EFI (i dont know why this would happen, maybe a petition of sorts (but that is just stupid, no?)) Link to comment Share on other sites More sharing options...
gwprod12 Posted June 4, 2006 Share Posted June 4, 2006 I think that the EFI specification has much larger room for low-level drivers. BIOS chips are purdy small. Isnt the point of EFI to get away from 1985 technological limitations in Bios? Link to comment Share on other sites More sharing options...
mifki Posted June 4, 2006 Share Posted June 4, 2006 Sorry i didnt read above, yes i know taht we want to flash apples EFI onto intel boards. This is a very good idea. but if we had to do so we would still haver to enable the EFI from the ground up. instead of having a CD environment. Link to comment Share on other sites More sharing options...
bofors Posted June 5, 2006 Author Share Posted June 5, 2006 This is a very good idea. but if we had to do so we would still haver to enable the EFI from the ground up. I think there is mass confusion on the issue of "enabling" EFI. In short, EFI is not "disabled" on Intel's boards, but rather the normal EFI firmware emulates BIOS. Link to comment Share on other sites More sharing options...
mifki Posted June 5, 2006 Share Posted June 5, 2006 well than would it be possible to stop it emualting BIOS and start emulating itself. or does it already do that? Link to comment Share on other sites More sharing options...
bofors Posted June 5, 2006 Author Share Posted June 5, 2006 well than would it be possible to stop it emualting BIOS...? Yes, that is one of the main goals for this project. We are interested in using Apple's flashing EFI firmware onto Intel EFI boards to do this. Intel also regular (not BIOS emulating) EFI firmware that will eventualy be released (perhaps when Vista supports EFI), so we could and probably will work with that too. Link to comment Share on other sites More sharing options...
bofors Posted June 5, 2006 Author Share Posted June 5, 2006 As manchmod said, I'm using rEFIt to run the efi shell (aswell as other things). I've been pretty busy at work lately, a deadline for our current project is getting close so I haven't had much free time to play around with efi. However I have some free time coming up soon and will gladly devote my time to trying to pull this stuff apart I'll post anything I find here. Great, looking forward to your assistance. Link to comment Share on other sites More sharing options...
stainboy Posted June 15, 2006 Share Posted June 15, 2006 hi guys. i just read this. i thought it was important so here it is: "And just by coincidence," Brookwood remarked, "the fact that their system relies on EFI, and no commodity Intel hardware at the motherboard level supports EFI, means that you can't start their stuff on a commodity board." In other words, Apple might not need fancy code to determine for Mac OS X to determine whether an attempt is being made to launch it in a non-Macintosh system. It could simply try tripping a BIOS interrupt - what developers call an "INT 13h." If it works...then OS X could easily halt itself. We had been wondering for quirte a while whether a certain implementation of Intel's long-awaited Trusted Platform Module, known as LaGrande Technology (LT), would be making its premiere in the new Macs. Such a system, with its well-buried cryptographic keys, could make it easier for Apple to protect its intellectual property - both its operating system and the media components a user may download from iTunes. But we know that the 945 chipset does not carry LT. If it is the 945 that's running the Macs, this means that TPM won't play a role in 32-bit iMac and MacBook Pro architecture, at least for the next six months or so. If Apple truly does have something unique to hide beneath the lid of its new systems, this apparently isn't it. hope you guys are on the rigth path. best luck Link to comment Share on other sites More sharing options...
bofors Posted June 15, 2006 Author Share Posted June 15, 2006 That is from an article at TG Daily posted in January: http://www.tgdaily.com/2006/01/12/how_diff...tel-based_macs/ Not that this has much to do with EFI, but I had thought some form of LaGrande Technology was being used to secure OSx86. We know for sure that Apple is using encrypted binaries which were being decoded by the TPM chip, but perhaps the memory was not protected because LaGrande was fully operational and that is how Maxxuss was able to get the decrypted files needed. Link to comment Share on other sites More sharing options...
Recommended Posts