Commit graph

4773 commits

Author SHA1 Message Date
Colin Watson
c2a4eba698 * .bzrignore: Add *.pp, **/.dirstamp, grub-core/*.module, and
grub-core/*.pp.
2010-09-02 22:42:36 +01:00
Colin Watson
9056cbf38e Zero %ebp and %edi when entering Linux's 32-bit entry point, as
required by the boot protocol.
* include/grub/i386/relocator.h (struct grub_relocator32_state): Add
ebp and edi members.
* grub-core/lib/i386/relocator.c (grub_relocator_boot): Handle
state.ebp and state.edi.
* grub-core/lib/i386/relocator32.S (grub_relocator32_start): Set
%ebp and %edi according to grub_relocator32_ebp and
grub_relocator32_edi respectively.
* grub-core/loader/i386/linux.c (grub_linux_boot): Zero state.ebp
and state.edi.
2010-09-02 22:36:09 +01:00
Vladimir 'phcoder' Serbinenko
8395034bec Add i386-pc-pxe image target.
* util/grub-mkimage.c (image_target_desc): New enum value
	IMAGE_I386_PC_PXE.
	(image_targets): New target i386-pc-pxe.
	(generate_image): Handle i386-pc-pxe image.
2010-09-02 17:15:53 +02:00
Vladimir 'phcoder' Serbinenko
529cc99acf Add i386-pc-pxe image target.
* util/grub-mkimage.c (image_target_desc): New enum value
	IMAGE_I386_PC_PXE.
	(image_targets): New target i386-pc-pxe.
	(generate_image): Handle i386-pc-pxe image.
2010-09-02 16:07:52 +02:00
Vladimir 'phcoder' Serbinenko
9a09392057 Fix grub_pxe_scan.
* grub-core/fs/i386/pc/pxe.c (grub_pxe_pxenv): Put correct type bangpxe.
	(grub_pxe_scan): Fix types and pxe_rm_entry computation.
	All users updated.
	* include/grub/i386/pc/pxe.h (grub_pxe_bangpxe): New struct.
	(grub_pxe_pxenv): Correct type.
2010-09-02 15:47:03 +02:00
Colin Watson
f9cefc4eb3 * NEWS: Document most of the important changes since 1.98. 2010-09-01 18:15:46 +01:00
Colin Watson
4066f57f19 * util/grub-mkrescue.in (usage): Tidy up usage output (and hence
generated manual page) a little.
2010-09-01 10:32:34 +01:00
Colin Watson
da2891f962 * docs/grub.texi: Add myself as an author. 2010-09-01 10:29:30 +01:00
Tristan Gingold
41a331a8d3 * grub-core/commands/efi/lsefimmap.c: New file.
* grub-core/Makefile.core.def (lsefimmap): New module.
	* include/grub/efi/api.h (PRIxGRUB_EFI_UINTN_T): New definition.

	Also-By: Robert Millan <rmh.grub@aybabtu.com>

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-01 10:12:41 +02:00
Vladimir 'phcoder' Serbinenko
48798b6a1e Fix memory leak 2010-09-01 09:34:09 +02:00
Tristan Gingold
105de6a758 * grub-core/commands/efi/lsefisystab.c: New file.
* grub-core/commands/efi/lssal.c: Likewise.
	* grub-core/Makefile.core.def (lsacpi): New module.
	(lsefisystab): Likewise.
	* include/grub/efi/api.h (GRUB_EFI_SAL_TABLE_GUID): New definition.
	(GRUB_EFI_HCDP_TABLE_GUID): Likewise.
	(grub_efi_sal_system_table): New struct.
	(grub_efi_sal_system_table_entrypoint_descriptor): Likewise.
	(grub_efi_sal_system_table_memory_descriptor): Likewise.
	(grub_efi_sal_system_table_platform_features): Likewise.
	(grub_efi_sal_system_table_translation_register_descriptor): Likewise.
	(grub_efi_sal_system_table_purge_translation_coherence): Likewise.
	(grub_efi_sal_system_table_ap_wakeup): Likewise.
	* include/grub/types.h (PRIuGRUB_UINT64_T): New definition.

	Also-By: Robert Millan <rmh.grub@aybabtu.com>

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-01 02:37:17 +02:00
Vladimir 'phcoder' Serbinenko
ad717faeff * Makefile.util.def (libgrub.a): Add missing sunpc.
Reported by: Seth Goldberg.
2010-09-01 01:09:00 +02:00
Tristan Gingold
1782b135e5 * commands/lsacpi.c: New file.
* grub-core/Makefile.core.def (lsacpi): New module.
	* include/grub/acpi.h (GRUB_ACPI_FADT_SIGNATURE): New definition.
	(GRUB_ACPI_MADT_SIGNATURE): Likewise.
	(grub_acpi_madt_entry_header): New struct.
	(grub_acpi_madt): Likewise.
	(grub_acpi_madt_entry_interrupt_override): Likewise.
	(grub_acpi_madt_entry_sapic): Likewise.
	(grub_acpi_madt_entry_lsapic): Likewise.
	(grub_acpi_madt_entry_platform_int_source): Likewise.
	* include/grub/types.h (PRIxGRUB_UINT32_T): New definition.
	(PRIuGRUB_UINT32_T): Likewise.
	(PRIxGRUB_UINT64_T): Likewise.

	Also-By: Robert Millan <rmh.grub@aybabtu.com>

	Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-01 01:05:32 +02:00
Vladimir 'phcoder' Serbinenko
70770806f3 Merge mainline into keylayouts 2010-08-31 14:12:34 +02:00
Vladimir 'phcoder' Serbinenko
5aaf2c18bd Merge mainline into keylayouts 2010-08-31 14:03:29 +02:00
Vladimir 'phcoder' Serbinenko
21ed554bb0 Interrupt wrapping and code simplifications.
* Makefile.util.def (grub-mkrescue): Use x86 tg instead of
	x86_noieee1275 which are functionaly equivalent in this case.
	(grub-install): Make source on each platform explicit. Enable on
	all noemu.
	* gentpl.py (x86_efi_pc): Removed group.
	(x86_noefi): Likewise.
	(i386_noefi): Likewise.
	(x86_noieee1275): Likewise.
	(i386_noieee1275): Likewise.
	(i386_noefi_noieee1275): Likewise.
	(i386_pc_qemu_coreboot): Likewise.
	(i386_coreboot_multiboot): Likewise.
	(i386_pc_coreboot_multiboot_qemu): Likewise.
	(x86_noefi_mips): Likewise.
	(noieee1275): Likewise.
	(ieee1275_mips): Likewise.
	(noemu_noieee1275): Likewise.
	(cmos): New group.
	(usb): Likewise.
	(videoinkernel): Likewise.
	(videomodules): Likewise.
	* grub-core/Makefile.am (KERNEL_HEADER_FILES): Remove
	include/grub/elf.h, include/grub/elfload.h, include/grub/net.h,
	include/grub/reader.h, include/grub/symbol.h, include/grub/types.h,
	include/grub/loader.h, include/grub/msdos_partition.h,
	include/grub/machine/biosdisk.h, include/grub/machine/boot.h,
	include/grub/machine/console.h, include/grub/machine/vga.h,
	include/grub/machine/vbe.h, include/grub/machine/init.h,
	include/grub/machine/kernel.h, include/grub/cpu/time.h,
	include/grub/cpu/types.h, include/grub/gzio.h and include/grub/menu.h
	(KERNEL_HEADER_FILES) [i386-pc]: Add include/grub/machine/int.h.
	(KERNEL_HEADER_FILES) [i386-ieee1275]: Add include/grub/i386/pit.h
	* grub-core/Makefile.core.def (kernel): Explicit the source for
	startup. Explicit the platforms using kern/generic/rtc_get_time_ms.c.
	Split ieee1275_mips. Remove kern/i386/halt.c. Remove kern/i386/misc.S.
	Enable kern/i386/pit.c on all x86. Remove kern/i386/ieee1275/init.c.
	Use videoinkernel tag.
	(usb): Enable on all usb.
	(usbserial_common): Likewise.
	(usbserial_pl2303): Likewise.
	(usbserial_ftdi): Likewise.
	(uhci): Enable on all x86.
	(ohci): Enable on all pci.
	(cmostest): Enable on all CMOS.
	(acpi): Include commands/acpi.c on all platforms.
	(halt): Add relevant lib/*/halt.c.
	(hdparm): Enable on all pci.
	(lspci): Likewise.
	(usbtest): Enable on all usb.
	(ata): Enable on all pci.
	(ata_pthru): Likewise.
	(usbms): Enable on all usb.
	(usb_keyboard): Likewise.
	(font): Use tag videomodules.
	(bufio): Likewise.
	(datetime): Use tag cmos. Enable on all noemu.
	(mmap): Use tags common and x86.
	(gfxterm): Use tag videomodules.
	(bitmap): Likewise.
	(bitmap_scale): Likewise.
	(video_fb): Likewise.
	(video): Likewise.
	* grub-core/bus/usb/ohci.c (grub_ohci_td): Make link_td a pointer and
	adjust padding accordingly. All users updated.
	(grub_ohci_transaction): Fix bad format specification.
	(GRUB_MOD_INIT): Add asserts for struct size.
	* grub-core/bus/usb/uhci.c (grub_uhci_pci_iter): Add explicit casts.
	(grub_alloc_td): Likewise.
	(grub_free_queue): Likewise.
	(grub_uhci_transfer): Likewise.
	(grub_uhci_transaction): Fix bad format specification.
	* grub-core/bus/usb/usbtrans.c (grub_usb_control_msg): Likewise.
	(grub_usb_bulk_readwrite): Likewise.
	* grub-core/kern/i386/misc.S (grub_stop): Moved from here ...
	* grub-core/commands/i386/pc/halt.c (stop): ...here. Transformed into C.
	Made static.
	* grub-core/lib/i386/halt.c (stop): ... and here. Transformed into C.
	Made static.
	* grub-core/kern/i386/pc/startup.S (grub_halt): Moved from here ...
	* grub-core/commands/i386/pc/halt.c (grub_halt): ...here.
	Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_int13_extensions):
	Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_int13_extensions):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_biosdisk_rw_standard):
	Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_rw_standard):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_check_int13_extensions): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_check_int13_extensions): ... here. Transformed into C.
	Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_cdinfo_int13_extensions): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_cdinfo_int13_extensions): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_diskinfo_int13_extensions): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_diskinfo_int13_extensions): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_diskinfo_standard): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_diskinfo_standard): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S
	(grub_biosdisk_get_num_floppies): Moved from here ...
	* grub-core/disk/i386/pc/biosdisk.c
	(grub_biosdisk_get_num_floppies): ... here.
	Transformed into C. Made static.
	* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_get_diskinfo_real):
	New function.
	* grub-core/kern/i386/pc/startup.S (grub_pxe_scan): Moved from here ...
	* grub-core/fs/i386/pc/pxe.c (grub_pxe_scan): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_rm_entry): Moved from here ...
	* grub-core/fs/i386/pc/pxe.c (grub_rm_entry): ... here.
	Transformed into C. Made static.
	* grub-core/kern/i386/ieee1275/init.c: Removed.
	* grub-core/kern/i386/misc.S: Likewise.
	* grub-core/kern/i386/pc/startup.S (grub_get_memsize):
	Splitted from here ...
	* grub-core/kern/i386/pc/init.c (grub_get_conv_memsize): ... here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/mmap.c (grub_get_ext_memsize): ... and here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/startup.S (grub_get_eisa_mmap):
	Moved from here...
	* grub-core/kern/i386/pc/mmap.c (grub_get_eisa_mmap): ... here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/startup.S (grub_get_mmap_entry):
	Moved from here...
	* grub-core/kern/i386/pc/mmap.c (grub_get_mmap_entry): ... here.
	Transformed into C. Made static. All users updated.
	* grub-core/kern/i386/pc/startup.S (grub_stop_floppy):
	Removed (replaced by C version).
	* grub-core/kern/i386/pc/startup.S (grub_vga_set_mode):
	Moved from here...
	* grub-core/video/i386/pc/vga.c (grub_vga_set_mode): ...here.
	Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_controller_info):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_controller_info):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode_info):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode_info):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_mode):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_mode):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_mode):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_mode):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S
	(grub_vbe_bios_getset_dac_palette_width):Moved from here...
	* grub-core/video/i386/pc/vbe.c
	(grub_vbe_bios_getset_dac_palette_width):... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_memory_window):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_memory_window):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_memory_window):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_memory_window):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_scanline_length):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_scanline_length):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_scanline_length):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_scanline_length):
	... here. Transformed into C.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_display_start):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_display_start):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_get_display_start):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_get_display_start):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_vbe_bios_set_palette_data):
	Moved from here...
	* grub-core/video/i386/pc/vbe.c (grub_vbe_bios_set_palette_data):
	... here. Transformed into C. Made static.
	* grub-core/kern/i386/pc/startup.S (grub_pxe_call): Receive
	pxe_rm_entry as third argument.
	(grub_bios_interrupt): New function.
	* grub-core/kern/i386/qemu/mmap.c: Remove useless include.
	* grub-core/kern/i386/qemu/startup.S (codestart): Do cli;hlt instead
	of calling grub_stop.
	* grub-core/kern/efi/efi.c (grub_halt): Moved from here ...
	* grub-core/lib/efi/halt.c (grub_halt): ...here.
	* grub-core/kern/emu/main.c (grub_halt): Moved from here ...
	* grub-core/lib/emu/halt.c (grub_halt): ... here.
	* grub-core/lib/i386/halt.c: Moved from here ...
	* grub-core/lib/i386/halt.c: ... here.
	* grub-core/kern/ieee1275/openfw.c (grub_halt): Moved from here ...
	* grub-core/lib/ieee1275/halt.c (grub_halt): ... here.
	* grub-core/loader/i386/pc/linux.c (grub_linux16_boot): Call
	grub_stop_floppy.
	* grub-core/loader/i386/xnu.c (guessfsb) [IEEE1275]: Enable.
	* include/grub/i386/coreboot/init.h: Removed.
	* include/grub/i386/multiboot/init.h: Likewise.
	* include/grub/i386/pc/biosdisk.h: Removed all function prototypes.
	* include/grub/i386/pc/init.h: Likewise except grub_gate_a20.
	* include/grub/i386/pc/int.h: New file.
	* include/grub/i386/pc/pxe.h (GRUB_PXE_SIGNATURE): New definition.
	(grub_pxe_scan): Removed.
	(grub_pxe_call): Update prototype.
	* include/grub/i386/pc/vbe.h: Removed EXPORT_FUNC and useless
	prototypes.
	* include/grub/i386/pc/vga.h (grub_vga_set_mode): Removed.
	* include/grub/i386/qemu/init.h: Removed.
	* include/grub/mips/yeeloong/kernel.h (grub_reboot): Add missing
	noreturn.
	(grub_halt): Likewise.
	* include/grub/misc.h (grub_halt): Removed EXPORT_FUNC.
	(grub_reboot): Likewise.
	* grub-core/kern/i386/coreboot/init.c (grub_stop_floppy): Moved from here...
	* include/grub/i386/floppy.h (grub_stop_floppy): ...here. Inlined.
	* grub-core/kern/i386/pc/startup.S (grub_hard_stop): Removed.
