blob: e5d4ee578453c584bfbb3668ca5a555b1af73a10 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
/* Copyright (C) 2026 Richard Qin */
#include <lume/boot_params.h>
static BootParams g_boot_params = {};
static void boot_params_init_once()
{
if (g_boot_params.magic == kBootParamsMagic) {
return;
}
g_boot_params = {};
g_boot_params.magic = kBootParamsMagic;
g_boot_params.version = kBootParamsVersion;
g_boot_params.size = static_cast<uint32>(sizeof(BootParams));
}
void boot_params_init_fdt(uint64 fdt_paddr)
{
boot_params_init_once();
g_boot_params.fdt_ptr = fdt_paddr;
g_boot_params.seed_source = BOOT_SEED_NONE;
}
const BootParams* boot_params_get()
{
if (g_boot_params.magic != kBootParamsMagic) {
return nullptr;
}
return &g_boot_params;
}
void boot_params_set_image_info(uint64 phys_base, uint64 image_size,
uint64 reloc_offset, uint64 reloc_size,
uint32 comp, uint32 image_flags)
{
boot_params_init_once();
g_boot_params.kimage_phys_base = phys_base;
g_boot_params.kimage_size = image_size;
g_boot_params.kimage_reloc_offset = reloc_offset;
g_boot_params.kimage_reloc_size = reloc_size;
g_boot_params.kimage_comp = comp;
g_boot_params.kimage_flags = image_flags;
}
|