69 lines
2.1 KiB
ArmAsm
69 lines
2.1 KiB
ArmAsm
#include "multiboot2.h"
|
|
#include "kcapsule.h" // Auto-generated file
|
|
#include "boot.h"
|
|
.set falign, 0x200
|
|
.code16
|
|
.section ".header", "a"
|
|
.global _start
|
|
_start: // Just make linker happy
|
|
yuki_header:
|
|
.ascii "YUKIOS"
|
|
.quad 0x131084C
|
|
|
|
.org 0x50
|
|
.balign 8
|
|
multiboot2_header:
|
|
.long MULTIBOOT2_HEADER_MAGIC
|
|
.long MULTIBOOT_ARCHITECTURE_I386
|
|
.long multiboot2_header_end - multiboot2_header
|
|
.long -(MULTIBOOT2_HEADER_MAGIC + MULTIBOOT_ARCHITECTURE_I386 + (multiboot2_header_end - multiboot2_header))
|
|
.balign 8
|
|
address_tag:
|
|
.short MULTIBOOT_HEADER_TAG_ADDRESS
|
|
.short 0
|
|
.long address_tag_end - address_tag
|
|
.long LOAD_PHYSICAL_ADDR + multiboot2_header
|
|
.long -1
|
|
.long 0
|
|
.long 0
|
|
address_tag_end:
|
|
.balign 8
|
|
entry_tag:
|
|
.short MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS
|
|
.short MULTIBOOT_HEADER_TAG_OPTIONAL
|
|
.long entry_tag_end - entry_tag
|
|
.long LOAD_PHYSICAL_ADDR + header_size + CAP_startup_32
|
|
entry_tag_end:
|
|
// entry_efi_i386_tag:
|
|
// .short MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS_EFI32
|
|
// .short MULTIBOOT_HEADER_TAG_OPTIONAL
|
|
// .long entry_efi_i386_tag_end - entry_efi_i386_tag
|
|
// .long header_size + CAP_startup_32
|
|
// entry_efi_i386_tag_end:
|
|
// entry_efi_amd64_tag:
|
|
// .short MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS_EFI64
|
|
// .short MULTIBOOT_HEADER_TAG_OPTIONAL
|
|
// .long entry_efi_amd64_tag_end - entry_efi_amd64_tag
|
|
// .long header_size + CAP_startup_64
|
|
// entry_efi_amd64_tag_end:
|
|
.balign 8
|
|
framebuffer_tag:
|
|
.short MULTIBOOT_HEADER_TAG_FRAMEBUFFER
|
|
.short MULTIBOOT_HEADER_TAG_OPTIONAL
|
|
.long framebuffer_tag_end - framebuffer_tag
|
|
.long 0
|
|
.long 0
|
|
.long 0
|
|
framebuffer_tag_end:
|
|
// .balign 8
|
|
// relocatable_tag:
|
|
// .short MULTIBOOT_HEADER_TAG_RELOCATABLE
|
|
// .short MULTIBOOT_HEADER_TAG_OPTIONAL
|
|
// .long relocatable_tag_end - relocatable_tag
|
|
// .long 0x0 /* min_addr */
|
|
// .long 0xf0000000 /* max_addr */
|
|
// .long falign /* align */
|
|
// .long 0x0
|
|
// relocatable_tag_end:
|
|
multiboot2_header_end:
|
|
.balign falign |