lindows/lcrash/setup/header.S

65 lines
1.5 KiB
ArmAsm

#include <lcrashkern_locs.h>
.extern _end
.extern cckernel_size
.extern cckernel_start
.section ".header", "ax"
.globl setup_info
setup_sects: .byte setup_sectors - 1
root_flags: .word 0
syssize: .long KK__ebss / 16
ram_size: .word 0
vid_mode: .word 0
root_dev: .word 0
boot_flag: .word 0xAA55
.globl _start
_start:
jump: .byte 0xeb
.byte -2 // entrylow - 1f
1:
signature: .ascii "HdrS"
version: .word 0x020f
realmode_switch: .word 0, 0
start_sys_seg: .word 0
.word 0 //kernel_version - 512
type_of_loader: .byte 0
loadflags: .byte 0x01
setup_move_size: .word 0x8000
code32_start: .long 0 # .long 0x100000
ramdisk_image: .long 0
ramdisk_size: .long 0
bootsect_kludge: .long 0
heap_end_ptr: .word 0 # _end + 512
ext_loader_ver: .byte 0
ext_loader_type: .byte 0
cmd_line_ptr: .long 0
initrd_addr_max: .long 0x7fffffff
kernel_alignment: .long 1
relocatable_kernel: .byte 1
min_alignment: .byte 1
xloadflags: .word 0x13
cmdline_size: .long 512
hardware_subarch: .long 0
hardware_subarch_data: .quad 0
payload_offset: .long _end // cckernel_start
payload_length: .long _KKCLEN // cckernel_size
setup_data: .quad 0
pref_address: .quad 0
init_size: .long 0x20000 // a bit of space
handover_offset: .long 0 // TODO
kernel_info_offset: .long 0 // TODO
/* .globl entrylow
.section ".entrytext", "ax"
entrylow:
1: jmp 1b
2: jmp 2b
3: jmp 3b
4: jmp 4b
5: jmp 5b
6: jmp 6b
7: jmp 7b
.section ".initdata", "a"
kernel_version: .asciz "lcrash 0.1.0"*/