mirror of
https://github.com/torvalds/linux.git
synced 2024-12-01 16:41:39 +00:00
f9ba70535d
The specifications that talk about E820 map doesn't have an upper limit on the number of e820 entries. But, today's kernel has a hard limit of 32. With increase in memory size, we are seeing the number of E820 entries reaching close to 32. Patch below bumps the number upto 128. The patch changes the location of EDDBUF in zero-page (as it comes after E820). As, EDDBUF is not used by boot loaders, this patch should not have any effect on bootloader-setup code interface. Patch covers both i386 and x86-64. Tested on: * grub booting bzImage * lilo booting bzImage with EDID info enabled * pxeboot of bzImage Side-effect: bss increases by ~ 2K and init.data increases by ~7.5K on all systems, due to increase in size of static arrays. Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
41 lines
1.7 KiB
C
41 lines
1.7 KiB
C
|
|
#ifndef _X86_64_BOOTSETUP_H
|
|
#define _X86_64_BOOTSETUP_H 1
|
|
|
|
#define BOOT_PARAM_SIZE 4096
|
|
extern char x86_boot_params[BOOT_PARAM_SIZE];
|
|
|
|
/*
|
|
* This is set up by the setup-routine at boot-time
|
|
*/
|
|
#define PARAM ((unsigned char *)x86_boot_params)
|
|
#define SCREEN_INFO (*(struct screen_info *) (PARAM+0))
|
|
#define EXT_MEM_K (*(unsigned short *) (PARAM+2))
|
|
#define ALT_MEM_K (*(unsigned int *) (PARAM+0x1e0))
|
|
#define E820_MAP_NR (*(char*) (PARAM+E820NR))
|
|
#define E820_MAP ((struct e820entry *) (PARAM+E820MAP))
|
|
#define APM_BIOS_INFO (*(struct apm_bios_info *) (PARAM+0x40))
|
|
#define DRIVE_INFO (*(struct drive_info_struct *) (PARAM+0x80))
|
|
#define SYS_DESC_TABLE (*(struct sys_desc_table_struct*)(PARAM+0xa0))
|
|
#define MOUNT_ROOT_RDONLY (*(unsigned short *) (PARAM+0x1F2))
|
|
#define RAMDISK_FLAGS (*(unsigned short *) (PARAM+0x1F8))
|
|
#define SAVED_VIDEO_MODE (*(unsigned short *) (PARAM+0x1FA))
|
|
#define ORIG_ROOT_DEV (*(unsigned short *) (PARAM+0x1FC))
|
|
#define AUX_DEVICE_INFO (*(unsigned char *) (PARAM+0x1FF))
|
|
#define LOADER_TYPE (*(unsigned char *) (PARAM+0x210))
|
|
#define KERNEL_START (*(unsigned int *) (PARAM+0x214))
|
|
#define INITRD_START (*(unsigned int *) (PARAM+0x218))
|
|
#define INITRD_SIZE (*(unsigned int *) (PARAM+0x21c))
|
|
#define EDID_INFO (*(struct edid_info *) (PARAM+0x140))
|
|
#define EDD_NR (*(unsigned char *) (PARAM+EDDNR))
|
|
#define EDD_MBR_SIG_NR (*(unsigned char *) (PARAM+EDD_MBR_SIG_NR_BUF))
|
|
#define EDD_MBR_SIGNATURE ((unsigned int *) (PARAM+EDD_MBR_SIG_BUF))
|
|
#define EDD_BUF ((struct edd_info *) (PARAM+EDDBUF))
|
|
#define COMMAND_LINE saved_command_line
|
|
|
|
#define RAMDISK_IMAGE_START_MASK 0x07FF
|
|
#define RAMDISK_PROMPT_FLAG 0x8000
|
|
#define RAMDISK_LOAD_FLAG 0x4000
|
|
|
|
#endif
|