65 lines
1.5 KiB
ArmAsm
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 0x40000 // 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"*/
|