1/*
2** Copyright 2003, Axel D��rfler, axeld@pinc-software.de. All rights reserved.
3** Distributed under the terms of the MIT License.
4*/
5#ifndef KERNEL_ARCH_ARM_KERNEL_ARGS_H
6#define KERNEL_ARCH_ARM_KERNEL_ARGS_H
7
8#ifndef KERNEL_BOOT_KERNEL_ARGS_H
9#	error This file is included from <boot/kernel_args.h> only
10#endif
11
12
13#include <util/FixedWidthPointer.h>
14#include <boot/interrupt_controller.h>
15#include <boot/timer.h>
16#include <boot/uart.h>
17
18
19#define _PACKED __attribute__((packed))
20
21#define MAX_VIRTUAL_RANGES_TO_KEEP	32
22
23
24// kernel args
25typedef struct {
26	// architecture specific
27	uint32	phys_pgdir;
28	uint32	vir_pgdir;
29	uint32	next_pagetable;
30	uint32	last_pagetable;
31
32	// The virtual ranges we want to keep in the kernel.
33	uint32		num_virtual_ranges_to_keep;
34	addr_range	virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
35
36	// needed for UEFI, otherwise kernel acpi support can't find ACPI root
37	FixedWidthPointer<void> acpi_root;
38	FixedWidthPointer<void> fdt;
39
40	uart_info			uart;
41	intc_info			interrupt_controller;
42	boot_timer_info		timer;
43} _PACKED arch_kernel_args;
44
45#endif	/* KERNEL_ARCH_ARM_KERNEL_ARGS_H */
46