more worse latest one put startup_32 to 0x200000.
and mkelfImage is harded code to call startup_32 or other entry_point in bzImage at 0x100000. # Jump to the linux kernel ljmp $ PROT_CODE_SEG , $ 0x100000
need to make head.S to get into 64bit and use real entry pointer by vmlinux and bzImage in elf64 format.
YH
yhlunb:/home/yhlu/xxx/xx/kernel/linux-2.6 # readelf -hl vmlinux ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: Advanced Micro Devices X86-64 Version: 0x1 Entry point address: 0x200100 Start of program headers: 64 (bytes into file) Start of section headers: 7192496 (bytes into file) Flags: 0x0 Size of this header: 64 (bytes) Size of program headers: 56 (bytes) Number of program headers: 5 Size of section headers: 64 (bytes) Number of section headers: 42 Section header string table index: 39
Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flags Align LOAD 0x0000000000100000 0xffffffff80200000 0x0000000000200000 0x000000000032f508 0x000000000032f508 R E 100000 LOAD 0x0000000000430000 0xffffffff80530000 0x0000000000530000 0x0000000000148ec8 0x0000000000148ec8 RWE 100000 LOAD 0x0000000000600000 0xffffffffff600000 0x0000000000679000 0x0000000000000c08 0x0000000000000c08 RWE 100000 LOAD 0x000000000067a000 0xffffffff8067a000 0x000000000067a000 0x000000000005dd68 0x00000000000e91c8 RWE 100000 NOTE 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000 R 8