LCOV - code coverage report
Current view: top level - zephyr/arch/x86 - multiboot.h Hit Total Coverage
Test: new.info Lines: 0 22 0.0 %
Date: 2025-01-02 12:14:04

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2019 Intel Corporation
       3             :  *
       4             :  * SPDX-License-Identifier: Apache-2.0
       5             :  */
       6             : 
       7             : #ifndef ZEPHYR_INCLUDE_ARCH_X86_MULTIBOOT_H_
       8             : #define ZEPHYR_INCLUDE_ARCH_X86_MULTIBOOT_H_
       9             : 
      10             : #ifndef _ASMLANGUAGE
      11             : 
      12             : #include "multiboot_info.h"
      13             : 
      14           0 : extern struct multiboot_info multiboot_info;
      15             : 
      16             : #ifdef CONFIG_MULTIBOOT_INFO
      17             : 
      18             : void z_multiboot_init(struct multiboot_info *info_pa);
      19             : 
      20             : #else
      21             : 
      22             : inline void z_multiboot_init(struct multiboot_info *info_pa)
      23             : {
      24             :         ARG_UNUSED(info_pa);
      25             : }
      26             : 
      27             : #endif /* CONFIG_MULTIBOOT_INFO */
      28             : 
      29             : /*
      30             :  * the mmap_addr field points to a series of entries of the following form.
      31             :  */
      32             : 
      33           0 : struct multiboot_mmap {
      34           0 :         uint32_t size;
      35           0 :         uint64_t base;
      36           0 :         uint64_t length;
      37           0 :         uint32_t type;
      38             : } __packed;
      39             : 
      40             : #endif /* _ASMLANGUAGE */
      41             : 
      42             : /* Boot type value (see prep_c.c) */
      43           0 : #define MULTIBOOT_BOOT_TYPE 1
      44             : 
      45             : /*
      46             :  * Possible values for multiboot_mmap.type field.
      47             :  * Other values should be assumed to be unusable ranges.
      48             :  */
      49             : 
      50           0 : #define MULTIBOOT_MMAP_RAM              1       /* available RAM */
      51           0 : #define MULTIBOOT_MMAP_ACPI             3       /* reserved for ACPI */
      52           0 : #define MULTIBOOT_MMAP_NVS              4       /* ACPI non-volatile */
      53           0 : #define MULTIBOOT_MMAP_DEFECTIVE        5       /* defective RAM module */
      54             : 
      55             : /*
      56             :  * Magic numbers: the kernel multiboot header (see crt0.S) begins with
      57             :  * MULTIBOOT_HEADER_MAGIC to signal to the booter that it supports
      58             :  * multiboot. On kernel entry, EAX is set to MULTIBOOT_EAX_MAGIC to
      59             :  * signal that the boot loader is multiboot compliant.
      60             :  */
      61             : 
      62           0 : #define MULTIBOOT_HEADER_MAGIC          0x1BADB002
      63           0 : #define MULTIBOOT_EAX_MAGIC             0x2BADB002
      64             : 
      65             : /*
      66             :  * Typically, we put no flags in the multiboot header, as it exists solely
      67             :  * to reassure the loader that we're a valid binary. The exception to this
      68             :  * is when we want the loader to configure the framebuffer for us.
      69             :  */
      70             : 
      71           0 : #define MULTIBOOT_HEADER_FLAG_MEM       BIT(1)  /* want mem_/mmap_* info */
      72           0 : #define MULTIBOOT_HEADER_FLAG_FB        BIT(2)  /* want fb_* info */
      73             : 
      74             : #ifdef CONFIG_INTEL_MULTIBOOTFB_DISPLAY
      75             : #define MULTIBOOT_HEADER_FLAGS \
      76             :         (MULTIBOOT_HEADER_FLAG_FB | MULTIBOOT_HEADER_FLAG_MEM)
      77             : #else
      78           0 : #define MULTIBOOT_HEADER_FLAGS MULTIBOOT_HEADER_FLAG_MEM
      79             : #endif
      80             : 
      81             : /* The flags in the boot info structure tell us which fields are valid. */
      82             : 
      83           0 : #define MULTIBOOT_INFO_FLAGS_MEM                BIT(0)  /* mem_* valid */
      84           0 : #define MULTIBOOT_INFO_FLAGS_CMDLINE            BIT(2)  /* cmdline* valid */
      85           0 : #define MULTIBOOT_INFO_FLAGS_MMAP               BIT(6)  /* mmap_* valid */
      86           0 : #define MULTIBOOT_INFO_FLAGS_FB                 BIT(12) /* fb_* valid */
      87             : 
      88             : /* The only fb_type we support is RGB. No text modes and no color palettes. */
      89             : 
      90           0 : #define MULTIBOOT_INFO_FB_TYPE_RGB      1
      91             : 
      92             : #endif /* ZEPHYR_INCLUDE_ARCH_X86_MULTIBOOT_H_ */

Generated by: LCOV version 1.14