Support v2 xnu boot arguments.
* grub-core/loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): New argument fsbfreq_out. (grub_xnu_set_video): Receive an argument grub_xnu_boot_params_common. (grub_xnu_boot): Support v2 arguments. Disable PIC so that APIC can be used. * grub-core/loader/machoXX.c (grub_macho_load): New argument darwin_version. * grub-core/loader/xnu.c (grub_xnu_darwin_version): New variable. * include/grub/i386/xnu.h (grub_xnu_boot_params_common): New struct. (grub_xnu_boot_params): Rename to ... (grub_xnu_boot_params_v1): ...this. Use grub_xnu_boot_params_common. (grub_xnu_boot_params_v2): New struct.
This commit is contained in:
parent
dc693fe67c
commit
83ddae2333
7 changed files with 154 additions and 52 deletions
|
@ -44,6 +44,7 @@ struct grub_xnu_devtree_key *grub_xnu_devtree_root = 0;
|
|||
static int driverspackagenum = 0;
|
||||
static int driversnum = 0;
|
||||
int grub_xnu_is_64bit = 0;
|
||||
int grub_xnu_darwin_version = 0;
|
||||
|
||||
grub_addr_t grub_xnu_heap_target_start = 0;
|
||||
grub_size_t grub_xnu_heap_size = 0;
|
||||
|
@ -387,7 +388,7 @@ grub_cmd_xnu_kernel (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
/* Load kernel. */
|
||||
err = grub_macho_load32 (macho, args[0], (char *) loadaddr - startcode,
|
||||
GRUB_MACHO_NOBSS);
|
||||
GRUB_MACHO_NOBSS, &grub_xnu_darwin_version);
|
||||
if (err)
|
||||
{
|
||||
grub_macho_close (macho);
|
||||
|
@ -500,7 +501,7 @@ grub_cmd_xnu_kernel64 (grub_command_t cmd __attribute__ ((unused)),
|
|||
|
||||
/* Load kernel. */
|
||||
err = grub_macho_load64 (macho, args[0], (char *) loadaddr - startcode,
|
||||
GRUB_MACHO_NOBSS);
|
||||
GRUB_MACHO_NOBSS, &grub_xnu_darwin_version);
|
||||
if (err)
|
||||
{
|
||||
grub_macho_close (macho);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue