Skip to content

Intel Mac target support

Alexander Graf qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest8 of 9 patches 12 repliesIn review

8 of 9 patches are in this archive. The cover letter announces 9.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9SMBIOS supportMakefile.target hw/pc.c smbios.c +2 more+767 -30 replies
3/9LPC deviceMakefile.target hw/lpc.c hw/pc.h+158 -10 replies
4/9AppleSMC deviceMakefile.target hw/applesmc.c hw/pc.h +1 more+188 -13 replies
5/9CoreDUO CPUtarget-i386/cpu.h target-i386/helper.c target-i386/helper2.c+96 -03 replies
6/9ICH-6 IDE controllerhw/ide.c hw/pc.h+61 -10 replies
7/9Intel Mac machinehw/boards.h hw/pc.c vl.c+77 -290 replies
8/9Multiboot -kernel supporthw/pc.c+229 -40 replies
9/9Bochsbios patchacpi-dsdt.dsl rombios.c rombios.h +1 more+247 -42 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH 0/9] Intel Mac target support

Hi,

the following patchset enables qemu to run Mac OS X with disabled AppleIntelCPUPowerManagement.kext, by emulating hardware that resembles an Intel Mac close enough. The following patches are included:

1. DMI
This is based on the DMI support by Ryan Harper. As it is currently unclear, if this approach is taken or if the Bochsbios is going to be patched, I would recommend to not apply this patch for now. I still submit it for completeness and because I have touched parts of it.

2. HPET
This adds an HPET emulator device. It is not feature-complete but should suffice for this purpose.

3. LPC
This adds a dummy LPC device the HPET is located on.

4. AppleSMC
Apples binary protection sits in the fan control, which is the AppleSMC chip. This emulates the devices and takes the protective key from the command line.

5. CoreDUO
Mac OS X as is has a condition to only run on family 13 Intel CPUs, so this adds a definition for a CoreDuo CPU and an MSR as well as a CPUID instruction that is required by Mac OS X

6. IDE
The oldest supported IDE controller in Mac OS X is the ICH6. This is an incomplete implementation for that controller, that suffices for running Mac OS X and worked with libata for me as well.

7. IntelMac
To leave the default behavior unchanged, this adds a "mac" machine definition that automatically chooses the right hardware for an emulated Intel Mac.

8. Multiboot
To boot Mac OS X a mach bootloader has to be run. David Elliot modified the original i386 Mac OS X BIOS based bootloader to emulate the EFI entries and support multiboot, an easy but straight-forward kernel loading interface founded by grub. To boot multiboot-compliant kernels directly, this adds support for multiboot loading to the -kernel option.

9. Bochsbios
Several ACPI entries were missing from the bios and the new controllers need to be initialized properly.
This patch is against the bochsbios. Should this rather be sent to the bochs ML?

For details, instructions and the bootloader please see
http://alex.csgraf.de/self/?qemu/

Cheers,

Alex