2010-08-30 22:02:58 +02:00
Robert Millan
215dd4716e 2010-08-30 Robert Millan <rmh@gnu.org>
* NEWS: Document addition of ZFS support in `grub-install' and
	`grub-mkconfig'.
2010-08-30 21:55:10 +02:00
Colin Watson
861d5b5c72 Import EFI patch by cjwatson 2010-08-30 21:00:48 +02:00
Vladimir 'phcoder' Serbinenko
6c2111e96c Adapt common grub-install for efi and use it 2010-08-30 20:27:59 +02:00
Vladimir 'phcoder' Serbinenko
11721d1926 Remove leftover embedding of font objects.
* include/grub/kernel.h (OBJ_TYPE_FONT): Removed.
	* util/grub-install.in (font): Removed.
	* util/grub-mkimage.c (generate_image): Remove font support. All users
	updated.
2010-08-30 20:23:04 +02:00
Vladimir 'phcoder' Serbinenko
00cf36062b Merge mainline into install 2010-08-30 19:58:00 +02:00
Vladimir 'phcoder' Serbinenko
37837d4ecb Remove leftover embedding of font objects.
* include/grub/kernel.h (OBJ_TYPE_FONT): Removed.
	* util/grub-install.in (font): Removed.
	* util/grub-mkimage.c (generate_image): Remove font support. All users
	updated.
