Eliminate fixed limit on reed solomon decoder length.

* grub-core/boot/i386/pc/lnxboot.S: Scan for multiboot signature
	rather than hardcoding the address.
	* grub-core/boot/i386/pc/startup_raw.S: Add new data field
	no_reed_solomon_length.
	Move gate_a20 to no-reed-solomon part.
	Don't force a particular size of no reed-solomon part.
	* include/grub/offsets.h (GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART):
	Removed.
	(GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_LENGTH): New define.
	* util/grub-setup.c (setup): Read no_rs_length from the image itself.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-01-24 14:39:29 +01:00
parent f8a9ab1245
commit 2e13ede59e
5 changed files with 118 additions and 89 deletions

View file

@ -28,7 +28,8 @@
/* Offset of reed_solomon_redundancy. */
#define GRUB_KERNEL_I386_PC_REED_SOLOMON_REDUNDANCY 0x10
#define GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_PART 0x7e0
/* Offset of field holding no reed solomon length. */
#define GRUB_KERNEL_I386_PC_NO_REED_SOLOMON_LENGTH 0x14
/* The segment where the kernel is loaded. */
#define GRUB_BOOT_I386_PC_KERNEL_SEG 0x800