Commit graph

209 commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
7ea73643f5 merge mtrunk into xnu 2009-12-18 03:57:32 +01:00
Robert Millan
b50b77b9a8 Merge relocator branch 2009-12-13 18:37:44 +00:00
Robert Millan
616da3a154 2009-12-13 Robert Millan <rmh.grub@aybabtu.com>
* loader/i386/multiboot_elfxx.c
        (CONCAT(grub_multiboot_load_elf, XX)): Fix `grub_multiboot_payload_eip'
        initialization.
2009-12-13 18:29:15 +00:00
Vladimir 'phcoder' Serbinenko
3e8c081543 legacy-like stack handling 2009-12-13 18:10:53 +01:00
Vladimir 'phcoder' Serbinenko
5a0e0cc6bd Fix XNU resume. 2009-12-13 18:07:01 +01:00
Robert Millan
dfec2d96f9 Merge from trunk 2009-12-11 21:20:00 +00:00
Vladimir 'phcoder' Serbinenko
02ddd45afc Fix compilation issue for ppc 2009-12-03 22:45:41 +01:00
Vladimir 'phcoder' Serbinenko
181aaf0e59 Merged mainline into pci 2009-11-30 19:09:11 +01:00
Vladimir 'phcoder' Serbinenko
159194989d Ported xnu to relocator framework 2009-11-27 09:42:50 +01:00
Vladimir 'phcoder' Serbinenko
636813f768 Split relocators from mips branch 2009-11-25 23:39:59 +01:00
Robert Millan
f84b481b35 Cheery-pick grub-emu split from experimental (rev 1361)
2009-11-23  Robert Millan  <rmh.grub@aybabtu.com>

        * configure.ac: Detect all `emu' platforms.  Define
        GRUB_MACHINE_* macros in TARGET_CFLAGS.  Remove
        --enable-grub-emu logic.  Disable include/grub/machine
        symlink on `emu' platforms.

        * genkernsyms.sh.in: Use @TARGET_CFLAGS@ during symbol generation.
        * gensymlist.sh.in: Likewise.

        * include/grub/i386/coreboot/machine.h: Remove file.
        * include/grub/i386/efi/machine.h: Likewise.
        * include/grub/i386/ieee1275/machine.h: Likewise.
        * include/grub/i386/pc/machine.h: Likewise.
        * include/grub/i386/qemu/machine.h: Likewise.
        * include/grub/powerpc/ieee1275/machine.h: Likewise.
        * include/grub/sparc64/ieee1275/machine.h: Likewise.
        * include/grub/x86_64/efi/machine.h: Likewise.

        * commands/acpi.c: Remove `<grub/machine/machine.h>'.
        * commands/halt.c: Likewise.
        * commands/reboot.c: Likewise.
        * include/grub/autoefi.h: Likewise.
        * include/grub/i386/at_keyboard.h: Likewise.
        * include/grub/i386/kernel.h: Likewise.
        * include/grub/i386/loader.h: Likewise.
        * include/grub/i386/pc/memory.h: Likewise.
        * kern/dl.c: Likewise.
        * kern/i386/coreboot/init.c: Likewise.
        * loader/i386/bsd.c: Likewise.
        * loader/i386/linux.c: Likewise.
        * loader/multiboot_loader.c: Likewise.
        * term/i386/pc/serial.c: Likewise.
        * term/usb_keyboard.c: Likewise.

        * include/grub/time.h [!GRUB_MACHINE_EMU]: Remove
        `<grub/machine/machine.h>'
        [!GRUB_MACHINE_EMU] (GRUB_TICKS_PER_SECOND): New macro.
        * util/misc.c: Remove `<grub/machine/machine.h>' and
        `<grub/machine/time.h>'.

        * Makefile.in (enable_grub_emu): Remove variable.
        Include $(srcdir)/conf/any-emu.mk for the `emu' platform.

        * conf/any-emu.rmk: New file.
        * conf/common.rmk (grub_emu_init.lst, grub_emu_init.h)
        (grub_emu_init.c): Move from here ...
        * conf/any-emu.rmk: ... to here.

        * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-emu'.
        (grub_emu_SOURCES, grub_emu_LDFLAGS): Move from here ...
        * conf/any-emu.rmk: ... to here.
