2009-07-27 16:23:08 +00:00
|
|
|
/*
|
|
|
|
** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
2017-02-09 22:03:59 -05:00
|
|
|
** Distributed under the terms of the MIT License.
|
2009-07-27 16:23:08 +00:00
|
|
|
*/
|
2009-08-13 18:57:36 +00:00
|
|
|
#ifndef KERNEL_ARCH_ARM_KERNEL_ARGS_H
|
|
|
|
#define KERNEL_ARCH_ARM_KERNEL_ARGS_H
|
2009-07-27 16:23:08 +00:00
|
|
|
|
|
|
|
#ifndef KERNEL_BOOT_KERNEL_ARGS_H
|
|
|
|
# error This file is included from <boot/kernel_args.h> only
|
|
|
|
#endif
|
|
|
|
|
2020-02-21 14:26:56 -06:00
|
|
|
|
|
|
|
#include <util/FixedWidthPointer.h>
|
2021-12-03 12:08:57 +01:00
|
|
|
#include <boot/interrupt_controller.h>
|
2022-08-09 15:45:31 +02:00
|
|
|
#include <boot/timer.h>
|
2021-08-17 19:03:21 -05:00
|
|
|
#include <boot/uart.h>
|
2020-02-21 14:26:56 -06:00
|
|
|
|
|
|
|
|
|
|
|
#define _PACKED __attribute__((packed))
|
|
|
|
|
2021-11-28 16:13:11 +01:00
|
|
|
#define MAX_VIRTUAL_RANGES_TO_KEEP 32
|
|
|
|
|
2021-08-17 19:03:21 -05:00
|
|
|
|
2009-07-27 16:23:08 +00:00
|
|
|
// kernel args
|
|
|
|
typedef struct {
|
|
|
|
// architecture specific
|
2020-02-21 14:26:56 -06:00
|
|
|
uint32 phys_pgdir;
|
|
|
|
uint32 vir_pgdir;
|
|
|
|
uint32 next_pagetable;
|
2022-01-27 17:12:47 +01:00
|
|
|
uint32 last_pagetable;
|
2020-02-21 14:26:56 -06:00
|
|
|
|
2021-11-28 16:13:11 +01:00
|
|
|
// The virtual ranges we want to keep in the kernel.
|
|
|
|
uint32 num_virtual_ranges_to_keep;
|
|
|
|
addr_range virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
|
|
|
|
|
2020-02-21 14:26:56 -06:00
|
|
|
// needed for UEFI, otherwise kernel acpi support can't find ACPI root
|
|
|
|
FixedWidthPointer<void> acpi_root;
|
2020-12-21 13:09:24 -06:00
|
|
|
FixedWidthPointer<void> fdt;
|
2021-08-17 19:03:21 -05:00
|
|
|
|
2022-08-09 15:45:31 +02:00
|
|
|
uart_info uart;
|
|
|
|
intc_info interrupt_controller;
|
|
|
|
boot_timer_info timer;
|
2020-02-21 14:26:56 -06:00
|
|
|
} _PACKED arch_kernel_args;
|
2009-07-27 16:23:08 +00:00
|
|
|
|
2009-08-13 18:57:36 +00:00
|
|
|
#endif /* KERNEL_ARCH_ARM_KERNEL_ARGS_H */
|