X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=x86_64%2Fsysdeps.h;h=ff99eef220cd8709da84fdd9de5e9410f67e4f12;hb=4386d0ddc988a11e8f55d774f577e4ca4f83cea9;hp=338aa40bfbb6aa4ed28f2e543fe6ad0dfc52b559;hpb=90dc485b21e0c6b3417e22e86f637f45e62748f2;p=debian%2Felilo diff --git a/x86_64/sysdeps.h b/x86_64/sysdeps.h index 338aa40..ff99eef 100644 --- a/x86_64/sysdeps.h +++ b/x86_64/sysdeps.h @@ -107,12 +107,12 @@ typedef union x86_64_boot_params { /* 0x06 */ UINT8 orig_video_mode; /* LDR */ /* 0x07 */ UINT8 orig_video_cols; /* LDR */ -/* 0x08 */ UINT16 unused_1; /* unused */ +/* 0x08 */ UINT16 pad_1; /* unused */ /* %%TBD */ /* 0x0A */ UINT16 orig_ega_bx; /* LDR */ -/* 0x0C */ UINT16 unused_2; /* unused */ +/* 0x0C */ UINT16 pad_2; /* unused */ /* Screen height before passing control to kernel. */ /* 0x0E */ UINT8 orig_video_rows; /* LDR */ @@ -174,7 +174,7 @@ typedef union x86_64_boot_params { /* 0x4E */ UINT32 bios_code_len; /* LDR */ /* 0x52 */ UINT16 bios_data_len; /* LDR */ -/* 0x54 */ UINT8 unused_3[0x2C]; /* unused */ +/* 0x54 */ UINT8 pad_3[0x2C]; /* unused */ /* %%TBD */ /* 0x80 */ UINT8 hd0_info[0x10]; /* LDR */ @@ -184,7 +184,7 @@ typedef union x86_64_boot_params { /* 0xA0 */ UINT16 mca_info_len; /* LDR */ /* 0xA2 */ UINT8 mca_info_buf[0x10]; /* LDR */ -/* 0xB2 */ UINT8 unused_4[0x10E]; /* unused */ +/* 0xB2 */ UINT8 pad_4[0x10E]; /* unused */ /* EFI boot loader signature. */ /* 0x1C0 */ UINT8 efi_loader_sig[4]; /* LDR */ @@ -209,9 +209,9 @@ typedef union x86_64_boot_params { /* Available contiguous extended memory in KB. */ /* 0x1E0 */ UINT32 alt_mem_k; /* LDR */ -/* 0x1E4 */ UINT32 unused_51; /* unused */ +/* 0x1E4 */ UINT32 pad_51; /* unused */ /* 0x1E8 */ UINT8 e820_nrmap; -/* 0x1E9 */ UINT32 unused_52[2]; /* unused */ +/* 0x1E9 */ UINT32 pad_52[2]; /* unused */ /* Size of setup code in sectors (1 sector == 512 bytes). */ /* 0x1F1 */ UINT8 setup_sectors; /* BLD */ @@ -220,15 +220,10 @@ typedef union x86_64_boot_params { /* 0x1F2 */ UINT16 mount_root_rdonly; /* BLD */ /* %%TBD */ -/* 0x1F4 */ UINT16 sys_size; /* BLD */ +/* 0x1F4 */ UINT32 sys_size; /* BLD */ /* %%TBD */ -/* 0x1F6 */ UINT16 swap_dev; /* BLD */ - -/* %%TBD */ -/* 0x1F8 */ UINT16 ramdisk_flags; /* BLD */ -#define RAMDISK_PROMPT 0x8000 -#define RAMDISK_LOAD 0x4000 +/* 0x1F8 */ UINT16 ram_size_DNU; /* BLD */ /* %%TBD */ /* 0x1FA */ UINT16 video_mode_flag; /* BLD */ @@ -236,12 +231,8 @@ typedef union x86_64_boot_params { /* %%TBD */ /* 0x1FC */ UINT16 orig_root_dev; /* BLD */ -/* 0x1FE */ UINT8 unused_6; /* unused */ - /* %%TBD */ -/* 0x1FF */ UINT8 aux_dev_info; /* LDR */ -#define NO_MOUSE 0x00 -#define FOUND_MOUSE 0xAA +/* 0x1FE */ UINT16 boot_flag; /* ? */ /* Jump past setup data (not used in EFI). */ /* 0x200 */ UINT16 jump; /* BLD */ @@ -283,16 +274,21 @@ typedef union x86_64_boot_params { /* 0x21C */ UINT32 initrd_size; /* LDR */ /* %%TBD */ -/* 0x220 */ UINT32 bootsect_helper; /* BLD */ +/* 0x220 */ UINT32 bootsect_helper_DNU; /* BLD */ /* %%TBD */ /* 0x224 */ UINT16 heap_end_ptr; /* LDR */ /* %%TBD */ -/* 0x226 */ UINT16 unused_7; /* LDR */ +/* 0x226 */ UINT8 ext_loader_ver; /* LDR */ +/* 0x227 */ UINT8 ext_loader_type; /* LDR */ /* 0x228 */ UINT32 cmdline_addr; /* LDR */ -/* 0x22C */ UINT32 unused_8[41]; +/* 0x22C */ UINT32 initrd_addr_max; /* BLD */ +/* 0x230 */ UINT32 kernel_alignment; /* BLD */ +/* 0x234 */ UINT8 relocatable_kernel; /* BLD */ +/* 0x235 */ UINT8 pad_8[3]; +/* 0x238 */ UINT32 pad_9[38]; /* 0x2D0 */ UINT8 e820_map[2560]; } s; } boot_params_t; @@ -368,6 +364,7 @@ extern UINT8 rmswitch_image[]; extern UINTN rmswitch_size; extern INTN x86_64_use_legacy_free_boot(); +extern INTN x86_64_text_mode(); /* * How to jump to kernel code @@ -382,7 +379,6 @@ start_kernel(VOID *kentry, boot_params_t *bp) UINT16 kernel_cs; } jumpvector; VOID *jump_start; - uint64_t temp; /* * Disable interrupts. @@ -390,22 +386,16 @@ start_kernel(VOID *kentry, boot_params_t *bp) asm volatile ( "cli" : : ); /* - * Relocate kernel (if needed), and initrd (if present). - * Copy kernel first, in case kernel was loaded overlapping where we're - * planning to copy the initrd. This assumes that the initrd didn't - * get loaded overlapping where we're planning to copy the kernel, but - * that's pretty unlikely since we couldn't alloc that space for the - * kernel (or the kernel would already be there). + * Relocate kernel (if needed). + * This assumes that the initrd didn't get loaded overlapping where + * we're planning to copy the kernel, but that's pretty unlikely + * since we couldn't alloc that space for the kernel (or the kernel + * would already be there). */ if (kernel_start != kernel_load_address) { MEMCPY(kernel_start, kernel_load_address, kernel_size); } - if (bp->s.initrd_start) { - temp = bp->s.initrd_start; - MEMCPY(INITRD_START, temp , bp->s.initrd_size); - bp->s.initrd_start = INITRD_START; - } /* * Copy boot sector, setup data and command line * to final resting place. We need to copy @@ -468,7 +458,8 @@ start_kernel(VOID *kentry, boot_params_t *bp) } typedef struct sys_img_options { - UINT8 nothing_yet; + UINT8 dummy; /* forces non-zero offset for first field */ + UINT8 text_mode; /* do not try to initialize Graphics Output Protocol */ } sys_img_options_t; #endif /* __ELILO_SYSDEPS_X86_64_H__ */