diff options
Diffstat (limited to 'arch/x86/boot/header.S')
| -rw-r--r-- | arch/x86/boot/header.S | 30 | 
1 files changed, 23 insertions, 7 deletions
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S index 5d84d1c74e4..b31cc54b464 100644 --- a/arch/x86/boot/header.S +++ b/arch/x86/boot/header.S @@ -22,7 +22,8 @@  #include <asm/page_types.h>  #include <asm/setup.h>  #include "boot.h" -#include "offsets.h" +#include "voffset.h" +#include "zoffset.h"  BOOTSEG		= 0x07C0		/* original address of boot-sector */  SYSSEG		= 0x1000		/* historical load address >> 4 */ @@ -115,7 +116,7 @@ _start:  	# Part 2 of the header, from the old setup.S  		.ascii	"HdrS"		# header signature -		.word	0x0209		# header version number (>= 0x0105) +		.word	0x020a		# header version number (>= 0x0105)  					# or else old loadlin-1.5 will fail)  		.globl realmode_swtch  realmode_swtch:	.word	0, 0		# default_switch, SETUPSEG @@ -168,7 +169,11 @@ heap_end_ptr:	.word	_end+STACK_SIZE-512  					# end of setup code can be used by setup  					# for local heap purposes. -pad1:		.word	0 +ext_loader_ver: +		.byte	0		# Extended boot loader version +ext_loader_type: +		.byte	0		# Extended boot loader type +  cmd_line_ptr:	.long	0		# (Header version 0x0202 or later)  					# If nonzero, a 32-bit pointer  					# to the kernel command line. @@ -200,7 +205,7 @@ relocatable_kernel:    .byte 1  #else  relocatable_kernel:    .byte 0  #endif -pad2:			.byte 0 +min_alignment:		.byte MIN_KERNEL_ALIGN_LG2	# minimum alignment  pad3:			.word 0  cmdline_size:   .long   COMMAND_LINE_SIZE-1     #length of the command line, @@ -212,16 +217,27 @@ hardware_subarch:	.long 0			# subarchitecture, added with 2.07  hardware_subarch_data:	.quad 0 -payload_offset:		.long input_data -payload_length:		.long input_data_end-input_data +payload_offset:		.long ZO_input_data +payload_length:		.long ZO_z_input_len  setup_data:		.quad 0			# 64-bit physical pointer to  						# single linked list of  						# struct setup_data +pref_address:		.quad LOAD_PHYSICAL_ADDR	# preferred load addr + +#define ZO_INIT_SIZE	(ZO__end - ZO_startup_32 + ZO_z_extract_offset) +#define VO_INIT_SIZE	(VO__end - VO__text) +#if ZO_INIT_SIZE > VO_INIT_SIZE +#define INIT_SIZE ZO_INIT_SIZE +#else +#define INIT_SIZE VO_INIT_SIZE +#endif +init_size:		.long INIT_SIZE		# kernel initialization size +  # End of setup header ##################################################### -	.section ".inittext", "ax" +	.section ".entrytext", "ax"  start_of_setup:  #ifdef SAFE_RESET_DISK_CONTROLLER  # Reset the disk controller.  |