mirror of
https://gitlab.com/bztsrc/bootboot.git
synced 2023-02-13 20:54:32 -05:00
125 lines
3.2 KiB
PHP
125 lines
3.2 KiB
PHP
;*
|
|
;* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|