* configure.ac: Rename yeeloong platform to loongson. All users updated.
* grub-core/Makefile.core.def (fwstart_fuloong): New image.
* grub-core/boot/mips/loongson/fuloong.S: New file.
* grub-core/boot/mips/loongson/fwstart.S: Wait for CS5536 to come up.
Explicitly init CS5536.
[FULOONG]: Don't use serial until CS5536 is available.
Set GPIO based on dumps.
(serial_hw_init) [FULOONG]: Handle CS5536 parts.
[FULOONG]: Handle GPIO and memory controller differences.
Parse machine type in $a2.
* grub-core/boot/mips/startup_raw.S: Determine and save the
architecture.
* grub-core/bus/cs5536.c (gpiodump): Move to fwstart.S.
(grub_cs5536_init_geode): Remove gpio part. Conditionalise DIVIL
init on architecture type.
* grub-core/kern/mips/loongson/init.c (grub_machine_init): Init
SIS315E. Don't init at_keyboard on fuloong.
(grub_halt): Support Fuloong.
* grub-core/kern/mips/startup.S [LOONGSON]: Save $s7.
* grub-core/loader/mips/linux.c (LOONGSON_MACHTYPE): Removed.
(loongson_machtypes): New array.
(grub_cmd_linux) [GRUB_MACHINE_MIPS_LOONGSON]: Pass the right machine
type.
* grub-core/term/ns8250.c (serial_get_divisor): New parameter port and
config. All users updated. Handle CS5536 serial.
* grub-core/term/serial.c (grub_serial_register): Conditionalise
default port on machine type. Register serial as inactive.
* grub-core/video/sis315pro.c: New file.
* include/grub/cs5536.h (GRUB_CS5536_MSR_MAILBOX_CONFIG_ENABLED): New
definition.
(GRUB_CS5536_MSR_MAILBOX_CONFIG): Likewise.
(GRUB_CS5536_MSR_DIVIL_LEG_IO_UART1_COM1): Likewise.
(GRUB_CS5536_MSR_DIVIL_LEG_IO_UART2_COM3): Likewise.
(GRUB_CS5536_MSR_DIVIL_UART1_CONF): Likewise.
(GRUB_CS5536_MSR_DIVIL_UART2_CONF): Likewise.
* include/grub/mips/loongson.h (GRUB_CPU_LOONGSON_SHUTDOWN_GPIO): Rename
to ...
(GRUB_CPU_YEELOONG_SHUTDOWN_GPIO): ... this.
* include/grub/mips/loongson/kernel.h (GRUB_ARCH_MACHINE_YEELOONG): New
definition.
(GRUB_ARCH_MACHINE_FULOONG): Likewise.
(grub_arch_machine): New extern var.
* include/grub/mips/loongson/serial.h
(GRUB_MACHINE_SERIAL_DIVISOR_115200): Renamed to ...
(GRUB_MACHINE_SERIAL_PORT0_DIVISOR_115200): ... this.
(GRUB_MACHINE_SERIAL_PORT): Renamed to ...
(GRUB_MACHINE_SERIAL_PORT0): ... this.
(GRUB_MACHINE_SERIAL_PORT2_DIVISOR_115200): New definition.
(GRUB_MACHINE_SERIAL_PORT1): Likewise.
(GRUB_MACHINE_SERIAL_PORT2): Likewise.
(GRUB_MACHINE_SERIAL_PORTS): Include ports 1 and 2.
* include/grub/term.h (grub_term_register_input_inactive): New inline
function.
(grub_term_register_output_inactive): Likewise.
* include/grub/video.h (grub_video_driver_id): New value
GRUB_VIDEO_DRIVER_SIS315PRO.
* util/grub-mkimage.c (image_target_desc): Rename name to dirname.
New field "names". All users updated.
New field value IMAGE_FULOONG_FLASH.
(generate_image): USe separate fwstart hashes for yeeloong and fuloong.
to spin up.
* grub-core/disk/ata.c (grub_atapi_identify): Use GRUB_ATA_TOUT_DEV_INIT
if dev->present is 1. Reset dev->present on failure.
(grub_ata_device_initialize): Set dev->present to 1.
* include/grub/ata.h (GRUB_ATA_TOUT_DEV_INIT): New value.
(grub_ata_device): New member 'present'.
file_path to 0 for surety.
(grub_chainloader_boot): Set exit_data to NULL.
Unset the loader once done.
(grub_cmd_chainloader): Fix confusing error message if file is empty.
(devpath_1): Use MAKE_PIWG_PATH.
(devpath_2): Likewise.
(devpath_3): Likewise.
(devpath_4): Likewise.
(devpath_5): Likewise.
(devpath_6): Likewise.
The appleldr.mod was checked that to be binary identical to previous
version.
GRUB_ERR_BAD_FS rather than GRUB_ERR_IO if the disk is not a pxe
disk; otherwise grub_fs_probe will not fall back to the next
filesystem.
(grub_pxefs_open): Likewise, for consistency.
Reported and tested by: Ezekiel Grave.
(grub_find_root_device_from_mountinfo): Remove non-virtual-device
test that was incorrectly reintroduced in r3214.
Reported by: Ian Dall. Fixes Savannah bug #33133.
* grub-core/lib/i386/relocator16.S (grub_relocator16_start): Move
grub_relocator16_sp to %esp rather than %ss, and zero-extend it.
Fixes Ubuntu bug #683904.
New function.
(grub_util_biosdisk_close): Use grub_util_biosdisk_flush.
* include/grub/emu/hostdisk.h (grub_util_biosdisk_flush): New proto.
* util/grub-setup.c (setup): Use grub_util_biosdisk_flush.
* grub-core/gfxmenu/widget-box.c (get_border_width): New function.
(grub_gfxmenu_create_box): Register get_border_width.
* grub-core/gfxmenu/gui_list.c (draw_menu): Use get_border_width
if available.
* include/grub/gfxwidgets.h (grub_gfxmenu_box): New member
get_border_width.
* grub-core/disk/raid.c (ascii2hex): New function.
(grub_raid_open): Accept mduuid/%s specification.
* grub-core/kern/emu/getroot.c (get_mdadm_name): Revamped into ...
(get_mdadm_uuid): ... this.
(grub_util_get_grub_dev): Use mduuid/%s if UUID is available.
move-mounts appearing out of order. Fixes Ubuntu bug #738345.
* grub-core/kern/emu/getroot.c (find_root_device_from_mountinfo):
Build a list of relevant visible mounts using the mnt_id and
parent_mnt_id fields, and then scan that list at the end.
even more important testing by Colin.
* Makefile.util.def (libgrubmods.a): Add crc.c and gzio.c
* grub-core/Makefile.core.def (btrfs): Add crc.c.
* grub-core/fs/btrfs.c: Stub replaced with real implementation.
* grub-core/io/gzio.c (grub_gzio): New fields mem_input_size,
mem_input_off and mem_input. All users updated to accept in-RAM input.
(gzio_seek): New function.
(test_zlib_header): Likewise.
(grub_gzio_read): Likewise.
(grub_zlib_decompress): Likewise.
* grub-core/kern/emu/getroot.c (grub_find_root_device_from_mountinfo):
Accept partial and non-virtual mounts.
(grub_guess_root_device): Do rescanning after device_from_mountinfo to
avoid receiving /dev/dm-X as device.
* grub-core/kern/emu/misc.c (grub_make_system_path_relative_to_its_root):
Handle bind and partial mounts.
* grub-core/lib/crc.c: New file.
* include/grub/deflate.h: Likewise.
* include/grub/emu/misc.h (grub_find_root_device_from_mountinfo): New
proto.
* include/grub/lib/crc.h: New file.