kernel/arch/boot.s

46 lines
920 B
ArmAsm
Raw Normal View History

2017-11-01 08:53:27 +00:00
.set MULTIBOOT_1_MAGIC, 0x1BADB002
.set MULTIBOOT_1_FLAGS, (1 << 0) | (1 << 1) // Align, meminfo
.set MULTIBOOT_1_CHECKSUM, -(MULTIBOOT_1_MAGIC + MULTIBOOT_1_FLAGS)
2017-11-01 04:43:42 +00:00
2017-11-01 08:53:27 +00:00
.set MULTIBOOT_2_MAGIC, 0xE85250D6
.set MULTIBOOT_2_ARCH, 0
2017-11-01 09:45:56 +00:00
.set MULTIBOOT_2_LENGTH, 16 + 8
2017-11-01 08:53:27 +00:00
.set MULTIBOOT_2_CHECKSUM, -(MULTIBOOT_2_MAGIC + MULTIBOOT_2_ARCH + MULTIBOOT_2_LENGTH)
.section .multiboot2
.align 4
.long MULTIBOOT_2_MAGIC
.long MULTIBOOT_2_ARCH
.long MULTIBOOT_2_LENGTH
.long MULTIBOOT_2_CHECKSUM
2017-11-01 09:45:56 +00:00
.long 0
.long 8
2017-11-01 08:53:27 +00:00
.section .multiboot1
2017-11-01 04:43:42 +00:00
.align 4
2017-11-01 08:53:27 +00:00
.long MULTIBOOT_1_MAGIC
.long MULTIBOOT_1_FLAGS
.long MULTIBOOT_1_CHECKSUM
2017-11-01 04:43:42 +00:00
.section .bss
.align 16
stack_bottom:
.skip 16384 # 16 KiB
stack_top:
.section .text
.global _start
.type _start, @function
_start:
mov $stack_top, %esp
2017-11-01 11:43:52 +00:00
push %ebx // unsigned long multiboot_info
push %eax // unsigned int multiboot_magic
2017-11-01 04:43:42 +00:00
call main
cli
1:
hlt
jmp 1b
.size _start, . - _start