2010-08-30 19:48:10 +02:00
Vladimir 'phcoder' Serbinenko
8111f933ec remove ieee1275/grub-install and adapt grub-install for ieee1275 2010-08-30 19:30:34 +02:00
Vladimir 'phcoder' Serbinenko
9494ef9aaf Add ChangeLog 2010-08-30 16:28:01 +02:00
Vladimir 'phcoder' Serbinenko
0f40441b91 Remove useless prototypes 2010-08-30 16:26:05 +02:00
Vladimir 'phcoder' Serbinenko
b0ea3a5a93 Add missing noreturn 2010-08-30 16:25:39 +02:00
Vladimir 'phcoder' Serbinenko
949737be16 Fix alignment and add explicit assert for td and ed size 2010-08-30 16:25:14 +02:00
Vladimir 'phcoder' Serbinenko
eefe8abd52 Dimplify tags and enable USB on more platforms 2010-08-30 15:13:38 +02:00
BVK Chaitanya
ebd65b82dc remove leading / in dprintf output 2010-08-30 09:37:35 +05:30
Vladimir 'phcoder' Serbinenko
23e2a517ad merge mainline into intwrap 2010-08-30 03:26:09 +02:00
Vladimir 'phcoder' Serbinenko
e176a764ee Add missing Reported by 2010-08-30 02:01:59 +02:00
Vladimir 'phcoder' Serbinenko
b4c1aae0f1 * docs/grub.texi (Network): Fix reference to pxe_blksize. 2010-08-30 01:56:35 +02:00
Vladimir 'phcoder' Serbinenko
8920a08d87 * grub-core/normal/menu.c (grub_wait_after_message): Add a 10 second
timeout to avoid indefinite boot stalling.
2010-08-30 01:14:07 +02:00
Vladimir 'phcoder' Serbinenko
f21db0332f * grub-core/normal/color.c (grub_env_write_color_normal): Fix a warning.
(grub_env_write_color_highlight): Likewise.
2010-08-30 01:12:37 +02:00
Vladimir 'phcoder' Serbinenko
9a9de209a2 * grub-core/normal/term.c (print_more): Return to normal and not
to standard state after printing "---MORE---".
2010-08-30 01:11:12 +02:00
Vladimir 'phcoder' Serbinenko
3dca01d7e3 * grub-core/term/i386/vga_common.c (grub_console_setcolorstate):
Mask out the bit 0x80 since it has other meaning that specifiing color.
2010-08-30 01:09:28 +02:00
Vladimir 'phcoder' Serbinenko
69d6fc5603 Use interrupt endpoint for hubs 2010-08-30 01:04:07 +02:00
Vladimir 'phcoder' Serbinenko
37e67a273b Add missing emu/halt.c 2010-08-30 00:54:15 +02:00
Vladimir 'phcoder' Serbinenko
069c9c5fda merge mainline into intwrap 2010-08-29 23:21:21 +02:00
Vladimir 'phcoder' Serbinenko
51c23159b1 New relocator. Allows for more kernel support and more straightforward
loader writing.

	* Makefile.am (BOOTTARGET): New variable.
	(QEMU32): Likewise.
	(linux.init.x86_64): New target.
	(linux.init.i386): Likewise.
	(multiboot.elf): Likewise.
	(kfreebsd.elf): Likewise.
	(kfreebsd.aout): Likewise.
	(pc-chainloader.elf): Likewise.
	(pc-chainloader.bin): Likewise.
	(ntldr.elf): Likewise.
	(ntldr.bin): Likewise.
	(multiboot2.elf): Likewise.
	(kfreebsd.init.x86_64): Likewise.
	(kfreebsd.init.i386): Likewise.
	(knetbsd.init.i386): Likewise.
	(kopenbsd.init.i386): Likewise.
	(knetbsd.init.x86_64): Likewise.
	(kopenbsd.init.x86_64): Likewise.
	(linux-initramfs.i386): Likewise.
	(linux-initramfs.x86_64): Likewise.
	(kfreebsd-mfsroot.i386.img): Likewise.
	(knetbsd.image.i386): Likewise.
	(kopenbsd.image.i386): Likewise.
	(kopenbsd.image.x86_64): Likewise.
	(knetbsd.miniroot-image.i386.img): Likewise.
	(kfreebsd-mfsroot.x86_64.img): Likewise.
	(knetbsd.image.x86_64): Likewise.
	(knetbsd.miniroot-image.x86_64.img): Likewise.
	(kfreebsd-mfsroot.i386.gz): Likewise.
	(bootcheck-kfreebsd-i386): Likewise.
	(kfreebsd-mfsroot.x86_64.gz): Likewise.
	(bootcheck-kfreebsd-x86_64): Likewise.
	(knetbsd.miniroot-image.i386.gz): Likewise.
	(bootcheck-knetbsd-i386): Likewise.
	(bootcheck-kopenbsd-i386): Likewise.
	(bootcheck-kopenbsd-x86_64): Likewise.
	(knetbsd.miniroot-image.x86_64.gz): Likewise.
	(bootcheck-knetbsd-x86_64): Likewise.
	(bootcheck-linux-i386): Likewise.
	(bootcheck-linux-x86_64): Likewise.
	(bootcheck-linux16-i386): Likewise.
	(bootcheck-linux16-x86_64): Likewise.
	(bootcheck-multiboot): Likewise.
	(bootcheck-multiboot2): Likewise.
	(bootcheck-kfreebsd-aout): Likewise.
	(bootcheck-pc-chainloader): Likewise.
	(bootcheck-ntldr): Likewise.
	(CLEANFILES): Add new targets.
	(BOOTCHECKS): New variable.
	(.PHONY): Add bootchecks.
	(SUCCESSFUL_BOOT_STRING): New variable.
	(BOOTCHECK_TIMEOUT): Likewise.
	(bootcheck): New target
	* Makefile.util.def (grub-mkrescue): Enable on i386-multiboot.
	* configure.ac: Correct efiemu excuse.
	* docs/grub.texi (Supported kernels): New chapter.
	* grub-core/Makefile.am (KERNEL_HEADER_FILES): Add
	include/grub/mm_private.h. Simplify inclusion of
	include/grub/boot.h, include/grub/loader.h
	and include/grub/msdos_partition.h
	(KERNEL_HEADER_FILES) [i386_coreboot]:
	Remove include/grub/machine/loader.h. Add include/grub/i386/pit.h.
	(KERNEL_HEADER_FILES) [i386_multiboot]: Likewise.
	(KERNEL_HEADER_FILES) [i386_qemu]: Likewise.
	(KERNEL_HEADER_FILES) [i386_ieee1275]: Remove
	include/grub/machine/loader.h.
	(KERNEL_HEADER_FILES) [x86_64-efi]: Likewise.
	* grub-core/Makefile.core.def (kernel): Remove kern/i386/loader.S from
	extra_dist.
	(pci.mod): Enable on i386-multiboot.
	(acpi.mod): Enable on i386-multiboot and i386-coreboot.
	(efiemu.mod): Enable on i386-coreboot, i386-ieee1275, i386-multiboot and
	i386-qemu.
	(relocator.mod): Rewritten.
	(aout.mod): Enable on all x86.
	(bsd.mod): Likewise.
	(ntldr.mod): New module.
	(linux.mod): Use loader/i386/linux.c on all x86.
	(xnu.mod): Enable on all x86.
	(vga_text.mod): disable on EFI and QEMU.
	* grub-core/efiemu/i386/coredetect.c: Remove useless include.
	* grub-core/efiemu/i386/pc/cfgtables.c: Likewise.
	* grub-core/efiemu/loadcore.c: Likewise.
	* grub-core/efiemu/main.c: Likewise.
	(grub_efiemu_exit_boot_services): Removed.
	(grub_efiemu_finish_boot_services): Likewise.
	* grub-core/efiemu/mm.c (grub_efiemu_finish_boot_services): New
	function.
	* grub-core/efiemu/i386/nocfgtables.c: New file.
	* grub-core/kern/dl.c (grub_dl_unload_all): Removed.
	* grub-core/kern/efi/efi.c (grub_efi_exit_boot_services): Removed.
	(grub_efi_finish_boot_services): Moved from here ...
	* grub-core/kern/efi/mm.c (grub_efi_finish_boot_services): ...here.
	Fille finish memory map and related data.
	(finish_mmap_buf): New variable.
	(grub_efi_uintn_t finish_mmap_size): Likewise.
	(grub_efi_uintn_t finish_key): Likewise.
	(grub_efi_uintn_t finish_desc_size): Likewise.
	(grub_efi_uint32_t finish_desc_version): Likewise.
	(grub_efi_is_finished): Likewise.
	(grub_efi_get_memory_map): Use saved memory map if EFI is already
	finished.
	* grub-core/kern/elf.c (grub_elf32_phdr_iterate): Make global.
	(grub_elf64_phdr_iterate): Likewise.
	* grub-core/kern/i386/coreboot/init.c (grub_os_area_addr): Removed.
	(grub_os_area_size): Likewise.
	(grub_machine_init): Don't reserve os area.
	* grub-core/kern/i386/coreboot/startup.S: Don't include loader.S.
	* grub-core/kern/i386/ieee1275/startup.S: Likewise.
	* grub-core/kern/i386/loader.S: Removed.
	* grub-core/kern/i386/pc/init.c (grub_os_area_addr): Removed.
	(grub_os_area_size): Likewise.
	(grub_machine_init): Don't reserve os area.
	* grub-core/kern/i386/pc/startup.S (grub_chainloader_real_boot):
	Don't call grub_dl_unload_all.
	Don't include loader.S.
	* grub-core/kern/i386/qemu/mmap.c (grub_machine_mmap_iterate):
	Declare the memory after _end as available.
	* grub-core/kern/mm.c (GRUB_MM_FREE_MAGIC): Moved from here...
	* include/grub/mm_private.h (GRUB_MM_FREE_MAGIC): ... here.
	(GRUB_MM_ALLOC_MAGIC): Moved from here...
	* include/grub/mm_private.h (GRUB_MM_ALLOC_MAGIC): ... here.
	* grub-core/kern/mm.c (grub_mm_header): Moved from here...
	* include/grub/mm_private.h (grub_mm_header): ... here.
	* grub-core/kern/mm.c (GRUB_MM_ALIGN): Moved from here...
	* include/grub/mm_private.h (GRUB_MM_ALIGN): ... here.
	* grub-core/kern/mm.c (grub_mm_region): Moved from here ...
	(grub_mm_region): ..here. Removed addr. Added pre_size.
	All users updated.
	* grub-core/kern/mm.c (base): Renamed to ...
	(grub_mm_base): ... this. Made global.
	(grub_real_malloc): Alloc from end of region.
	(grub_memalign): Don't attempt to malloc if grub_mm_base is NULL.
	* grub-core/kern/powerpc/cache.S (grub_arch_sync_caches): Move to ...
	* grub-core/kern/powerpc/cache_flush.S: ... here.
	* grub-core/lib/efi/relocator.c: New file.
	* grub-core/lib/i386/relocator.c: Rewritten.
	* grub-core/lib/i386/relocator16.S: New file.
	* grub-core/lib/i386/relocator32.S: Likewise.
	* grub-core/lib/i386/relocator64.S: Likewise.
	* grub-core/lib/i386/relocator_asm.S: Rewritten.
	* grub-core/lib/i386/relocator_common.S: New file.
	* grub-core/lib/ieee1275/relocator.c: Likewise.
	* grub-core/lib/mips/relocator.c: Rewritten.
	* grub-core/lib/mips/relocator_asm.S: Renamed variables and minor
	stylistic adjustments.
	* grub-core/lib/powerpc/relocator.c: New file.
	* grub-core/lib/powerpc/relocator_asm.S: Likewise.
	* grub-core/lib/relocator.c: Rewritten.
	* grub-core/lib/x86_64/relocator_asm.S: New file.
	* grub-core/loader/aout.c (grub_aout_load): Make load_addr a void *.
	* grub-core/loader/i386/bsd.c (NETBSD_DEFAULT_VIDEO_MODE): New const.
	(bsd_tag): New struct.
	(tags): New variable.
	(tags_last): Likewise.
	(netbsd_module): New struct.
	(netbsd_mods): New variable.
	(netbsd_mods_last): Likewise.
	(openbsd_opts): New parameter "serial".
	(OPENBSD_SERIAL_ARG): New definition.
	(netbsd_opts): New parameter "serial".
	(NETBSD_SERIAL_ARG): New definition.
	(grub_freebsd_add_meta): Reorganised into ...
	(grub_bsd_add_meta): ...this. All users updated.
	(grub_freebsd_add_mmap): Reorganised into ...
	(generate_e820_mmap):  ...this...
	(grub_bsd_add_mmap): ...and this.  All users updated.
	(grub_freebsd_list_modules): Use tags.
	(grub_netbsd_add_meta_module): New function.
	(grub_netbsd_list_modules): Likewise.
	(grub_freebsd_boot): Use relocator and finish EFI.
	(grub_openbsd_boot): Likewise.
	(grub_netbsd_setup_video): New function.
	(grub_netbsd_add_modules): Likewise.
	(grub_netbsd_boot): Use grub_netbsd_add_modules, relocator, netbsd_tags
	and finish EFI.
	(grub_bsd_unload): Unload tags.
	(grub_bsd_load_aout): Use relocator.
	(grub_bsd_elf32_size_hook): New function.
	(grub_bsd_elf32_hook): Use relocator.
	(grub_bsd_elf64_size_hook): New function.
	(grub_bsd_elf64_hook): Use relocator.
	(grub_bsd_load_elf): Use relocator and call grub_openbsd_find_ramdisk.
	(grub_bsd_load): Zero-out openbsd_ramdisk.
	(grub_bsd_load): Use relocator.
	(grub_cmd_openbsd): Support serial.
	(grub_cmd_netbsd): Support modules.
	(grub_cmd_freebsd_module): Use relocator.
	(grub_netbsd_module_load): New function.
	(grub_cmd_netbsd_module): Likewise.
	(grub_cmd_openbsd_ramdisk): Likewise.
	(GRUB_MOD_INIT): Register knetbsd_module, knetbsd_module_elf and
	kopenbsd_ramdisk.
	(GRUB_MOD_FINI): Unregister new commands.
	* grub-core/loader/i386/bsdXX.c (load): Remove useless checks.
	(grub_freebsd_load_elfmodule_obj): Use relocator.
	(grub_freebsd_load_elfmodule): Likewise.
	(grub_freebsd_load_elf_meta): Likewise.
	(grub_netbsd_load_elf_meta): New function.
	(grub_openbsd_find_ramdisk): Likewise.
	* grub-core/loader/i386/bsd_helper.S: Removed.
	* grub-core/loader/i386/bsd_pagetable.c: Support relocator.
	* grub-core/loader/i386/bsd_trampoline.S: Removed.
	* grub-core/loader/i386/efi/linux.c: Likewise.
	* grub-core/loader/i386/ieee1275/linux.c: Likewise.
	* grub-core/loader/i386/linux.c (HAS_VGA_TEXT): New const.
	(DEFAULT_VIDEO_MODE): Likewise.
	(real_mode_target): New variable.
	(prot_mode_target): Likewise.
	(initrd_mem_target): Likewise.
	(relocator): Likewise.
	(efi_mmap_buf): Likewise.
	(efi_mmap_size): Likewise.
	(find_efi_mmap_size): Moved from grub-core/loader/i386/efi/linux.c.
	(free_pages): Use relocator.
	(allocate_pages): Account for efi_mmap and use relocator. Return error.
	(grub_linux_setup_video): Return error.
	(grub_linux_trampoline_start): Removed.
	(grub_linux_trampoline_end): Likewise.
	(grub_linux_boot): Use relocator and DEFAULT_VIDEO_MODE. Pass console
	andd video parameters depending on firmware.
	[GRUB_MACHINE_IEEE1275]: Pass OFW parameters.
	[GRUB_MACHINE_EFI]: Pass EFI parameters.
	(grub_cmd_linux) [GRUB_MACHINE_EFI]: Likewise.
	(grub_cmd_initrd): Use relocator.
	* grub-core/loader/i386/linux_trampoline.S: Removed.
	* grub-core/loader/i386/multiboot_mbi.c (elf_sec_num): New variable.
	(elf_sec_entsize): Likewise.
	(elf_sec_shstrndx): Likewise.
	(elf_sections): Likewise.
	(grub_multiboot_load): Use relocator.
	(grub_multiboot_get_mbi_size): Account for sections.
	(grub_multiboot_make_mbi): Use relocator and support sections.
	(grub_multiboot_add_elfsyms): New function.
	(grub_multiboot_free_mbi): Free sections.
	* grub-core/loader/i386/pc/linux.c (relocator): New variable.
	(grub_linux_real_target): Likewise.
	(grub_linux_real_chunk): Likewise.
	(grub_linux16_prot_size): Likewise.
	(grub_linux16_boot): Use relocator.
	(grub_linux_unload): Unload relocator.
	(grub_cmd_linux): Use relocator.
	(grub_cmd_initrd): Likewise.
	* grub-core/loader/i386/pc/ntldr.c: New file.
	* grub-core/loader/i386/xnu.c (guessfsb) [GRUB_MACHINE_IEEE1275]:
	Don't try to guess CPU frequency.
	(grub_xnu_set_video): Stretch bitmap.
	(grub_xnu_boot): Use relocator.
	* grub-core/loader/mips/linux.c (grub_linux_boot): Use relocator.
	(grub_linux_unload): Free relocator.
	(grub_linux_load32): Use relocator.
	(grub_linux_load64): Likewise.
	(grub_cmd_initrd): Likewise.
	* grub-core/loader/multiboot.c (grub_multiboot_boot): Use relocator.
	(grub_multiboot_unload): Unload relocator.
	(grub_cmd_multiboot): Use relocator.
	(grub_cmd_module): Likewise.
	* grub-core/loader/multiboot_elfxx.c (grub_multiboot_load_elfXX):
	Use relocator and support sections.
	* grub-core/loader/multiboot_mbi2.c(elf_sec_num): New variable.
	(elf_sec_entsize): Likewise.
	(elf_sec_shstrndx): Likewise.
	(elf_sections): Likewise.
	(grub_multiboot_load): Use relocator.
	(grub_multiboot_get_mbi_size): Account for sections.
	(grub_multiboot_make_mbi): Use relocator and support sections.
	(grub_multiboot_add_elfsyms): New function.
	* grub-core/loader/powerpc/ieee1275/linux.c: Remove useless include.
	* grub-core/loader/sparc64/ieee1275/linux.c: Likewise.
	* grub-core/loader/xnu.c (grub_xnu_heap_malloc): Use relocator.
	Prototype changed. All users updated.
	(grub_xnu_align_heap): Simplified.
	(grub_xnu_writetree_toheap): Likewise.
	(grub_xnu_unload): Unload relocator.
	(grub_cmd_xnu_kernel): Use relocator.
	(grub_cmd_xnu_kernel64): Likewise.
	(grub_xnu_register_memory): Simplified.
	* grub-core/loader/xnu_resume.c (grub_xnu_resume): Use relocator.
	* grub-core/term/efi/console.c (grub_console_putchar): Abort if
	EFI is finished.
	(grub_console_checkkey): Likewise.
	(grub_console_getkey): Likewise.
	(grub_console_getwh): Likewise.
	(grub_console_getxy): Likewise.
	(grub_console_gotoxy): Likewise.
	(grub_console_cls): Likewise.
	(grub_console_setcolorstate): Likewise.
	(grub_console_setcursor): Likewise.
	* grub-core/term/ns8250.c (grub_ns8250_hw_get_port): New function.
	* grub-core/tests/boot/kbsd.init-i386.S: New file.
	* grub-core/tests/boot/kbsd.init-x86_64.S: Likewise.
	* grub-core/tests/boot/kbsd.spec.txt: Likewise.
	* grub-core/tests/boot/kernel-8086.S: Likewise.
	* grub-core/tests/boot/kernel-i386.S: Likewise.
	* grub-core/tests/boot/kfreebsd-aout.cfg: Likewise.
	* grub-core/tests/boot/kfreebsd.cfg: Likewise.
	* grub-core/tests/boot/kfreebsd.init-i386.S: Likewise.
	* grub-core/tests/boot/kfreebsd.init-x86_64.S: Likewise.
	* grub-core/tests/boot/knetbsd.cfg: Likewise.
	* grub-core/tests/boot/kopenbsd.cfg: Likewise.
	* grub-core/tests/boot/kopenbsdlabel.txt: Likewise.
	* grub-core/tests/boot/linux.cfg: Likewise.
	* grub-core/tests/boot/linux.init-i386.S: Likewise.
	* grub-core/tests/boot/linux.init-x86_64.S: Likewise.
	* grub-core/tests/boot/linux16.cfg: Likewise.
	* grub-core/tests/boot/multiboot.cfg: Likewise.
	* grub-core/tests/boot/multiboot2.cfg: Likewise.
	* grub-core/tests/boot/ntldr.cfg: Likewise.
	* grub-core/tests/boot/pc-chainloader.cfg: Likewise.
	* include/grub/aout.h (grub_aout_load): Make load_addr a void *.
	* include/grub/autoefi.h (grub_autoefi_finish_boot_services):
	New definition.
	* include/grub/dl.h (grub_dl_unload_all): Removed.
	* include/grub/efi/efi.h (grub_efi_exit_boot_services): Likewise.
	(grub_efi_finish_boot_services): Change prototype.
	(grub_efi_is_finished): New variable.
	* include/grub/efiemu/efiemu.h (grub_efiemu_finish_boot_services):
	Changed prototype.
	(grub_efiemu_finish_boot_services): Removed.
	(grub_machine_efiemu_init_tables): New prototype.
	* include/grub/elfload.h (grub_elf32_phdr_iterate): Likewise.
	(grub_elf64_phdr_iterate): Likewise.
	* include/grub/i386/bsd.h: Include relocator.h.
	(freebsd_tag_header): New struct.
	(grub_openbsd_bios_mmap): Removed.
	(grub_unix_real_boot): Removed.
	(grub_freebsd_load_elfmodule32): Changed prototype.
	(grub_freebsd_load_elfmodule_obj64): Likewise.
	(grub_freebsd_load_elf_meta32): Likewise.
	(grub_freebsd_load_elf_meta64): Likewise.
	(grub_freebsd_add_meta): Removed.
	(grub_netbsd_load_elf_meta32): New prototype.
	(grub_netbsd_load_elf_meta64): Likewise.
	(grub_bsd_add_meta): Likewise.
	(grub_openbsd_ramdisk_descriptor): New struct.
	(grub_openbsd_find_ramdisk32): New prototype.
	(grub_openbsd_find_ramdisk64): Likewise.
	* include/grub/i386/coreboot/loader.h: Removed.
	* include/grub/i386/efi/loader.h: Likewise.
	* include/grub/i386/ieee1275/loader.h: Likewise.
	* include/grub/i386/linux.h (linux_kernel_header): Change void *
	to grub_uint32_t.
	* include/grub/i386/loader.h: Removed.
	* include/grub/i386/memory.h (GRUB_MEMORY_CPU_CR4_PAE_ON): Correct the
	value.
	(GRUB_MEMORY_CPU_CR4_PSE_ON): New definition.
	(grub_phys_addr_t): New type.
	(grub_vtop): New inline function.
	(grub_map_memory): Likewise.
	(grub_unmap_memory): Likewise.
	* include/grub/i386/multiboot/loader.h: Removed.
	* include/grub/i386/netbsd_bootinfo.h (NETBSD_BTINFO_BOOTDISK): Removed.
	(NETBSD_BTINFO_CONSOLE): New definition.
	(NETBSD_BTINFO_SYMTAB): Likewise.
	(NETBSD_BTINFO_MODULES): Likewise.
	(NETBSD_BTINFO_FRAMEBUF): Likewise.
	(grub_netbsd_bootinfo): New struct.
	(grub_netbsd_btinfo_common): Use explicit bitsize.
	(grub_netbsd_btinfo_mmap_entry): Removed.
	(GRUB_NETBSD_MAX_BOOTPATH_LEN): New definition.
	(grub_netbsd_btinfo_bootdisk): New struct.
	(grub_netbsd_btinfo_symtab): Likewise.
	(grub_netbsd_btinfo_serial): Likewise.
	(grub_netbsd_btinfo_modules): Likewise.
	(grub_netbsd_btinfo_framebuf): Likewise.
	(GRUB_NETBSD_MAX_ROOTDEVICE_LEN): New definition.
	* include/grub/i386/openbsd_bootarg.h (OPENBSD_BOOTARG_CONSOLE):
	Likewise.
	(grub_openbsd_bootargs): Use explicit bitsize.
	(grub_openbsd_bootarg_console): New struct.
	(GRUB_OPENBSD_COM_MAJOR): New definition.
	(GRUB_OPENBSD_VGA_MAJOR): Likewise.
	* include/grub/i386/pc/efiemu.h: Removed.
	* include/grub/i386/pc/loader.h: Don't include cpu/loader.h.
	* include/grub/i386/qemu/loader.h: Removed.
	* include/grub/i386/relocator.h: Rewritten.
	* include/grub/i386/xnu.h (grub_xnu_heap_will_be_at): Removed.
	* include/grub/mips/memory.h: New file.
	* include/grub/mips/multiboot.h: Rewritten.
	* include/grub/mips/relocator.h: Rewritten.
	* include/grub/mips/yeeloong/memory.h (grub_phys_addr_t): New type.
	(grub_vtop): New function.
	(grub_map_memory): Likewise.
	(grub_unmap_memory): Likewise.
	* include/grub/misc.h (ALIGN_DOWN): New definition.
	* include/grub/mm.h (grub_mm_check_real): New proto.
	(GRUB_MM_CHECK): New definition.
	* include/grub/mm_private.h: New file.
	* include/grub/multiboot.h (grub_multiboot_relocator): New variable.
	(grub_multiboot_get_mbi_size): Removed.
	(grub_multiboot_make_mbi): Change prottype.
	(grub_multiboot_set_accepts_video): New proto.
	(grub_multiboot_add_elfsyms): Likewise.
	(grub_multiboot_payload_eip): New variable.
	* include/grub/ns8250.h (grub_ns8250_hw_get_port) [!ASM_FILE]:
	New prototype.
	* include/grub/offsets.h (GRUB_KERNEL_I386_MULTIBOOT_PREFIX):
	New definition.
	(GRUB_KERNEL_I386_MULTIBOOT_DATA_END): Likewise.
	(GRUB_KERNEL_I386_MULTIBOOT_MOD_ALIGN): Likewise.
	* include/grub/powerpc/ieee1275/loader.h: Removed.
	* include/grub/powerpc/memory.h: New file.
	* include/grub/powerpc/relocator.h: Likewise.
	* include/grub/relocator.h: Likewise.
	* include/grub/relocator_private.h: Likewise.
	* include/grub/sparc64/ieee1275/loader.h: Removed.
	* include/grub/x86_64/memory.h: New file.
	* include/grub/xnu.h (grub_xnu_writetree_toheap): Changed prototype.
	(grub_xnu_heap_malloc): Likewise.
	(grub_xnu_heap_real_start): Removed.
	(grub_xnu_heap_start): Likewise.
	(grub_xnu_relocator): New variable.
	(grub_xnu_heap_target_start): Likewise.
	* tests/util/grub-shell.in: Support non-pc.
	* util/grub-mkimage.c (image_targets): Fix multiboot target.
