Unleashed v1.4
[unleashed.git] / usr / src / boot / sys / boot / common / multiboot.S
blob391ccd76c35cf28ea342266b179320d448739d9c
1 /*
2  * This file and its contents are supplied under the terms of the
3  * Common Development and Distribution License ("CDDL"), version 1.0.
4  * You may only use this file in accordance with the terms of version
5  * 1.0 of the CDDL.
6  *
7  * A full copy of the text of the CDDL should have accompanied this
8  * source.  A copy of the CDDL is also available via the Internet at
9  * http://www.illumos.org/license/CDDL.
10  */
13  * Copyright 2018 Toomas Soome <tsoome@me.com>
14  */
16         .file   "multiboot.s"
19  * Provide fake multiboot header to support versioning and partition
20  * start. The fake MB header is used by versioning code located in
21  * usr/src/cmd/boot/common. Since the BIOS bootblock is stored on raw disk,
22  * this fake header is used to store the location of the version info block.
23  * Additionally we use it to store partition start_sector, so we can identify
24  * our root file system partition. Note we are using LBA64 here.
25  */
27 #define ASM_FILE
28 #include <sys/multiboot.h>
30                 .globl mb_header, start_sector
31                 .text
33                 .align 4
34 mb_header:
35                 .long   MULTIBOOT_HEADER_MAGIC
36                 .long   MULTIBOOT_AOUT_KLUDGE
37                 .long   -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_AOUT_KLUDGE)
38                 .long   0                       /* header_addr */
39                 .long   0                       /* load_addr */
40                 .long   0                       /* load_end_addr */
41 start_sector:   .long   0                       /* partition LBA */
42                 .long   0