Hardware Hacks: Macintel XP

Macintel Articles @ NeoSmart:

What started off as a simple post with my ponderings has kicked off quite a stir and now I am deeply motivated to find a fix.. Call it OCD, call it perfectionism, call it (uber)geekiness, I need to find out what can be done to make it work….

Hardware Background

What I am trying to do here is to find a way to do this short of adding another motherboard to the box. Obviously a cheap hardware solution is better than an extremely time consuming software fix, which is still better than buying another mobo just for Windows :) OK.. First let’s establish some facts on the mobo used in the MacBook Pro and the iMac Core Duo (sorry about the naming confusion earlier guys!).

  1. Intel makes the chips. 100% of them. Nothing on it is made by Mac. Maybe programmed by Mac, but not made by Mac. Why? The only reason they switched to Intel was because the cost of making anything compared to Apple’s share of the market nowhere near justified the price. So Apple uses boards made by Intel. Not even customized Intel boards, because that was their gripe with IBM. Apple just doesn’t have enough demand for them to give them customized chips. Also Intel stated that the boards for Apple were just like any other board.
  2. EFI. Currently the biggest obstacle. Intel stated it uses standard boards for Apple (see point 1). From what I have managed to gather the only Intel board with EFI support is the 945 chipset. Not even the 955 or 975 has EFI support. All 945 chipsets currently sold to the public (besides Apple obviously) use BIOS, not EFI. Now that is something interesting to take note of!
  3. The rest of the hardware is one hundred percent PC (ergo, Windows) compatible.

So VERY simply from what I have been able to determine… Mac programmed the EFI and flashed it to a EPROM/Chip on a mobo that supports EFI and/or BIOS. The solution to booting XP on a Macintel is one step:

  1. Grab the BIOS chip from a 945 motherboard and replace the EFI Chip on the 945 in the iMac with it…

But, there are obviously (immediately visible) issues.

  1. It’s an original Intel mobo, not a rebranded (like Chaintech or Abit) so it should technically work….
  2. But at the same time it is a desktop chip which means you lose the APM (advanced power management) features for a Mac.. Or do you?
  3. Well, even assuming it works and you get BIOS onto that mobo of yours (no mean task by itself); congratulations you now have a PC. Not a Macintel. A PC!!!!

Obviously that is not what we want…. But then there is more that can be done to make it work… Now I *presume* OS X won’t boot on a non-EFI platform.. But I highly doubt that Apple would be so naive as to use security via obscurity. After all, soon enough EFI is coming to the PC world too (hurry up Dell!). I believe the key to stopping people from using Macintosh on a PC is the TPM chips encrypted with Apple’s private key. But nevertheless, it boils down to one question: When they compiled the BSD kernel for Mac OS X for Macintel, did they just add EFI support or actually go back and strip out BIOS commands?

Logic would say that they only added EFI and not removed BIOS, simply for compatibility reasons; and should they ever want a BIOS Macintel, they have the compatible code already. What’s more, to actually remove BIOS support from the BSD kernel is like finding needle splinters in a haystack. So long as the code is in an IF bracket that is only activated if BIOS=true it doesn’t slow done the operating system any. So assuming the above is true, you should be able to boot Mac OS X on a BIOS’d version of an iMac or MacBook. Now what if it isn’t true? This is a “guaranteed to work & much work required solution.”

  1. Get a blank EPROM BIOS/EFI chip.. Or just wipe an existing 945 chip clear.
  2. Use asm to write a very simple menu where upon boot you are asked to select EFI or BIOS.
  3. Copy the original EFI code and the legacy BIOS code to the chip. They should fit, it’s a 4MB chip.
  4. Upon selecting EFI or BIOS you get forwarded to the respective code.

Now where to find someone that knows asm that well? Intel, AMD, Apple, Soyo, Award, or AMI would be my guess, but why should they make it anyway? Yeah, so the above was how to do a hardware base solution for XP on Macintel. Why a Hardware Solution is Best

  1. You don’t mess with HD images to get XP installed.. You just get the BIOS working then install from CD
  2. Minimal trouble for the final user… Just get a chip, replace, and boot.
  3. Most likely to work and “failproof”

Why NOT a Hardware Solution

  1. End users will have to buy a chip.. And as far as I know, they are hard to get.
  2. Takes the most time to get working, and most amount of “Hackers’ R&D”
  3. Immediate compatibility with any BIOS based programs.

