2004-05-14 11:46:45 +00:00
|
|
|
/* $NetBSD: machdep.h,v 1.7 2002/02/21 02:52:21 thorpej Exp $ */
|
|
|
|
/* $FreeBSD$ */
|
|
|
|
|
|
|
|
#ifndef _MACHDEP_BOOT_MACHDEP_H_
|
|
|
|
#define _MACHDEP_BOOT_MACHDEP_H_
|
|
|
|
|
|
|
|
/* misc prototypes used by the many arm machdeps */
|
Instead of using sysarch() to store-retrieve the tp, add a magic address,
ARM_TP_ADDRESS, where the tp will be stored. On CPUs that support it, a cache
line will be allocated and locked for this address, so that it will never go
to RAM. On CPUs that does not, a page is allocated for it (it will be a bit
slower, and is wrong for SMP, but should be fine for UP).
The tp is still stored in the mdthread struct, and at each context switch,
ARM_TP_ADDRESS gets updated.
Suggested by: davidxu
2005-02-26 18:59:01 +00:00
|
|
|
void arm_lock_cache_line(vm_offset_t);
|
2012-06-10 01:13:04 +00:00
|
|
|
void init_proc0(vm_offset_t kstack);
|
2008-04-03 16:44:50 +00:00
|
|
|
void halt(void);
|
|
|
|
void data_abort_handler(trapframe_t *);
|
|
|
|
void prefetch_abort_handler(trapframe_t *);
|
|
|
|
void undefinedinstruction_bounce(trapframe_t *);
|
2012-06-14 04:18:56 +00:00
|
|
|
|
|
|
|
/* Early boot related helper functions */
|
2012-06-14 04:00:30 +00:00
|
|
|
struct arm_boot_params;
|
2012-06-14 04:09:20 +00:00
|
|
|
vm_offset_t default_parse_boot_param(struct arm_boot_params *abp);
|
2012-06-14 04:16:16 +00:00
|
|
|
vm_offset_t freebsd_parse_boot_param(struct arm_boot_params *abp);
|
|
|
|
vm_offset_t linux_parse_boot_param(struct arm_boot_params *abp);
|
2012-06-14 04:09:20 +00:00
|
|
|
vm_offset_t fake_preload_metadata(struct arm_boot_params *abp);
|
|
|
|
vm_offset_t parse_boot_param(struct arm_boot_params *abp);
|
2012-06-14 04:00:30 +00:00
|
|
|
|
2012-06-14 04:18:56 +00:00
|
|
|
/* Setup standard arrays */
|
|
|
|
void arm_dump_avail_init( vm_offset_t memsize, size_t max);
|
|
|
|
|
2004-05-14 11:46:45 +00:00
|
|
|
#endif /* !_MACHINE_MACHDEP_H_ */
|