2010-08-29 23:08:33 +02:00
Vladimir 'phcoder' Serbinenko
1935c0773e Finish Changelog 2010-08-29 23:08:06 +02:00
Vladimir 'phcoder' Serbinenko
7542126ac2 Add missing newlines 2010-08-29 23:07:44 +02:00
Vladimir 'phcoder' Serbinenko
4847f93e2a Merge mainline into newreloc 2010-08-29 22:05:46 +02:00
Vladimir 'phcoder' Serbinenko
0b986c402b First part of ChangeLog 2010-08-29 22:03:28 +02:00
Vladimir 'phcoder' Serbinenko
c7fef4da8b make tags variables statis as intended 2010-08-29 21:58:58 +02:00
Vladimir 'phcoder' Serbinenko
5303b85d44 * grub-core/normal/charset.c (grub_utf8_to_ucs4_alloc): Avoid deadloop
on malloc error.
	(grub_bidi_logical_to_visual): Check that malloc succeded.
	* grub-core/normal/term.c (grub_puts_terminal): Fix fallback to dumb
	puts.
	(grub_xputs_normal): Likewise.
2010-08-29 21:57:37 +02:00
Vladimir 'phcoder' Serbinenko
a9c8da60f3 merge mainline into newreloc 2010-08-29 18:54:50 +02:00
Vladimir 'phcoder' Serbinenko
cb601aad52 Fix failing make dist 2010-08-29 18:54:33 +02:00
Vladimir 'phcoder' Serbinenko
d768d15986 * grub-core/Makefile.core.def (kernel): Add kern/mips/cache_flush.S to
extra_dist.
2010-08-29 18:53:56 +02:00
Vladimir 'phcoder' Serbinenko
72c47aed8d * grub-core/efiemu/runtime/efiemu.sh: Removed. 2010-08-29 18:52:04 +02:00