2007-10-22 03:42:09 +04:00
|
|
|
/*
|
|
|
|
** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
2017-02-10 06:03:59 +03:00
|
|
|
** Distributed under the terms of the MIT License.
|
2007-10-22 03:42:09 +04:00
|
|
|
*/
|
|
|
|
#ifndef KERNEL_ARCH_M68K_KERNEL_ARGS_H
|
|
|
|
#define KERNEL_ARCH_M68K_KERNEL_ARGS_H
|
|
|
|
|
|
|
|
#ifndef KERNEL_BOOT_KERNEL_ARGS_H
|
|
|
|
# error This file is included from <boot/kernel_args.h> only
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define _PACKED __attribute__((packed))
|
|
|
|
|
|
|
|
//#define MAX_VIRTUAL_RANGES_TO_KEEP 32
|
|
|
|
|
|
|
|
// kernel args
|
|
|
|
typedef struct {
|
2008-06-20 06:11:45 +04:00
|
|
|
int cpu_type; // decimal: 68030, ...
|
|
|
|
int fpu_type; // decimal: 68030, ...
|
|
|
|
int mmu_type; // decimal: 68030, ...
|
2008-06-23 00:57:49 +04:00
|
|
|
int platform; // M68K_PLATFORM_*
|
|
|
|
int machine; // platform specific machine type
|
2008-01-13 02:55:53 +03:00
|
|
|
bool has_lpstop; //XXX: use bit flags
|
2007-10-22 03:42:09 +04:00
|
|
|
// architecture specific
|
|
|
|
uint64 cpu_frequency;
|
|
|
|
uint64 bus_frequency;
|
|
|
|
uint64 time_base_frequency;
|
|
|
|
|
2007-12-29 16:01:14 +03:00
|
|
|
// page root table
|
|
|
|
uint32 phys_pgroot;
|
|
|
|
uint32 vir_pgroot;
|
2008-07-25 04:25:27 +04:00
|
|
|
// interrupt vector table (VBR)
|
|
|
|
uint32 phys_vbr;
|
|
|
|
uint32 vir_vbr;
|
2007-12-29 16:01:14 +03:00
|
|
|
//XXX:
|
2007-10-22 03:42:09 +04:00
|
|
|
addr_range page_table; // virtual address and size of the page table
|
|
|
|
addr_range exception_handlers;
|
|
|
|
addr_range framebuffer; // maps where the framebuffer is located, in physical memory
|
|
|
|
int screen_x, screen_y, screen_depth;
|
|
|
|
|
|
|
|
// The virtual ranges we want to keep in the kernel. E.g. those belonging
|
|
|
|
// to the Open Firmware.
|
|
|
|
// uint32 num_virtual_ranges_to_keep;
|
|
|
|
// addr_range virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
|
2008-07-24 05:10:36 +04:00
|
|
|
|
|
|
|
// platform specific
|
|
|
|
union {
|
|
|
|
struct {
|
|
|
|
struct {
|
|
|
|
//XXX: are those meant to be used by physical
|
|
|
|
// or virtual address ?
|
2008-07-24 06:59:47 +04:00
|
|
|
uint32 (*nf_get_id)(const char *);
|
|
|
|
int32 (*nf_call)(uint32, ...);
|
|
|
|
addr_t nf_page;
|
|
|
|
uint32 nf_dprintf_id;
|
2008-07-24 05:10:36 +04:00
|
|
|
} nat_feat;
|
|
|
|
} atari;
|
|
|
|
} plat_args;
|
2007-10-22 03:42:09 +04:00
|
|
|
} arch_kernel_args;
|
|
|
|
|
|
|
|
#endif /* KERNEL_ARCH_M68K_KERNEL_ARGS_H */
|