** Copyright 2003, Axel DΓΆrfler, axeld@pinc-software.de. All rights reserved.
** Distributed under the terms of the MIT License.
*/
#ifndef KERNEL_ARCH_RISCV64_KERNEL_ARGS_H
#define KERNEL_ARCH_RISCV64_KERNEL_ARGS_H
#ifndef KERNEL_BOOT_KERNEL_ARGS_H
# error This file is included from <boot/kernel_args.h> only
#endif
#include <util/FixedWidthPointer.h>
#include <boot/uart.h>
#define _PACKED __attribute__((packed))
#define MAX_VIRTUAL_RANGES_TO_KEEP 32
enum {
kPlatformNone,
kPlatformMNative,
kPlatformSbi,
};
typedef struct {
addr_range physMap;
uint32 num_virtual_ranges_to_keep;
addr_range virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
uint32 machine_platform;
uint64 timerFrequency;
FixedWidthPointer<void> acpi_root;
FixedWidthPointer<void> fdt;
addr_range htif;
addr_range plic;
addr_range clint;
uart_info uart;
uint32 hartIds[SMP_MAX_CPUS];
uint32 plicContexts[SMP_MAX_CPUS];
} _PACKED arch_kernel_args;
#endif