My mac has 64-bit EFI, but it only boots with 32-bit kernel

64-bit Mac CPUs cannot boot 64-bit kernel due to one of the following reasons:

  1. The machine has 32-bit EFI.
  2. The machine’s model is prohibited from booting K64 through a hardcoded list within the boot loader. (The list excludes "non-Pro" machines.)

Both limitations are artificial and imposed by Apple, although the first one is important because if a 32-bit EFI were allowed to boot the kernel wouldn't be able to use firmware services.

IF you really, really, really want to boot these machines with a 64-bit kernel, you'll need to perform hackery on /System/Library/CoreServices/boot.efi. This is quite risky. More info:

http://osxbook.com/blog/2009/08/31/is-your-machine-good-enough-for-snow-leopard-k64/


64-bit kernel mode is not supported on any of the MacBooks (see Apple's KB article #HT3770), even if they have a 64-bit CPU and 64-bit EFI firmware. I don't know why it's not possible to boot them 64-bit, but I haven't found a way to do it (I'm in the same boat, as I have a 2007 MacBook Pro, also 64-bit EFI, but Apple only supports 64-bit kernel on the MacBook Pros introduced in 2008 or later).