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
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
Vladimir 'phcoder' Serbinenko
ba2b9dc0a2
merge mainline into newreloc
2010-08-29 17:54:03 +02:00
Vladimir 'phcoder' Serbinenko
5bf84df429
* Makefile.util.def (grub-ofpathname): Add missing ldadd.
2010-08-29 17:49:37 +02:00
Vladimir 'phcoder' Serbinenko
853231bc06
merge mainline into newreloc
2010-08-29 17:24:00 +02:00
Vladimir 'phcoder' Serbinenko
3626810e53
* grub-core/kern/misc.c (grub_real_dprintf): Always refresh after
...
dprintf.
2010-08-29 17:17:52 +02:00
Vladimir 'phcoder' Serbinenko
506e4d1e7f
Use kseg0 entry address on mips
2010-08-29 15:45:21 +02:00
Vladimir 'phcoder' Serbinenko
6d387bafaf
Fix compilation on yeeloong
2010-08-29 13:45:36 +02:00
Vladimir 'phcoder' Serbinenko
a30f510eac
newreloc documentation upgrade
2010-08-29 02:29:14 +02:00
Vladimir 'phcoder' Serbinenko
303f59958e
Disable kfreebsd bootcheck on qemu and multiboot
2010-08-29 02:29:01 +02:00
Vladimir 'phcoder' Serbinenko
5d9bdcf167
Fix x86_64-efi compilation error
2010-08-29 02:28:15 +02:00
Vladimir 'phcoder' Serbinenko
f5c1e402d3
enable grub-mkrescue on i386-multiboot
2010-08-29 01:26:48 +02:00
Vladimir 'phcoder' Serbinenko
6f8157cb89
Fix qemu compilation
2010-08-29 00:53:09 +02:00
Vladimir 'phcoder' Serbinenko
f0b05761f4
fix multiboot compilation
2010-08-29 00:46:36 +02:00
Vladimir 'phcoder' Serbinenko
5dc598851f
Document newreloc
2010-08-29 00:21:16 +02:00
Vladimir 'phcoder' Serbinenko
02a16ba94c
Disable some bootcheck on some platforms
2010-08-29 00:21:02 +02:00
Vladimir 'phcoder' Serbinenko
5407820787
Adjust kfreebsd.cfg for EFI
2010-08-29 00:20:22 +02:00
Vladimir 'phcoder' Serbinenko
04a0a4cdf4
Fix a bug in memory allocation
2010-08-29 00:19:13 +02:00
Vladimir 'phcoder' Serbinenko
328951ac24
Add safety checks in relocator and add a GRUB_MM_CHECK macro
2010-08-28 21:27:10 +02:00
Vladimir 'phcoder' Serbinenko
c6785a2380
Don't allocate relocator twice when loading aout
2010-08-28 21:25:35 +02:00
Vladimir 'phcoder' Serbinenko
197eb519e5
Remove leftover _printf
2010-08-28 19:27:30 +02:00
Vladimir 'phcoder' Serbinenko
4a842991db
simplify normal/term.c and fix mismerge
2010-08-28 17:33:32 +02:00
Vladimir 'phcoder' Serbinenko
9b1cb542db
Rename test kernels
2010-08-28 16:51:36 +02:00
Vladimir 'phcoder' Serbinenko
9bd44ab21a
kfreebsd-aout bootchecks
2010-08-28 16:21:45 +02:00
Vladimir 'phcoder' Serbinenko
0101a723ce
ntldr bootcheck
2010-08-28 16:05:20 +02:00
Vladimir 'phcoder' Serbinenko
c5c8cf354c
merge mainline into newreloc
2010-08-28 16:04:32 +02:00
Vladimir 'phcoder' Serbinenko
902f75f645
* grub-core/normal/term.c (print_more): Fix a memory leak.
...
(grub_puts_terminal): Revert to dumb puts if memory allocation fails.
(grub_xputs_normal): Likewise.
2010-08-28 15:39:34 +02:00
Vladimir 'phcoder' Serbinenko
3c7079670d
* grub-core/script/lexer.c (grub_script_lexer_init): Don't look before
...
the begining of the string
2010-08-28 15:35:43 +02:00
Vladimir 'phcoder' Serbinenko
2053cc077b
* grub-core/script/script.c (grub_script_parse): Free parsed on
...
failure.
2010-08-28 15:34:29 +02:00
Vladimir 'phcoder' Serbinenko
46422ebf1a
* grub-core/normal/completion.c (grub_normal_do_completion): Free argv
...
on failure.
2010-08-28 15:31:21 +02:00
Vladimir 'phcoder' Serbinenko
9e0fa3f606
* grub-core/normal/cmdline.c (grub_cmdline_get): Free cl_terms on
...
return.
2010-08-28 15:29:44 +02:00
Vladimir 'phcoder' Serbinenko
3393cf16d6
* grub-core/term/gfxterm.c (grub_gfxterm_term_fini): Free the text buffer.
...
(scroll_up): Fix a memory leak.
2010-08-28 15:28:08 +02:00
Vladimir 'phcoder' Serbinenko
b17540cbd9
* grub-core/fs/nilfs2.c (grub_nilfs2_load_sb): Handle grub_disk_read
...
errors.
2010-08-28 15:25:12 +02:00
Vladimir 'phcoder' Serbinenko
8e4ac346e8
OpenBSD64 bootcheck
2010-08-28 15:05:26 +02:00
Vladimir 'phcoder' Serbinenko
4fc95be2e7
fix grub-emu compilation
2010-08-28 14:52:25 +02:00
Vladimir 'phcoder' Serbinenko
0f6a963e9b
kOpenBSD bootcheck
2010-08-28 14:51:54 +02:00
Vladimir 'phcoder' Serbinenko
dcc953eecb
Fallback to dumb printf if malloc failes
2010-08-28 11:35:02 +02:00
Vladimir 'phcoder' Serbinenko
d1dce5d356
Add DEBUG_RELOCATOR parts
2010-08-28 11:34:33 +02:00
Vladimir 'phcoder' Serbinenko
4aa5499064
Prevent deadloop in term.c in case of out-of-memory
2010-08-28 11:34:05 +02:00
Vladimir 'phcoder' Serbinenko
4619710a05
Don't try to malloc if grub_mm_base is 0
2010-08-28 11:32:49 +02:00
Vladimir 'phcoder' Serbinenko
dc1bff761f
Simplify knetbsd bootcheck by using specfile
2010-08-28 03:17:59 +02:00
Vladimir 'phcoder' Serbinenko
e95616a173
REmove leftover declaration
2010-08-28 03:17:07 +02:00
Vladimir 'phcoder' Serbinenko
671404469c
Handle USB pendrives exposed as floppies.
...
* grub-core/boot/i386/pc/boot.S: Check LBA even on what appears to be
floppy.
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
Check for partitions on all devices.
2010-08-27 03:44:55 +02:00
Vladimir 'phcoder' Serbinenko
ecde61b490
openbsd ramdisk support
2010-08-26 02:46:30 +02:00
Vladimir 'phcoder' Serbinenko
afba9f98ec
MErge mainline into intwrap
2010-08-25 23:39:42 +02:00
Vladimir 'phcoder' Serbinenko
72d14db9ba
merge mainline into newreloc
2010-08-25 22:34:59 +02:00
Vladimir 'phcoder' Serbinenko
8218d8b6e8
Fix efiemu compilation on ieee1275
2010-08-25 22:34:15 +02:00
Vladimir 'phcoder' Serbinenko
e35e46fce1
* grub-core/term/ieee1275/ofconsole.c (put): Correct prototype.
...
(readkey): Likewise.
2010-08-25 22:32:17 +02:00
Vladimir 'phcoder' Serbinenko
e8ea4b8424
pc-chainloader bootcheck
2010-08-25 21:55:48 +02:00
Vladimir 'phcoder' Serbinenko
89e07694dc
Remove grub_dl_unload_all. It's unnecessary and causes trouble
2010-08-25 21:19:45 +02:00
Vladimir 'phcoder' Serbinenko
1e82303f1d
multiboot and multiboot2 bootchecks
2010-08-25 20:34:07 +02:00
Vladimir 'phcoder' Serbinenko
5ad6967b19
Enable boottests
2010-08-25 16:59:11 +02:00
Vladimir 'phcoder' Serbinenko
16bd6cfab2
Merge mainline into newreloc. For now without boot tests
2010-08-25 03:25:18 +02:00
Vladimir 'phcoder' Serbinenko
262d4a94a0
Add mips multiboot2 mbi address calculation
2010-08-25 02:15:21 +02:00
Vladimir 'phcoder' Serbinenko
ffadea42bb
Fix non-loading of BSS
2010-08-24 19:33:08 +02:00
Vladimir 'phcoder' Serbinenko
79f8b757ce
fix multiboot compilation
2010-08-24 08:57:53 +02:00
Vladimir 'phcoder' Serbinenko
a797a26ee8
Unify and macroify some code in x86 relocators
2010-08-24 08:57:18 +02:00
Vladimir 'phcoder' Serbinenko
0677694455
* term/at_keyboard.c (grub_at_keyboard_getkey_noblock): Don't discard
...
a key after CapsLock or NumLock. It's just a qemu bug.
2010-08-22 17:10:39 +02:00
Vladimir 'phcoder' Serbinenko
df26241939
* include/grub/usb.h (grub_usb_device): Add 'data' field back. It's
...
needed by libusb wrapper.
2010-08-21 02:09:16 +02:00
Vladimir 'phcoder' Serbinenko
dee5057594
* loader/multiboot.c (grub_cmd_module): Don't unzip module if
...
--nounzip is passed.
2010-08-21 00:57:12 +02:00
Vladimir 'phcoder' Serbinenko
05a765c88b
USB hotunplugging and USB serial support.
...
* bus/usb/ohci.c (grub_ohci_transfer): Fill *actual and respect timeout.
* bus/usb/uhci.c (grub_free_queue): Compute *actual.
(grub_uhci_transfer): Respect timeout and set *actual.
* bus/usb/usb.c (grub_usb_device_initialize): Correctly skip fields of
non-standard length.
(grub_usb_device_attach): Autoload modules.
(GRUB_MOD_INIT): Set grub_term_poll_usb.
(GRUB_MOD_FINI): Unset grub_term_poll_usb.
* bus/usb/usbhub.c (grub_usb_hub): Replace speed with devices. All
users updated.
(grub_usb_add_hub): Fill nports and children.
(attach_root_port): Receive hub instead of controller.
All users updated. Fill hub->devices.
(grub_usb_root_hub): Allocate hub->devices.
(detach_device): New function.
(poll_nonroot_hub): Fill children and detach devices.
* bus/usb/usbtrans.c (grub_usb_bulk_readwrite): Accept timeout and
actual arguments. All users updated.
(grub_usb_bulk_read_extended): New function.
* bus/usb/serial/common.c: New file.
* bus/usb/serial/ftdi.c: Likewise.
* bus/usb/serial/pl2303.c: Likewise.
* commands/terminal.c (handle_command): Support wildcard.
* commands/usbtest.c: Output "Unknown" instead of empty string.
* conf/any-emu.rmk (pkglib_MODULES): Add usbserial_common.mod.
(usbserial_common_mod_SOURCES): New variable.
(usbserial_common_mod_CFLAGS): Likewise.
(usbserial_common_mod_LDFLAGS): Likewise.
(pkglib_MODULES): Add usbserial_pl2303.mod.
(usbserial_pl2303_mod_SOURCES): New variable.
(usbserial_pl2303_mod_CFLAGS): Likewise.
(usbserial_pl2303_mod_LDFLAGS): Likewise.
(pkglib_MODULES): Add usbserial_ftdi.mod.
(usbserial_ftdi_mod_SOURCES): New variable.
(usbserial_ftdi_mod_CFLAGS): Likewise.
(usbserial_ftdi_mod_LDFLAGS): Likewise.
(pkglib_MODULES): Add serial.mod.
(serial_mod_SOURCES): New variable.
(serial_mod_CFLAGS): Likewise.
(serial_mod_LDFLAGS): Likewise.
* conf/i386-pc.rmk: Likewise.
* conf/mips-yeeloong.rmk: Likewise.
* conf/i386.rmk (serial_mod_SOURCES): Add term/ns8250.c.
* conf/mips-yeeloong.rmk (kernel_img_SOURCES): Likewise.
* disk/usbms.c (first_available_slot): New variable.
(grub_usbms_attach): Don't reuse free slots due to potential cache
problems.
* include/grub/serial.h: Moved to ..
* include/grub/ns8250.h: ...this.
* include/grub/serial.h: New file.
* include/grub/term.h (grub_term_poll_usb): New variable.
* include/grub/terminfo.h (grub_terminfo_input_state): Pass term to
readkey. All users updated.
(grub_terminfo_output_state): Pass term to put.
* include/grub/usb.h (GRUB_USB_REQTYPE): New enum.
(grub_usb_controller_dev): Add timeout and actual arguments to
transfer. All users updated.
(grub_usb_interface): New field detach_data.
(grub_usb_device): New fields children and nports.
(grub_usb_ep_type_t): New type.
(grub_usb_get_ep_type): New function.
(grub_usb_bulk_read_extended): Likewise.
* include/grub/usbdesc.h (grub_usb_desc): New type.
* include/grub/usbserial.h: New file.
* include/grub/usbtrans.h (grub_usb_transaction): New field preceding.
* kern/term.c (grub_term_poll_usb): New variable.
(grub_getkey): Call grub_term_poll_usb if set.
(grub_checkkey): Likewise.
(grub_getkeystatus): Likewise.
* term/serial.c: Moved controller-specific parts to ...
* term/ns8250.c: ... here.
* term/serial.c: Mostly rewritten.
* term/usb_keyboard.c: Reorganised to use GET_REPORT only on attaching
according to spec.
2010-08-20 21:34:52 +02:00
Vladimir 'phcoder' Serbinenko
d6f66ca2a0
Export serial-related functions from kernel
2010-08-20 21:31:33 +02:00
Vladimir 'phcoder' Serbinenko
fb1d7b7975
Add ChangeLog
2010-08-20 21:26:27 +02:00
Vladimir 'phcoder' Serbinenko
41e46ae648
Enable usbserial on yeeloong
2010-08-20 21:26:04 +02:00
Vladimir 'phcoder' Serbinenko
1420c1d54a
Remove unused buffer0
2010-08-20 21:25:20 +02:00
Vladimir 'phcoder' Serbinenko
ccedc09bc7
Make HID found dprintf instead of printf
2010-08-20 20:26:57 +02:00
Vladimir 'phcoder' Serbinenko
8161b08687
Merge mainline into usb
2010-08-20 20:12:26 +02:00
Vladimir 'phcoder' Serbinenko
2823526d28
Acount for transfer->size being size-1 when counting *actual
2010-08-20 19:54:40 +02:00
Vladimir 'phcoder' Serbinenko
52d8255d20
Support hot unplugging
2010-08-20 19:34:29 +02:00
Vladimir 'phcoder' Serbinenko
60c1ffdfdc
Fix OHCI error message
2010-08-20 19:33:44 +02:00
Vladimir 'phcoder' Serbinenko
24582ab39b
Correct *actual counting in OHCI
2010-08-20 16:56:03 +02:00
Vladimir 'phcoder' Serbinenko
15bd1f9ccf
Don't update status on 0 message
2010-08-20 16:49:24 +02:00
Vladimir 'phcoder' Serbinenko
9ba74de61a
Scan descriptor rather than elying on hardcoded endpoint number
2010-08-20 16:34:34 +02:00
Vladimir 'phcoder' Serbinenko
a17e3c978b
Use GetReport only at initialisation as specified in the USBHID spec
2010-08-20 14:36:29 +02:00
Vladimir 'phcoder' Serbinenko
537f375321
Fix control msg type
2010-08-20 12:22:23 +02:00
Vladimir 'phcoder' Serbinenko
b4ece5e11e
Implement sendkey support.
...
* commands/i386/pc/sendkey.c: New file.
* conf/i386-pc.rmk (pkglib_MODULES): Add sendkey.mod.
(sendkey_mod_SOURCES): New variable.
(sendkey_mod_CFLAGS): Likewise.
(sendkey_mod_LDFLAGS): Likewise.
2010-08-19 21:03:14 +02:00
Vladimir 'phcoder' Serbinenko
d04b9414a8
* kern/i386/qemu/init.c (grub_qemu_init_cirrus): Fix compilation error.
2010-08-11 04:25:56 +02:00
Vladimir 'phcoder' Serbinenko
f947ab49b0
Remove the dump of sm712 initialisation sequence.
...
* include/grub/pci.h (GRUB_PCI_CLASS_SUBCLASS_VGA): New const.
* include/grub/vga.h (GRUB_VGA_IO_ARX_READ): New register.
(GRUB_VGA_IO_MISC_WRITE): Likewise.
(GRUB_VGA_CR_*): Added many registers.
(GRUB_VGA_SR_*): Likewise.
(GRUB_VGA_GR_*): Likewise.
(grub_vga_write_arx): New function.
(grub_video_hw_config): New struct.
(grub_vga_set_geometry): New function.
* kern/i386/qemu/init.c (load_palette): Use grub_vga_write_arx and
GRUB_PCI_CLASS_SUBCLASS_VGA.
* video/cirrus.c (grub_video_cirrus_setup): Use grub_vga_set_geometry.
* video/sm712.c (grub_sm712_write_reg): New function
(grub_sm712_read_reg): Likewise.
(grub_sm712_sr_write): Likewise.
(grub_sm712_gr_write): Likewise.
(grub_sm712_cr_write): Likewise.
(grub_sm712_write_arx): Likewise.
(grub_sm712_cr_shadow_write): Likewise.
(grub_sm712_write_dda_lookup): Likewise.
(grub_video_sm712_setup): Initialise the video rather then
blindly replay the dump.
(main) [TEST]: Add a routine to be able to compile as standalone for
tests.
* video/sm712_init.c (sm712_init): Removed.
(sm712_sr_seq1): New array.
(sm712_sr_seq2): Likewise.
2010-08-11 04:18:07 +02:00
Vladimir 'phcoder' Serbinenko
f0206638bf
* include/grub/vga.h: Add missing grub/pci.h include.
2010-08-11 04:00:06 +02:00
Vladimir 'phcoder' Serbinenko
cf0c775ed4
* include/grub/vga.h (grub_vga_gr_write): Add GRUB_MACHINE_PCI_IO_BASE.
...
(grub_vga_gr_read): Likewise.
(grub_vga_cr_write): Likewise.
(grub_vga_cr_read): Likewise.
(grub_vga_sr_write): Likewise.
(grub_vga_sr_read): Likewise.
(grub_vga_palette_read): Likewise.
(grub_vga_palette_write): Likewise.
* video/sm712.c (GRUB_SM712_REG_BASE): New definition.
(grub_sm712_sr_read): New function.
(grub_video_sm712_setup): Use grub_vga_sr_write and grub_sm712_sr_read.
* video/sm712_init.c (sm712_init): Substract GRUB_MACHINE_PCI_IO_BASE.
2010-08-10 13:43:43 +02:00
Vladimir 'phcoder' Serbinenko
9c98ae8911
Skip non-boot usb_keyboard interface
2010-08-01 23:08:33 +02:00
Vladimir 'phcoder' Serbinenko
443a6c4b21
Skip unexpected descriptors
2010-08-01 23:08:03 +02:00