Actually, so long as Mac OS X runs on BIOS as well as EFI it’s quite easy to implement… If it doesn’t.. Well I told you what needs to be done, the problem is implementing it.

  • Similar Posts

    Craving more? Here are some posts a vector similarity search turns up as being relevant or similar from our catalog you might also enjoy.
    1. Windows XP on Mac?
    2. Making XP work with Apple's EFI
    3. CRN Dead Wrong About Macintel Exploits
    4. Apple's Two Choices
    5. The ARM, the PPC, the x86, and the iPad...
  • 15 thoughts on “Hardware Hacks: Macintel XP

    1. Well, i think it is the hardcore solution,
      i’m sure it is possible to do something else !!
      we have to load the CSM module from Tianocore.org EDK, and do an image from a BIOS like that CSM can load it

    2. Yeah, that would work.
      The best thing about this though is that it’s more or less bulletproof.
      What do you guys think? AFAIK if you actually hack the EPROM chips you’re home free!

    3. lol @ mac user.
      Sorry πŸ˜€
      (I just knew a fan would come and give me a ticket for something :P)

      Seriously though, the proper use of the comany’s name is my second priority. Number 1 is getting this to work πŸ™‚

    4. With regards to your point no 1:

      You’ll be shocked to learn that while the CPU and the chipset are from Intel, the boards ARE custom designed by Apple, just like the PPC-boards were. There may be a Mac with a standard board from Intel someday (the PowerMacs are a good bet), but alas it has not yet happened.

      But I do think that the boards might be “just another PC” from a hardware standpoint, although that’s pure speculation for the meantime. After all there might be some hardware combination (other than the EFI) that’s just not supported by windows – yet πŸ™‚

    5. Thanks another mac user
      Do you have a source or something? I’d like to read as much as I can about it.. It’s driving me MAD..
      It’s a good thing first semester exams are over, or I’d fail the lot!

      Anyway, yeah, I got this info from Intel’s quotes, I’ll try to dig up the source.. So I’d love to see some more on this.

    6. >When they compiled the BSD kernel for Mac OS X for Macintel, did they just add EFI support or actually go back and strip out BIOS commands?>

      My guess is that they modularized all of the low-level BIOS calls so that they can swap in a module for Open Firmware or EFI, depending on the target platform. For the developer preview machines, which ran on a standard BIOS, they must have a module written to support the BIOS. I highly doubt they would release a version of Darwin with BIOS support. You’d have to find the secret module that they use, then reverse engineer the BIOS module.

    7. The motherboards used in the MacBooks should have at least one more Apple customisation: the PMU (Power Management Unit). Apple has designed some pretty complex PMU chips over the time.

      Sorry, no source. But the Apple Developer Connection (www.apple.com/developer/) should have some hints.

    8. Hope you get this rollin’!! Sounds great and good luck!
      proprietary = mind control

    9. Here are some thoughts, ramblings, comments. Many of you will already know this info. I?m adding it so that people who are new and haven?t delved into a lot of threads on this type of thing can get some ideas. It?s my hope that it will inspire some others on what could be the right approaches to doing this and getting it done well.

      1st.

      Customized Apple board. Intel has nothing to gain by saying it’s a regular Intel board. What this really means usually from Intel’s standpoint is that they provide the spec, Apple designs their board on that spec but can add more to it if they want as long as it doesn’t interfere with the standard of the spec. Apple then sends the design off to prototyping and eventually their manufacturing company that they contract.

      2nd

      EFI, Open-Firmware, and BIOS modularity. Darwin does not use a BSD kernel, Mac OS X does not use a BSD kernel, they use the Mach micro-kernel. This is important. Otherwise, it is highly likely that your supposition on modularity of modular booting is how this works. Darwin x86 has been around some time and would have a BIOS boot module in it. Mach was not designed to be platform dependent. You can download Darwin IA32 for free if you want. Darwin PPC is also free, I used to use it on a B&W G3 for testing before Mac OS X 10.0 Beta was publicly released. I was dual booting it with Mac OS 8.6 and Linux PPC 4.x/2000. Darwin PPC would use the Open-Firmware method and is incompatible with non-OF PPC systems. Anyone who has used mkLinux or tried to install Linux PPC on a PowerMac/Performa x1xx model will tell you about this. (e.g. PM 7100). The EFI boot method so far has only been released under Tiger 10.4.4, shipped with an iMac/MacBook system. The test developer units would use the Darwin IA32 module.

      3rd

      The idea of using Assembly to write a ROM “chooser” and then letting the rest follow the natural flow of things is a good idea. This opens the realm of hybridizing dual-core systems and when future computer manufacturers attempt to use this method of lock-out it would serve as a prototype or model for dealing with the situation. Also unless the onboard encryption chips would specifically interfere with the operation of an operating system they should be ignored as un-installed devices. A recommendation would be how the gaming console industry (XBox, PS2, etc.) try to prevent people from booting unsupported operating systems or controlling content while an unsupported operating system is running. For examples to follow on Open-Firmware, see Sun Microsystems, HP, sgi, or any Windows Powered/WinCE/XP Embedded ISV, most all run some version of Open Firmware.

      4th

      For XP and overall for Operating Systems in general my humble opinion is that it’s far better to use a virtual machine. Though a lot of what you guys are attempting is done by the VM and EMU folks already. Specifically, a VM session has to have it’s own protected execution of a BIOS or firmware to support the drivers and VxDs that are running in that session. Otherwise you will definitely Blue Screen or Kernel Panic. It is most likely that if VM Ware or Virtual PC are to be developed for Mac OS X IA32 architecture that they will use a virtualized BIOS of some kind and a pre-HAL I/O translation in order to be compatible with I/O of the native system. This is done with Virtual PC and BOCHS running on PPC Mac OS and Mac OS X systems. Microsoft has stated as much regarding Virtual PC NOT running in Rosetta and the history of the Virtual PC for IA32 Windows does much of the same in order to support DOS – Windows ME and NT 4.0.

      5th

      Recommendation: Try getting ReactOS to function on an EFI Macintosh first, that way you’ve got something open source to reference. Once you have this working it should be a piece of cake to get a Microsoft or other non-open OS to function. Whether you are doing it in a VM or as a dual boot.

      Closure:

      Unrelated to this discussion is moving DarWINE (WINE for OS X) to IA32 and seeing how many more developers decide to cross the bridge and have dual-OS builds of their products on the same platform. Also will the path go both ways, will more OS X apps get developed for Windows and other IA32/IA64 systems? Will Apple revive YellowBox for Windows and make a portable Cocoa framework other than that in WebObjects? Would Mac business users want MS Access for OS X, etc. Will we see Apple Pro Apps on non-Apple systems? Will more Windows users decide to switch to Mac OS X on Intel if they can better their computing experience and grow the Apple Market even more? This may spawn the next generation of Operating System that replaces Windows as the standard. It may not even be from Apple, or it may be the successor to Mac OS X. It may be years from now. The tools are coming into place and porting Windows apps over to Mac OS X is easier than dealing with many other *nix-like systems. It all depends on how much you want to spend and where the marketable base of potential user interest lies. I for one, still miss having Wordperfect on Mac. Progress has happened, however. Nisus Writer Express has really proven itself to become over time a good product that is created from scratch and does almost everying people need without the whole kitchen sink. Everyone has their opinion and favorite though. Developers from Omnni, Nisus, Mariner, and others have proven that it’s more about how you design and implement a product as to whether it is “usable” not whether the feature is actually found and used by the user. Otherwise the ton of features your software has aren’t taken advantage of and the money and time you invested in creating them detracts from the overall value of the product.

    10. Von’t matter. TPM is like an ID Card… It doesn’t care what other cards you have in your wallet so long as you don’t mess with it πŸ™‚

      As a matter of fact, my old D610 had a TPM Chip in it, as well as a BIOS…

    11. Apple make the board but, they are not more than a PC :D, no more Power cores, sorry MAC Fans, but open your eyes, Mac its not the same and now the PC rules the market, I use a macbook and in real world, really stink, no games, no compatibility and my Ubuntu runs faster, even my XP 64 bit go beyond the Mac, I acept is very fancy OS, but its for dummys and a lot of the gadgets that came with the macbook are junk for me cause I really dont used, in the mac world this fancy tool must be the coolest things, for people that use a band, a photographer, a musci composer, but for a system analyst and a engineer this tools are unly junk on the HD, so sorry but I prefered my AMD 64 bit doble core system with a WIn XP 64 bit version or ubuntu and take a lot more fun and power, and for the record, the macbook have a lot of application that fail wit a lot of stress and also the photoshop hangs and yes we have to restart the system, the only good thing is the OSX doesnt show you the blue screen but it fails and reboot a lot when that happends, Funny but the linux donΒ΄t and even the XP 64 bit work faster and better, sorry for this comment for all the Apple fans, but pay $$$ for a PC with MAc is not a good idea, just for fancy boys and people that make art and need to be conceited that they have a mac…

      BTW

      http://onmac.net/  and http://www.flickr.com/photos/speedye/sets/72057594099504282/

      Its a good idea of installing XP an a Mac, but only a 32bit ΒΏversion will work, sorry πŸ˜›

      Dark Logan

      PC will rule the lan…

       

    Leave a Reply

    Your email address will not be published. Required fields are marked *