2009-11-23 15:31:54 +00:00
Vladimir 'phcoder' Serbinenko
e4eff4ed62 changed leftover 32 to XX 2009-11-20 23:37:33 +01:00
Robert Millan
8d0edf4abd 2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/multiboot.h (struct grub_multiboot_header): Move
        from here ...
        * include/multiboot.h (struct multiboot_header): ... to here.  Update
        all users.
        * include/grub/multiboot.h (struct grub_multiboot_info): Move
        from here ...
        * include/multiboot.h (struct multiboot_info): ... to here.  Update
        all users.
        * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): Move
        from here ...
        * include/multiboot.h (struct multiboot_mmap_entry): ... to here.
        Update all users.
        * include/grub/multiboot.h (struct grub_mod_list): Move
        from here ...
        * include/multiboot.h (struct multiboot_mod_list): ... to here.
        Update all users.
2009-11-13 13:34:51 +00:00
Robert Millan
6944770e0c 2009-11-13 Robert Millan <rmh.grub@aybabtu.com>
* include/multiboot2.h (multiboot_word): Rename from this ...
        (multiboot2_word): ... to this.  Update all users.
        (multiboot_header): Rename from this ...
        (multiboot2_header): ... to this.  Update all users.
        (multiboot_tag_header): Rename from this ...
        (multiboot2_tag_header): ... to this.  Update all users.
        (multiboot_tag_start): Rename from this ...
        (multiboot2_tag_start): ... to this.  Update all users.
        (multiboot_tag_name): Rename from this ...
        (multiboot2_tag_name): ... to this.  Update all users.
        (multiboot_tag_module): Rename from this ...
        (multiboot2_tag_module): ... to this.  Update all users.
        (multiboot_tag_memory): Rename from this ...
        (multiboot2_tag_memory): ... to this.  Update all users.
        (multiboot_tag_unused): Rename from this ...
        (multiboot2_tag_unused): ... to this.  Update all users.
        (multiboot_tag_end): Rename from this ...
        (multiboot2_tag_end): ... to this.  Update all users.
2009-11-13 13:30:55 +00:00
Vladimir 'phcoder' Serbinenko
1d3c6f1de7 Manually reimported XNU branch 2009-11-09 18:43:53 +01:00
Vladimir 'phcoder' Serbinenko
3f02806841 Merged with trunk 2009-11-09 18:18:01 +01:00
phcoder
46695a62e6 2009-10-16 Vladimir Serbinenko <phcoder@gmail.com>
Let user specify OpenBSD root device.

	* loader/i386/bsd.c (openbsd_root): New variable.
	(openbsd_opts): New option 'root'.
	(OPENBSD_ROOT_ARG): New macro.
	(grub_openbsd_boot): Use 'openbsd_root'.
	(grub_cmd_openbsd): Fill 'openbsd_root'.
