blob: 07cb8d9ebf8ddff829e2887f394e1bf327e54260 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors
//
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT
#ifndef ZIRCON_KERNEL_PLATFORM_PC_INCLUDE_PLATFORM_PC_BOOTLOADER_H_
#define ZIRCON_KERNEL_PLATFORM_PC_INCLUDE_PLATFORM_PC_BOOTLOADER_H_
#include <stdint.h>
#include <zircon/boot/driver-config.h>
#include <zircon/boot/image.h>
#include <ktl/span.h>
#include <ktl/variant.h>
// Data passed in by the bootloader
// Used by various bits of pc platform init
struct pc_bootloader_info_t {
uint64_t acpi_rsdp;
uint64_t smbios;
void* efi_system_table;
ktl::span<zbi_mem_range_t> memory_ranges;
uint64_t ramdisk_base;
size_t ramdisk_size;
zbi_swfb_t fb;
ktl::variant<ktl::monostate, dcfg_simple_pio_t, dcfg_simple_t> uart;
zbi_nvram_t nvram;
uint64_t platform_id_size;
zbi_platform_id_t platform_id;
};
extern pc_bootloader_info_t bootloader;
#endif // ZIRCON_KERNEL_PLATFORM_PC_INCLUDE_PLATFORM_PC_BOOTLOADER_H_