xref: /haiku/headers/private/kernel/arch/arm/arch_kernel_args.h (revision 4a55cc230cf7566cadcbb23b1928eefff8aea9a2)
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
25 typedef struct {
26 	int		cpu_type;
27 	int		fpu_type;
28 	int		mmu_type;
29 	int		platform;
30 	int		machine; // platform specific machine type
31 
32 	// architecture specific
33 	uint32	phys_pgdir;
34 	uint32	vir_pgdir;
35 	uint32	next_pagetable;
36 	uint32	last_pagetable;
37 
38 	// The virtual ranges we want to keep in the kernel.
39 	uint32		num_virtual_ranges_to_keep;
40 	addr_range	virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
41 
42 	// needed for UEFI, otherwise kernel acpi support can't find ACPI root
43 	FixedWidthPointer<void> acpi_root;
44 	FixedWidthPointer<void> fdt;
45 
46 	uart_info			uart;
47 	intc_info			interrupt_controller;
48 	boot_timer_info		timer;
49 } _PACKED arch_kernel_args;
50 
51 #endif	/* KERNEL_ARCH_ARM_KERNEL_ARGS_H */
52