Commit Graph

189 Commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko
035a008c13 Remove leftover 2009-12-02 11:44:29 +01:00
Vladimir 'phcoder' Serbinenko
537ee0a5f1 Merge relocators into mips 2009-12-02 09:55:04 +01:00
Vladimir 'phcoder' Serbinenko
159194989d Ported xnu to relocator framework 2009-11-27 09:42:50 +01:00
Vladimir 'phcoder' Serbinenko
105b69abbd merged relocators into mips 2009-11-26 21:42:31 +01:00
Vladimir 'phcoder' Serbinenko
636813f768 Split relocators from mips branch 2009-11-25 23:39:59 +01:00
Vladimir 'phcoder' Serbinenko
bde358ac91 merged with mainline 2009-11-25 23:17:32 +01:00
Vladimir 'phcoder' Serbinenko
0e8489094a mainstream merged into pci 2009-11-25 15:15:30 +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
5acc2aba78 merged mainline into PCI 2009-11-23 11:15:24 +01:00
Vladimir 'phcoder' Serbinenko
5afcd00788 merge mainstream into mips 2009-11-21 21:45:32 +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
Vladimir 'phcoder' Serbinenko
da547ac323 merged with mainstream 2009-11-09 21:16:25 +01:00
Robert Millan
c02a733496 Add a few files that were lost during transition from svn. 2009-11-08 16:57:31 +00:00
Vladimir 'phcoder' Serbinenko
b0979f1191 Cleaned up CS5536 ATA compat support 2009-11-06 22:50:44 +01:00
Vladimir 'phcoder' Serbinenko
1b4595cebf AT keyboard support for Yeeloong 2009-11-02 23:57:09 +01:00
Vladimir 'phcoder' Serbinenko
810d8224cd PCI cleanup 2009-11-02 23:42:07 +01:00
phcoder
0f8d98dad2 Merge branch 'pci' into mips 2009-10-22 14:32:09 +02:00
phcoder
cba2cae2f5 simplified serial 2009-10-18 11:49:09 +02:00
phcoder
459fed4b98 pciaccess 2009-10-14 18:17:18 +02:00
phcoder
325c8258e7 lspci works in grub-emu 2009-10-14 10:36:37 +02:00
phcoder
3affd0ece8 libpci initial stuff 2009-10-14 10:11:59 +02:00
phcoder
6cb9ffbd75 Merge branch 'relocator' into mips 2009-10-11 22:21:28 +02:00
phcoder
f651d13a18 split serial 2009-10-10 20:59:18 +02:00
robertmh
86564c267a 2009-10-09 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/cpuid.h: Add header protection.
2009-10-09 18:23:48 +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
robertmh
74c958b180 2009-09-24 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/at_keyboard.h (KEYBOARD_ISREADY): Negate
        return value.
        * term/i386/pc/at_keyboard.c (grub_keyboard_getkey): Negate
        KEYBOARD_ISREADY check.
        (grub_at_keyboard_checkkey): Rename to ...
        (grub_at_keyboard_getkey_noblock): ... this.  Update all users.
        Remove gratuitous cast.
2009-09-24 13:15:51 +00:00
phcoder
8f2e29a2a3 Merge branch 'mainline' into relocator 2009-09-20 19:38:16 +02:00
phcoder
64bf71d0b1 2009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
* include/grub/i386/xnu.h: Add license header.
	include grub/err.h explicitly.
