mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-20 00:26:28 +00:00
arm64: Expand arm64 image header
Expand the arm64 image header to allow for co-existance with PE/COFF header required by the EFI stub. The PE/COFF format requires the "MZ" header to be at offset 0, and the offset to the PE/COFF header to be at offset 0x3c. The image header is expanded to allow 2 instructions at the beginning to accommodate a benign intruction at offset 0 that includes the "MZ" header, a magic number, and the offset to the PE/COFF header. Signed-off-by: Roy Franz <roy.franz@linaro.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
parent
360b35a874
commit
4370eec05a
@ -68,13 +68,23 @@ Image target is available instead.
|
||||
|
||||
Requirement: MANDATORY
|
||||
|
||||
The decompressed kernel image contains a 32-byte header as follows:
|
||||
The decompressed kernel image contains a 64-byte header as follows:
|
||||
|
||||
u32 magic = 0x14000008; /* branch to stext, little-endian */
|
||||
u32 res0 = 0; /* reserved */
|
||||
u32 code0; /* Executable code */
|
||||
u32 code1; /* Executable code */
|
||||
u64 text_offset; /* Image load offset */
|
||||
u64 res0 = 0; /* reserved */
|
||||
u64 res1 = 0; /* reserved */
|
||||
u64 res2 = 0; /* reserved */
|
||||
u64 res3 = 0; /* reserved */
|
||||
u64 res4 = 0; /* reserved */
|
||||
u32 magic = 0x644d5241; /* Magic number, little endian, "ARM\x64" */
|
||||
u32 res5 = 0; /* reserved */
|
||||
|
||||
|
||||
Header notes:
|
||||
|
||||
- code0/code1 are responsible for branching to stext.
|
||||
|
||||
The image must be placed at the specified offset (currently 0x80000)
|
||||
from the start of the system RAM and called there. The start of the
|
||||
|
@ -112,6 +112,14 @@
|
||||
.quad TEXT_OFFSET // Image load offset from start of RAM
|
||||
.quad 0 // reserved
|
||||
.quad 0 // reserved
|
||||
.quad 0 // reserved
|
||||
.quad 0 // reserved
|
||||
.quad 0 // reserved
|
||||
.byte 0x41 // Magic number, "ARM\x64"
|
||||
.byte 0x52
|
||||
.byte 0x4d
|
||||
.byte 0x64
|
||||
.word 0 // reserved
|
||||
|
||||
ENTRY(stext)
|
||||
mov x21, x0 // x21=FDT
|
||||
|
Loading…
x
Reference in New Issue
Block a user