mirror of
https://github.com/xcat2/xNBA.git
synced 2024-12-15 15:51:44 +00:00
95 lines
1.8 KiB
ArmAsm
95 lines
1.8 KiB
ArmAsm
|
#include "elf.h"
|
||
|
|
||
|
.arch i386
|
||
|
.section ".prefix", "a", @progbits
|
||
|
|
||
|
#define LOAD_ADDR 0x10000
|
||
|
|
||
|
/* ELF Header */
|
||
|
.globl elf_header
|
||
|
elf_header:
|
||
|
e_ident: .byte 0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||
|
e_type: .short ET_DYN
|
||
|
e_machine: .short EM_386
|
||
|
e_version: .long 1
|
||
|
e_entry: .long LOAD_ADDR + _start - elf_header
|
||
|
e_phoff: .long elf_program_header - elf_header
|
||
|
e_shoff: .long 0
|
||
|
e_flags: .long 0
|
||
|
e_ehsize: .short elf_header_end - elf_header
|
||
|
e_phentsize: .short ELF32_PHDR_SIZE
|
||
|
e_phnum: .short (elf_program_header_end - elf_program_header)/ELF32_PHDR_SIZE
|
||
|
e_shentsize: .short 0
|
||
|
e_shnum: .short 0
|
||
|
e_shstrndx: .short 0
|
||
|
elf_header_end:
|
||
|
|
||
|
elf_program_header:
|
||
|
phdr1_p_type: .long PT_NOTE
|
||
|
phdr1_p_offset: .long elf_note - elf_header
|
||
|
phdr1_p_vaddr: .long elf_note
|
||
|
phdr1_p_paddr: .long elf_note
|
||
|
phdr1_p_filesz: .long elf_note_end - elf_note
|
||
|
phdr1_p_memsz: .long elf_note_end - elf_note
|
||
|
phdr1_p_flags: .long PF_R | PF_W | PF_X
|
||
|
phdr1_p_align: .long 0
|
||
|
|
||
|
/* The decompressor */
|
||
|
phdr2_p_type: .long PT_LOAD
|
||
|
phdr2_p_offset: .long 0
|
||
|
phdr2_p_vaddr: .long elf_header
|
||
|
phdr2_p_paddr: .long LOAD_ADDR
|
||
|
phdr2_p_filesz: .long _verbatim_size
|
||
|
phdr2_p_memsz: .long _image_size
|
||
|
phdr2_p_flags: .long PF_R | PF_W | PF_X
|
||
|
phdr2_p_align: .long 16
|
||
|
|
||
|
elf_program_header_end:
|
||
|
|
||
|
.globl elf_note
|
||
|
elf_note:
|
||
|
.balign 4
|
||
|
.int 2f - 1f
|
||
|
.int 4f - 3f
|
||
|
.int EIN_PROGRAM_NAME
|
||
|
1: .asciz "ELFBoot"
|
||
|
2:
|
||
|
.balign 4
|
||
|
3:
|
||
|
.asciz "Etherboot"
|
||
|
4:
|
||
|
|
||
|
|
||
|
.balign 4
|
||
|
.int 2f - 1f
|
||
|
.int 4f - 3f
|
||
|
.int EIN_PROGRAM_VERSION
|
||
|
1: .asciz "ELFBoot"
|
||
|
2:
|
||
|
.balign 4
|
||
|
3:
|
||
|
.asciz VERSION
|
||
|
4:
|
||
|
|
||
|
#if 0
|
||
|
.balign 4
|
||
|
.int 2f - 1f
|
||
|
.int 4f - 3f
|
||
|
.int EIN_PROGRAM_CHECKSUM
|
||
|
1: .asciz "ELFBoot"
|
||
|
2:
|
||
|
.balign 4
|
||
|
3:
|
||
|
.word 0
|
||
|
4:
|
||
|
#endif
|
||
|
.balign 4
|
||
|
elf_note_end:
|
||
|
|
||
|
/* Dummy routines to satisfy the build */
|
||
|
.section ".text16", "ax", @progbits
|
||
|
prefix_exit:
|
||
|
|
||
|
prefix_exit_end:
|
||
|
.previous
|