2009-08-29 12:57:38 +00:00
cjwatson
4cbe67e509 2009-08-28 Colin Watson <cjwatson@ubuntu.com>
2009-08-28  Robert Millan  <rmh.grub@aybabtu.com>

	Add `getkeystatus' terminal method.  Add a new `keystatus' command
	to query it.

	* include/grub/term.h (GRUB_TERM_STATUS_SHIFT,
	GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for
	modifier key bitmasks.
	(struct grub_term_input): Add `getkeystatus' member.
	(grub_getkeystatus): Add prototype.
	* kern/term.c (grub_getkeystatus): New function.

	* include/grub/i386/pc/memory.h
	(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro.
	(struct grub_machine_bios_data_area): Define necessary parts of BIOS
	Data Area layout.
	* term/i386/pc/console.c (grub_console_getkeystatus): New function.
	(grub_console_term_input): Set `getkeystatus' member.
	* term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol
	constants.
	(grub_usb_keyboard_getreport): Likewise.
	(grub_usb_keyboard_checkkey): Likewise.
	(grub_usb_keyboard_getkeystatus): New function.
	(grub_usb_keyboard_term): Set `getkeystatus' member.

	* commands/keystatus.c: New file.
	* conf/common.rmk (pkglib_MODULES): Add keystatus.mod.
	(keystatus_mod_SOURCES): New variable.
	(keystatus_mod_CFLAGS): Likewise.
	(keystatus_mod_LDFLAGS): Likewise.
	* conf/i386-coreboot.rmk (grub_emu_SOURCES): Add
	commands/keystatus.c.
	* conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
	* conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
	* conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
	* DISTLIST: Add commands/keystatus.c.
2009-08-28 13:20:34 +00: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
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
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
Vladimir 'phcoder' Serbinenko
5e03640baf Merge branch 'mainline' into relocator
Conflicts:
	loader/i386/multiboot.c
2009-08-23 01:31:12 +02: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
Vladimir 'phcoder' Serbinenko
b131c45455 Improvements for Apple? 2009-08-05 19:58:05 +02:00
Vladimir 'phcoder' Serbinenko
5c29f4d962 Improvements 2009-08-05 19:30:43 +02:00
robertmh
f56a875639 2009-08-04 Robert Millan <rmh.grub@aybabtu.com>
Fix a bug resulting in black screen when loading Linux using a
        packed video mode.

        * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width): New
        function.

        * include/grub/i386/pc/vbe.h (GRUB_VBE_CAPABILITY_DACWIDTH): New macro.
        (grub_vbe_bios_getset_dac_palette_width): New function.
        (grub_vbe_bios_get_dac_palette_width)
        (grub_vbe_bios_set_dac_palette_width): New macros (act as wrappers for
        grub_vbe_bios_getset_dac_palette_width()).

        * video/i386/pc/vbe.c (grub_vbe_probe): Use `GRUB_VBE_STATUS_OK' to
        check for return status.
        (grub_vbe_get_video_mode_info): When getting information for a packed
        mode (<= 8 bpp), obtain DAC palette width using
        grub_vbe_bios_getset_dac_palette_width(), and use that for initializing
        {red,green,blue}_mark_size.
2009-08-04 21:28:19 +00:00
Vladimir 'phcoder' Serbinenko
7c8f178d02 realloc 2009-08-03 14:30:51 +02:00
Vladimir 'phcoder' Serbinenko
e7573c5ce2 lib/relocator 2009-08-03 12:48:25 +02:00
proski
5680109e00 2009-07-19 Pavel Roskin <proski@gnu.org>
* Makefile.in: Remove LIBLZO and enable_lzo.
	* conf/i386-pc.rmk: Remove lzo support.
	* configure.ac: Remove checks for lzo, don't define ENABLE_LZMA.
	* include/grub/i386/pc/kernel.h: Define ENABLE_LZMA.  Remove lzo
	support.
	* kern/i386/pc/lzo1x.S: Remove.
	* kern/i386/pc/startup.S: Remove lzo support.
	* util/i386/pc/grub-mkimage.c: Likewise.
2009-07-19 20:23:33 +00:00
proski
fde24e10a8 2009-07-15 Pavel Roskin <proski@gnu.org>
* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END):
	Increase to 0x5a to accommodate FAT32.  Adjust other offsets
	accordingly.
	Original patch by Yves Blusseau <yves.grub-devel@zetam.org>
2009-07-15 15:06:12 +00:00
proski
40b132c562 2009-07-15 Pavel Roskin <proski@gnu.org>
* boot/i386/pc/boot.S (boot_version): Remove.
	* include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
	Remove.
2009-07-15 14:55:24 +00:00
proski
2059157753 2009-07-15 Pavel Roskin <proski@gnu.org>
* include/grub/i386/pc/boot.h: Sort all offsets.
	(GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused.
	(GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise.
	* boot/i386/pc/boot.S: Assert location of every offset listed in
	include/grub/i386/pc/boot.h.
2009-07-15 14:54:18 +00:00
proski
44b5d87973 2009-07-13 Pavel Roskin <proski@gnu.org>
* include/grub/i386/coreboot/machine.h: Rename
	GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT.
	* loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow
	multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU.
2009-07-13 23:57:11 +00:00
proski
bab7495862 2009-07-05 Pavel Roskin <proski@gnu.org>
* include/grub/i386/linux.h (struct linux_kernel_params):
	Restore padding3, it's still needed.
2009-07-06 02:10:57 +00:00
robertmh
2da9229550 2009-07-04 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/linux.h (struct linux_kernel_params): Add
        `capabilities' member.
2009-07-04 16:29:01 +00:00
robertmh
a337130b25 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
        type to `grub_uint8_t', and adjust `padding9' accordingly.
2009-07-01 01:04:12 +00:00
robertmh
b09db61ddd 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro.

        * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
        assembly in final jump, using register constraints.

        (grub_linux_boot): For text mode, initialize `have_vga' using
        GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1).

        Initialize `video_cursor_x' and `video_cursor_y' as late as possible,
        right before the final jump.

        Set `video_mode' to 0x3.

        Document initialization of `video_page', `video_mode' and
        `video_ega_bx'.
2009-06-29 17:19:35 +00:00
robertmh
28333ad04f 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
* include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
        * loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option,
        and set GRUB_LINUX_FLAG_QUIET appropiately.
2009-06-29 12:20:56 +00:00