1
0
Fork 0
mirror of https://github.com/tailix/kernel.git synced 2024-10-30 12:03:52 -04:00
kernel/arch/boot.s
2017-11-01 12:12:47 +00:00

45 lines
920 B
ArmAsm

.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)
.set MULTIBOOT_2_MAGIC, 0xE85250D6
.set MULTIBOOT_2_ARCH, 0
.set MULTIBOOT_2_LENGTH, 16 + 8
.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
.long 0
.long 8
.section .multiboot1
.align 4
.long MULTIBOOT_1_MAGIC
.long MULTIBOOT_1_FLAGS
.long MULTIBOOT_1_CHECKSUM
.section .bss
.align 16
stack_bottom:
.skip 16384 # 16 KiB
stack_top:
.section .text
.global _start
.type _start, @function
_start:
mov $stack_top, %esp
push %ebx // unsigned long multiboot_info
push %eax // unsigned int multiboot_magic
call main
cli
1:
hlt
jmp 1b
.size _start, . - _start