UEFI News and Commentary

Monday, April 10, 2006

Apple's Boot Camp

Apple announced here (http://www.apple.com/macosx/bootcamp/) that they can now dual-boot Windows XP and MAC OS. This had previously been done via a hacker patch, but an officially supported one is quite an impressive accomplishment. What isn't clear is where they got their CSM, since XP still uses all of the legacy interrupts to boot, it means they had to stick something on the front of the DXE driver model they got with the Framework. Actually, supporting only XP is a lot easier than a lot of the garbage that BIOS companies have to put up with to support (say) Win98 or WinMe. You may not believe this is an issue until you realize that big PC companies have guaranteed support contracts for Win95 still. What a breath of fresh air it was to finally no longer have to include OS/2 testing in compatibility labs (it was the only OS which didn't support DPMI, which meant we had to use SMIs to switch out of real-mode to protected mode code). Having said that, XP still requires dozens of interfaces, from INT 15, E820, through the extended INT 13 functions, INT 10 and INT 16. A CSM essentially requires an EFI-style executable which can relocate itself into the F000 shadow area to provide the compatibility services. If you want a degree of platform-independence, you can either (a) reverse thunk into flat 32-bit model to call the EFI driver or (b) rewrite all the BIOS support code for each platform. They can either license it from someone, write it themselves or steal it from another product. Did they have a BIOS license in the the PC virtualization stuff? I don't know. Since I haven't seen Phoenix or Insyde or AMI trumpet this, I don't think they bought this from anyone. For now, it is a fun playground for enthusiasts.