123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- ;*
- ;* x86_64-bios/bootboot.inc
- ;*
- ;* Copyright (C) 2017 - 2021 bzt (bztsrc@gitlab)
- ;*
- ;* Permission is hereby granted, free of charge, to any person
- ;* obtaining a copy of this software and associated documentation
- ;* files (the "Software"), to deal in the Software without
- ;* restriction, including without limitation the rights to use, copy,
- ;* modify, merge, publish, distribute, sublicense, and/or sell copies
- ;* of the Software, and to permit persons to whom the Software is
- ;* furnished to do so, subject to the following conditions:
- ;*
- ;* The above copyright notice and this permission notice shall be
- ;* included in all copies or substantial portions of the Software.
- ;*
- ;* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- ;* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- ;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- ;* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- ;* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- ;* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- ;* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- ;* DEALINGS IN THE SOFTWARE.
- ;*
- ;* This file is part of the BOOTBOOT Protocol package.
- ;* @brief The BOOTBOOT structure
- ;*
- ; ------ !!! WARNING: MUST MATCH ../bootboot.h !!! ------
- bootboot = 8000h
- ; this define is in the 18th line of bootboot.h
- bootboot_MAGIC equ 'BOOT'
- ; minimum protocol level:
- ; hardcoded kernel name, static kernel memory addresses
- PROTOCOL_MINIMAL equ 0
- ; static protocol level:
- ; kernel name parsed from environment, static kernel memory addresses
- PROTOCOL_STATIC equ 1
- ; dynamic protocol level:
- ; kernel name parsed from environment, kernel memory addresses parsed from ELF symbols
- PROTOCOL_DYNAMIC equ 2
- ; big-endian flag
- PROTOCOL_BIGENDIAN equ 080h
- ; loader types, just informational
- LOADER_BIOS equ 0
- LOADER_UEFI equ 4
- LOADER_RPI equ 8
- LOADER_COREBOOT equ 16
- ; framebuffer pixel format, only 32 bits supported
- FB_ARGB equ 0
- FB_RGBA equ 1
- FB_ABGR equ 2
- FB_BGRA equ 3
- ; mmap entry, type is stored in least significant tetrad of size
- virtual at 0
- mmap_ent.ptr: dq 0
- mmap_ent.size: dq 0
- end virtual
- ; we don't have entry field macros for asm
- ; realsize = size & 0xFFFFFFFFFFF0
- ; type = size & 0xF
- MMAP_USED equ 0
- MMAP_FREE equ 1
- MMAP_ACPI equ 2
- MMAP_MMIO equ 3
- INITRD_MAXSIZE equ 16 ; Mb
- virtual at bootboot
- ; first 64 bytes is platform independent
- bootboot.magic: dd 0
- bootboot.size: dd 0
- bootboot.protocol: db 1
- bootboot.fb_type: db 0
- bootboot.numcores: dw 0
- bootboot.bspid: dw 0
- bootboot.timezone: dw 0
- bootboot.datetime: dq 0
- bootboot.initrd_ptr: dq 0
- bootboot.initrd_size: dq 0
- bootboot.fb_ptr: dq 0
- bootboot.fb_size: dd 0
- bootboot.fb_width: dd 0
- bootboot.fb_height: dd 0
- bootboot.fb_scanline: dd 0
- ; the rest (64 bytes) is platform specific
- ; x86_64
- bootboot.acpi_ptr: dq 0
- bootboot.smbi_ptr: dq 0
- bootboot.efi_ptr: dq 0
- bootboot.mp_ptr: dq 0
- bootboot.unused: dq 0,0,0,0
- bootboot.mmap:
- end virtual
|