2009-10-16 20:21:12 +00:00
phcoder
44998e5893 2009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/pc/xnu.c (grub_xnu_set_video): Fix loading splash image.
2009-10-15 12:40:13 +00:00
robertmh
9155bc1796 2009-10-14 Robert Millan <rmh.grub@aybabtu.com>
Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between
        the Operating System (FreeBSD) and its kernel (kernel of FreeBSD).

        * loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment
        from "kFreeBSD" namespace (rather than "FreeBSD").  Update all
        users.

        (GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd",
        "openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv"
        to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module",
        and "freebsd_module_elf" to "kfreebsd_module_elf".  Update all
        users.
2009-10-14 16:49:22 +00:00
robertmh
5c936493d3 2009-10-09 Robert Millan <rmh.grub@aybabtu.com>
Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU.

        * include/grub/i386/cpuid.h: New file.
        * commands/i386/cpuid.c: Include `<grub/i386/cpuid.h>'.
        (has_longmode): Rename to ...
        (grub_cpuid_has_longmode): ... this.  Update all users.  Remove
        `static' attribute.
        * loader/i386/bsd.c: Include `<grub/i386/cpuid.h>'.
        (grub_bsd_load_elf): Fail if load of 64-bit kernel was requested
        on a CPU that doesn't implement AMD64 instruction set.
2009-10-09 17:57:02 +00:00
phcoder
2cb69d2fee bugfix 2009-09-20 15:14:22 +02:00
phcoder
2943464811 fixed 64-bit loading 2009-09-17 10:03:12 +02:00
robertmh
6122955707 2009-09-12 Robert Millan <rmh.grub@aybabtu.com>
* video/i386/pc/vbe.c (grub_vbe_get_video_mode_info): Move packed
        mode special handling (grub_vbe_bios_set_dac_palette_width() call)
        from here ...
        * loader/i386/linux.c [GRUB_MACHINE_PCBIOS]
        (grub_linux_setup_video): ... to here (with some adjustments).
2009-09-12 13:07:27 +00:00
phcoder
ab6e34cc81 missing files 2009-09-10 23:54:12 +02:00
phcoder
444eea11fc fix 2009-09-06 00:25:33 +02:00
phcoder
975146895c missing part of previous commit 2009-09-04 13:50:32 +00:00
phcoder
55fe0517d4 page-based counting. conditional or ffffff8... 2009-09-04 15:31:09 +02:00
phcoder
30c270dbf8 Merge branch 'mainline' into snow64 2009-09-04 15:18:38 +02:00
phcoder
197f76c741 2009-09-04 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): Remove
	unnecessary calls to grub_error.
2009-09-04 13:16:07 +00:00
phcoder
12d6fc8461 EFI support 2009-09-03 19:19:59 +02:00
phcoder
0355f07404 relocate runtime 2009-09-02 18:18:11 +02:00
phcoder
df2a15f643 Merge branch 'mainline' into snow64 2009-09-02 18:17:06 +02:00
phcoder
8a10b2c632 now hangs at maxDec 2009-09-02 13:34:40 +02:00
phcoder
72db7c22f3 crashing snow64 2009-09-02 02:52:10 +02:00
phcoder
fe00f472fc 2009-08-30 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/bsdXX.c (SUFFIX (grub_freebsd_load_elfmodule)): Fix
	loading of headers in some cases.
2009-08-30 19:28:01 +00:00
phcoder
965632c10f snow32 support. 2009-08-30 14:26:41 +02:00
phcoder
552bf6c568 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
NetBSD memory map support.

	* include/grub/i386/bsd.h (NETBSD_BTINFO_MEMMAP): New definition.
	(grub_netbsd_btinfo_mmap_header): New structure.
	(grub_netbsd_btinfo_mmap_entry): Likewise.
	* loader/i386/bsd.c (grub_netbsd_boot): Pass memory map.
2009-08-26 00:32:57 +00:00
phcoder
1ae2078cd8 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
Enable bsd.mod on coreboot.

	* conf/i386-coreboot.rmk (pkglib_MODULES): Add bsd.mod.
	(bsd_mod_SOURCES): New variable.
	(bsd_mod_CFLAGS): Likewise.
	(bsd_mod_LDFLAGS): Likewise.
	(bsd_mod_ASFLAGS): Likewise.
	* loader/i386/bsd.c [!GRUB_MACHINE_PCBIOS]: Fix includes.
	(grub_bsd_get_device) [!GRUB_MACHINE_PCBIOS]: Set *biosdev to 0xff.
2009-08-25 23:18:48 +00:00
phcoder
beefc59841 2009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
Cleanup NetBSD root support.

	* loader/i386/bsd.c (grub_netbsd_boot): Remove call to
	grub_bsd_get_device.
	Fix typo.
2009-08-25 19:57:18 +00:00
phcoder
dd103c4e04 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
Fix OpenBSD and NetBSD support.

	* include/grub/i386/bsd.h (GRUB_BSD_TEMP_BUFFER): Change to resolve
	memory address conflict.
	(OPENBSD_MMAP_ACPI): New definition.
	(OPENBSD_MMAP_NVS): Likewise.
	* loader/i386/bsd.c (grub_openbsd_boot): Support OPENBSD_MMAP_ACPI
	and OPENBSD_MMAP_NVS.
	Add memory map terminator
	Explicit cast when calling grub_unix_real_boot.
	(grub_nebsd_boot): Explicit cast when calling grub_unix_real_boot.
2009-08-24 13:20:24 +00:00
phcoder
16c84d744c 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
Let user specify NetBSD root device.

	* loader/i386/bsd.c (netbsd_root): New variable.
	(netbsd_opts): New option 'root'.
	(NETBSD_ROOT_ARG): New macro.
	(grub_netbsd_boot): Use 'netbsd_root'.
	(grub_bsd_unload): Free 'netbsd_root'.
	(grub_cmd_netbsd): Fill 'netbsd_root'.
2009-08-24 13:10:12 +00:00
phcoder
adb29902f3 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
Support for 64-bit NetBSD.

	* loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry
	point when booting non-FreeBSD.
2009-08-24 12:59:48 +00:00
phcoder
f5ae9f745f 2009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
Support --no-smp and --no-acpi for NetBSD.

	* include/grub/i386/bsd.h (NETBSD_AB_NOSMP): New definition.
	(NETBSD_AB_NOACPI): Likewise.
	* loader/i386/bsd.c (netbsd_opts): New entries no-smp and no-acpi.
	(netbsd_flags): Add NETBSD_AB_NOSMP, NETBSD_AB_NOACPI.
2009-08-24 12:55:19 +00:00
phcoder
c11fded5f2 2009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/bsd.c (freebsd_opts): Rewritten to use extcmd.
	(openbsd_opts): Likewise.
	(netbsd_opts): Likewise.
	(freebsd_flags): Added 0 terminator.
	(openbsd_flags): Likewise.
	(netbsd_flags): Likewise.
	(grub_bsd_parse_flags): Rewritten to use extcmd. All users updated.
	(grub_cmd_freebsd): Transformed into extended command.
	(grub_cmd_openbsd): Likewise.
	(grub_cmd_netbsd): Likewise.
	(cmd_freebsd): Changed type to grub_extcmd_t.
	(cmd_openbsd): Likewise.
	(cmd_netbsd): Likewise.
	(GRUB_MOD_INIT (bsd)): Register grub_cmd_freebsd, grub_cmd_netbsd and
	grub_cmd_openbsd as extended commands.
	(GRUB_MOD_FINI (bsd)): Use grub_unregister_extcmd for cmd_freebsd,
	cmd_netbsd and cmd_openbsd
2009-08-23 11:46:25 +00:00
robertmh
08aa61f0e2 2009-08-17 Robert Millan <rmh.grub@aybabtu.com>
* loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT)
        (DEFAULT_VIDEO_MODE): Remove macros.
        (grub_linux_boot): Remove assumption that Linux has FB support,
        and use "text" as default video mode.
2009-08-17 12:44:28 +00:00
phcoder
e1f39873bc 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/multiboot.c (grub_multiboot): Don't pass filename to
	payload.
	(grub_module): Likewise.
2009-08-14 15:19:24 +00:00
phcoder
c166d79e62 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
* loader/i386/multiboot.c (grub_multiboot_unload): Don't free mbi and
	mbi->cmdline but free playground.
2009-08-14 15:15:33 +00:00
phcoder
d3539132cd 2009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
Framebuffer split.

	* commands/i386/pc/vbetest.c (grub_cmd_vbetest): Restore video
	subsystem at the end.
	* conf/common.rmk (pkglib_MODULES): Add video_fb.mod.
	(video_fb_mod_SOURCES): New variable.
	(video_fb_mod_CFLAGS): Likewise.
	(video_fb_mod_LDFLAGS): Likewise.
	* conf/i386-pc.rmk (vbe_mod_SOURCES): Remove video/i386/pc/vbeblit.c,
	video/i386/pc/vbefill.c and video/i386/pc/vbeutil.c.
	* video/i386/pc/vbeblit.c: Moved from here ...
	* video/fb/fbblit.c: ..here. Replaced 'vbe' with 'fb'.
	* video/i386/pc/vbefill.c: Moved from here ...
	* video/fb/fbfill.c: ..here. Replaced 'vbe' with 'fb'.
	* video/i386/pc/vbeutil.c: Moved from here ...
	* video/fb/fbutil.c: ..here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbeblit.h: Moved from here ...
	* include/grub/fbblit.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbefill.h: Moved from here ...
	* include/grub/fbfill.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbeutil.h: Moved from here ...
	* include/grub/fbutil.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/i386/pc/vbe.h: Moved framebuffer part ...
	* include/grub/video_fb.h: ... here. Replaced 'vbe' with 'fb'.
	* include/grub/video.h (GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER): Removed.
	(GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER): Likewise.
	(grub_video_adapter): Added 'get_info_and_fini'.
	(grub_video_get_info_and_fini): New prototype.
	(grub_video_set_mode): make modestring const char *.
	* loader/i386/linux.c (grub_linux_setup_video): Use
	grub_video_get_info_and_fini.
	(grub_linux_boot): Move modesetting just before booting.
	* loader/i386/pc/xnu.c (grub_xnu_set_video): Use
	grub_video_get_info_and_fini.
	* video/i386/pc/vbe.c: Moved framebuffer part ...
	* video/fb/video_fb.c: ... here. Replaced 'vbe' with 'fb'.
	* video/i386/pc/vbe.c (grub_vbe_set_video_mode): Use
	grub_video_fbstd_colors and grub_video_fb_set_palette.
	(grub_video_vbe_init): Clear 'framebuffer' variable and use
	grub_video_fb_init.
	(grub_video_vbe_fini): Use grub_video_fb_fini.
	(grub_video_vbe_setup): Use framebuffer.render_target instead of
	render_target and use grub_video_fb_set_active_render_target and
	grub_video_fb_set_palette.
	(grub_video_vbe_set_palette): Use grub_video_fb_set_palette.
	(grub_video_vbe_set_viewport): Use grub_video_fb_set_viewport.
	(grub_video_vbe_adapter): Use framebuffer.
	* video/video.c (grub_video_get_info_and_fini): New function.
	(grub_video_set_mode): Make modestring const char *.
	(GRUB_MOD_INIT(video_video)): Don't set variables to 0 since these
	values are already initialised.
2009-08-14 12:41:58 +00:00
robertmh
81623db677 2009-08-10 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/bsd.h (KERNEL_TYPE_NONE, KERNEL_TYPE_FREEBSD)
        (KERNEL_TYPE_OPENBSD, KERNEL_TYPE_NETBSD): Convert to ...
        (bsd_kernel_types): ... this enum.

        * loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module)
        (grub_cmd_freebsd_module_elf): Abort with "You need to load the
        kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE.

        (grub_bsd_load_aout, grub_bsd_load, grub_cmd_freebsd_loadenv)
        (grub_cmd_freebsd_module, grub_cmd_freebsd_module_elf)
        (GRUB_MOD_INIT (bsd)): Fix capitalization in a few error
        messages.
2009-08-10 15:42:39 +00:00
robertmh
388a7c7593 2009-07-28 Robert Millan <rmh.grub@aybabtu.com>
* loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as
        separator for the suggested gfxpayload string (';' collides with the
        parser and needs escaping).
2009-07-28 21:40:34 +00:00