diff options
Diffstat (limited to 'sys/arch/armv7/include')
47 files changed, 676 insertions, 0 deletions
diff --git a/sys/arch/armv7/include/_float.h b/sys/arch/armv7/include/_float.h new file mode 100644 index 00000000000..c4221bb54ef --- /dev/null +++ b/sys/arch/armv7/include/_float.h @@ -0,0 +1,3 @@ +/* $OpenBSD: _float.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ + +#include <arm/_float.h> diff --git a/sys/arch/armv7/include/_types.h b/sys/arch/armv7/include/_types.h new file mode 100644 index 00000000000..0386d33665f --- /dev/null +++ b/sys/arch/armv7/include/_types.h @@ -0,0 +1,9 @@ +/* $OpenBSD: _types.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: types.h,v 1.4 2002/02/28 03:17:26 simonb Exp $ */ + +#ifndef _MACHINE__TYPES_H_ +#define _MACHINE__TYPES_H_ + +#include <arm/_types.h> + +#endif /* _MACHINE__TYPES_H_ */ diff --git a/sys/arch/armv7/include/apmvar.h b/sys/arch/armv7/include/apmvar.h new file mode 100644 index 00000000000..fba87cca21c --- /dev/null +++ b/sys/arch/armv7/include/apmvar.h @@ -0,0 +1,2 @@ +/* $OpenBSD: apmvar.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +#include <arm/apmvar.h> diff --git a/sys/arch/armv7/include/asm.h b/sys/arch/armv7/include/asm.h new file mode 100644 index 00000000000..be539ee9aa6 --- /dev/null +++ b/sys/arch/armv7/include/asm.h @@ -0,0 +1,4 @@ +/* $OpenBSD: asm.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: asm.h,v 1.3 2001/11/25 15:55:54 thorpej Exp $ */ + +#include <arm/asm.h> diff --git a/sys/arch/armv7/include/atomic.h b/sys/arch/armv7/include/atomic.h new file mode 100644 index 00000000000..c065443dd6c --- /dev/null +++ b/sys/arch/armv7/include/atomic.h @@ -0,0 +1,10 @@ +/* $OpenBSD: atomic.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ + +/* Public Domain */ + +#ifndef _MACHINE_ATOMIC_H_ +#define _MACHINE_ATOMIC_H_ + +#include <arm/atomic.h> + +#endif /* _MACHINE_ATOMIC_H_ */ diff --git a/sys/arch/armv7/include/bootconfig.h b/sys/arch/armv7/include/bootconfig.h new file mode 100644 index 00000000000..af5bea555b5 --- /dev/null +++ b/sys/arch/armv7/include/bootconfig.h @@ -0,0 +1,70 @@ +/* $OpenBSD: bootconfig.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: bootconfig.h,v 1.2 2001/06/21 22:08:28 chris Exp $ */ + +/* + * Copyright (c) 1994 Mark Brinicombe. + * Copyright (c) 1994 Brini. + * All rights reserved. + * + * This code is derived from software written for Brini by Mark Brinicombe + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by Mark Brinicombe + * for the NetBSD Project. + * 4. The name of the company nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * boot configuration structures + * + * Created : 12/09/94 + * + * Based on kate/boot/bootconfig.h + */ + +#if defined(_KERNEL) || defined(_STANDALONE) + +typedef struct _PhysMem { + u_int address; + u_int pages; +} PhysMem; + +#define DRAM_BLOCKS 2 +#define MAX_BOOT_STRING 255 + +typedef struct _BootConfig { + PhysMem dram[DRAM_BLOCKS]; + u_int dramblocks; + char bootstring[MAX_BOOT_STRING]; +} BootConfig; + +extern BootConfig bootconfig; + +#endif /* _KERNEL || _STANDALONE */ +#if defined(_KERNEL) +extern char *boot_args; +extern char *boot_file; +#endif /* _KERNEL */ + +/* End of bootconfig.h */ diff --git a/sys/arch/armv7/include/bus.h b/sys/arch/armv7/include/bus.h new file mode 100644 index 00000000000..ed737761885 --- /dev/null +++ b/sys/arch/armv7/include/bus.h @@ -0,0 +1,4 @@ +/* $OpenBSD: bus.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: bus.h,v 1.3 2001/11/25 15:55:55 thorpej Exp $ */ + +#include <arm/bus.h> diff --git a/sys/arch/armv7/include/cdefs.h b/sys/arch/armv7/include/cdefs.h new file mode 100644 index 00000000000..38568967257 --- /dev/null +++ b/sys/arch/armv7/include/cdefs.h @@ -0,0 +1,3 @@ +/* $OpenBSD: cdefs.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ + +#include <arm/cdefs.h> diff --git a/sys/arch/armv7/include/conf.h b/sys/arch/armv7/include/conf.h new file mode 100644 index 00000000000..45b48a90bd1 --- /dev/null +++ b/sys/arch/armv7/include/conf.h @@ -0,0 +1,17 @@ +/* $OpenBSD: conf.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: conf.h,v 1.8 2002/02/10 12:26:03 chris Exp $ */ + +#ifndef _MACHINE_CONF_H_ +#define _MACHINE_CONF_H_ + +#include <sys/conf.h> + +/* + * BEAGLEBOARD specific device includes go in here + */ + +/*#define CONF_HAVE_GPIO*/ + +#include <arm/conf.h> + +#endif /* _MACHINE_CONF_H_ */ diff --git a/sys/arch/armv7/include/cpu.h b/sys/arch/armv7/include/cpu.h new file mode 100644 index 00000000000..47355cfe7d5 --- /dev/null +++ b/sys/arch/armv7/include/cpu.h @@ -0,0 +1,4 @@ +/* $OpenBSD: cpu.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: cpu.h,v 1.3 2001/11/25 15:55:55 thorpej Exp $ */ + +#include <arm/cpu.h> diff --git a/sys/arch/armv7/include/db_machdep.h b/sys/arch/armv7/include/db_machdep.h new file mode 100644 index 00000000000..d745bf8b3ad --- /dev/null +++ b/sys/arch/armv7/include/db_machdep.h @@ -0,0 +1,4 @@ +/* $OpenBSD: db_machdep.h,v 1.1 2013/09/04 14:38:26 patrick Exp $ */ +/* $NetBSD: db_machdep.h,v 1.3 2001/11/25 15:55:55 thorpej Exp $ */ + +#include <arm/db_machdep.h> diff --git a/sys/arch/armv7/include/disklabel.h b/sys/arch/armv7/include/disklabel.h new file mode 100644 index 00000000000..3e247714db8 --- /dev/null +++ b/sys/arch/armv7/include/disklabel.h @@ -0,0 +1,3 @@ +/* $OpenBSD: disklabel.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ + +#include <arm/disklabel.h> diff --git a/sys/arch/armv7/include/elf_abi.h b/sys/arch/armv7/include/elf_abi.h new file mode 100644 index 00000000000..1c357929f37 --- /dev/null +++ b/sys/arch/armv7/include/elf_abi.h @@ -0,0 +1,3 @@ +/* $OpenBSD: elf_abi.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ + +#include <arm/elf_abi.h> diff --git a/sys/arch/armv7/include/endian.h b/sys/arch/armv7/include/endian.h new file mode 100644 index 00000000000..a42218e287c --- /dev/null +++ b/sys/arch/armv7/include/endian.h @@ -0,0 +1,4 @@ +/* $OpenBSD: endian.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: endian.h,v 1.3 2001/11/25 15:55:56 thorpej Exp $ */ + +#include <arm/endian.h> diff --git a/sys/arch/armv7/include/exec.h b/sys/arch/armv7/include/exec.h new file mode 100644 index 00000000000..cb2f13ed47a --- /dev/null +++ b/sys/arch/armv7/include/exec.h @@ -0,0 +1,3 @@ +/* $OpenBSD: exec.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* public domain */ +#include <arm/exec.h> diff --git a/sys/arch/armv7/include/fenv.h b/sys/arch/armv7/include/fenv.h new file mode 100644 index 00000000000..4c9789036b1 --- /dev/null +++ b/sys/arch/armv7/include/fenv.h @@ -0,0 +1,3 @@ +/* $OpenBSD: fenv.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* public domain */ +#include <arm/fenv.h> diff --git a/sys/arch/armv7/include/fp.h b/sys/arch/armv7/include/fp.h new file mode 100644 index 00000000000..4dd646a0c47 --- /dev/null +++ b/sys/arch/armv7/include/fp.h @@ -0,0 +1,4 @@ +/* $OpenBSD: fp.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: fp.h,v 1.3 2001/11/25 15:55:56 thorpej Exp $ */ + +#include <arm/fp.h> diff --git a/sys/arch/armv7/include/frame.h b/sys/arch/armv7/include/frame.h new file mode 100644 index 00000000000..bff2cd0537b --- /dev/null +++ b/sys/arch/armv7/include/frame.h @@ -0,0 +1,4 @@ +/* $OpenBSD: frame.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: frame.h,v 1.1 2001/06/08 22:23:00 chris Exp $ */ + +#include <arm/frame.h> diff --git a/sys/arch/armv7/include/ieee.h b/sys/arch/armv7/include/ieee.h new file mode 100644 index 00000000000..ebff5a088e5 --- /dev/null +++ b/sys/arch/armv7/include/ieee.h @@ -0,0 +1,4 @@ +/* $OpenBSD: ieee.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: ieee.h,v 1.3 2001/11/25 15:55:56 thorpej Exp $ */ + +#include <arm/ieee.h> diff --git a/sys/arch/armv7/include/ieeefp.h b/sys/arch/armv7/include/ieeefp.h new file mode 100644 index 00000000000..ad4c6a7a086 --- /dev/null +++ b/sys/arch/armv7/include/ieeefp.h @@ -0,0 +1,4 @@ +/* $OpenBSD: ieeefp.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: ieeefp.h,v 1.3 2001/11/25 15:55:56 thorpej Exp $ */ + +#include <arm/ieeefp.h> diff --git a/sys/arch/armv7/include/intr.h b/sys/arch/armv7/include/intr.h new file mode 100644 index 00000000000..d5206fa1d8c --- /dev/null +++ b/sys/arch/armv7/include/intr.h @@ -0,0 +1,172 @@ +/* $OpenBSD: intr.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: intr.h,v 1.12 2003/06/16 20:00:59 thorpej Exp $ */ + +/* + * Copyright (c) 2001, 2003 Wasabi Systems, Inc. + * All rights reserved. + * + * Written by Jason R. Thorpe for Wasabi Systems, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed for the NetBSD Project by + * Wasabi Systems, Inc. + * 4. The name of Wasabi Systems, Inc. may not be used to endorse + * or promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WASABI SYSTEMS, INC + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _MACHINE_INTR_H_ +#define _MACHINE_INTR_H_ + +#ifdef _KERNEL + +/* Interrupt priority "levels". */ +#define IPL_NONE 0 /* nothing */ +#define IPL_SOFT 1 /* generic software interrupts */ +#define IPL_SOFTCLOCK 2 /* software clock interrupt */ +#define IPL_SOFTNET 3 /* software network interrupt */ +#define IPL_SOFTTTY 4 /* software serial interrupt */ +#define IPL_BIO 5 /* block I/O */ +#define IPL_NET 6 /* network */ +#define IPL_TTY 7 /* terminals */ +#define IPL_VM 8 /* memory allocation */ +#define IPL_AUDIO 9 /* audio device */ +#define IPL_CLOCK 10 /* clock interrupt */ +#define IPL_STATCLOCK 11 /* statistics clock interrupt */ +#define IPL_SCHED 12 /* everything */ +#define IPL_HIGH 12 /* everything */ + +#define NIPL 13 + +/* Interrupt priority "flags". */ +#define IPL_MPSAFE 0 /* no "mpsafe" interrupts */ + +/* Interrupt sharing types. */ +#define IST_NONE 0 /* none */ +#define IST_PULSE 1 /* pulsed */ +#define IST_EDGE 2 /* edge-triggered */ +#define IST_LEVEL 3 /* level-triggered */ + +#define IST_LEVEL_LOW IST_LEVEL +#define IST_LEVEL_HIGH 4 +#define IST_EDGE_FALLING IST_EDGE +#define IST_EDGE_RISING 5 +#define IST_EDGE_BOTH 6 + +#ifndef _LOCORE +#include <sys/device.h> +#include <sys/queue.h> + +int splraise(int); +int spllower(int); +void splx(int); + +void arm_do_pending_intr(int); +void arm_set_intr_handler(int (*raise)(int), int (*lower)(int), + void (*x)(int), void (*setipl)(int), + void *(*intr_establish)(int irqno, int level, int (*func)(void *), + void *cookie, char *name), + void (*intr_disestablish)(void *cookie), + const char *(*intr_string)(void *cookie), + void (*intr_handle)(void *)); + +struct arm_intr_func { + int (*raise)(int); + int (*lower)(int); + void (*x)(int); + void (*setipl)(int); + void *(*intr_establish)(int irqno, int level, int (*func)(void *), + void *cookie, char *name); + void (*intr_disestablish)(void *cookie); + const char *(*intr_string)(void *cookie); +}; + +extern struct arm_intr_func arm_intr_func; + +#define splraise(cpl) (arm_intr_func.raise(cpl)) +#define _splraise(cpl) (arm_intr_func.raise(cpl)) +#define spllower(cpl) (arm_intr_func.lower(cpl)) +#define splx(cpl) (arm_intr_func.x(cpl)) + +#define splhigh() splraise(IPL_HIGH) +#define splsoft() splraise(IPL_SOFT) +#define splsoftclock() splraise(IPL_SOFTCLOCK) +#define splsoftnet() splraise(IPL_SOFTNET) +#define splbio() splraise(IPL_BIO) +#define splnet() splraise(IPL_NET) +#define spltty() splraise(IPL_TTY) +#define splvm() splraise(IPL_VM) +#define splaudio() splraise(IPL_AUDIO) +#define splclock() splraise(IPL_CLOCK) +#define splstatclock() splraise(IPL_STATCLOCK) + +#define spl0() spllower(IPL_NONE) + +#define splsched() splhigh() +#define spllock() splhigh() + +void arm_init_smask(void); /* XXX */ +extern uint32_t arm_smask[NIPL]; +void arm_setsoftintr(int si); + +#define _setsoftintr arm_setsoftintr + +#include <arm/softintr.h> + +void *arm_intr_establish(int irqno, int level, int (*func)(void *), + void *cookie, char *name); +void arm_intr_disestablish(void *cookie); +const char *arm_intr_string(void *cookie); + +/* XXX - this is probably the wrong location for this */ +void arm_clock_register(void (*)(void), void (*)(u_int), void (*)(int), + void (*)(void)); + +#ifdef DIAGNOSTIC +/* + * Although this function is implemented in MI code, it must be in this MD + * header because we don't want this header to include MI includes. + */ +void splassert_fail(int, int, const char *); +extern int splassert_ctl; +void arm_splassert_check(int, const char *); +#define splassert(__wantipl) do { \ + if (splassert_ctl > 0) { \ + arm_splassert_check(__wantipl, __func__); \ + } \ +} while (0) +#define splsoftassert(wantipl) splassert(wantipl) +#else +#define splassert(wantipl) do { /* nothing */ } while (0) +#define splsoftassert(wantipl) do { /* nothing */ } while (0) +#endif + +#endif /* ! _LOCORE */ + +#define ARM_IRQ_HANDLER arm_intr + +#endif /* _KERNEL */ + +#endif /* _MACHINE_INTR_H_ */ + diff --git a/sys/arch/armv7/include/irqhandler.h b/sys/arch/armv7/include/irqhandler.h new file mode 100644 index 00000000000..a4b8b14727e --- /dev/null +++ b/sys/arch/armv7/include/irqhandler.h @@ -0,0 +1,4 @@ +/* $OpenBSD: irqhandler.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: irqhandler.h,v 1.4 2002/04/12 18:50:32 thorpej Exp $ */ + +#include <arm/footbridge/footbridge_irqhandler.h> diff --git a/sys/arch/armv7/include/isa_machdep.h b/sys/arch/armv7/include/isa_machdep.h new file mode 100644 index 00000000000..1a10064863a --- /dev/null +++ b/sys/arch/armv7/include/isa_machdep.h @@ -0,0 +1,13 @@ +/* $OpenBSD: isa_machdep.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: isa_machdep.h,v 1.4 2002/01/07 22:58:08 chris Exp $ */ + +#ifndef _MACHINE_ISA_MACHDEP_H_ +#define _MACHINE_ISA_MACHDEP_H_ +#include <arm/isa_machdep.h> + +#ifdef _KERNEL +#define ISA_FOOTBRIDGE_IRQ IRQ_IN_L2 +void isa_footbridge_init(u_int, u_int); +#endif /* _KERNEL */ + +#endif /* _MACHINE_ISA_MACHDEP_H_ */ diff --git a/sys/arch/armv7/include/limits.h b/sys/arch/armv7/include/limits.h new file mode 100644 index 00000000000..a9f31ed71e8 --- /dev/null +++ b/sys/arch/armv7/include/limits.h @@ -0,0 +1,4 @@ +/* $OpenBSD: limits.h,v 1.1 2013/09/04 14:38:27 patrick Exp $ */ +/* $NetBSD: limits.h,v 1.3 2001/11/25 15:55:57 thorpej Exp $ */ + +#include <arm/limits.h> diff --git a/sys/arch/armv7/include/loadfile_machdep.h b/sys/arch/armv7/include/loadfile_machdep.h new file mode 100644 index 00000000000..c552f9c024b --- /dev/null +++ b/sys/arch/armv7/include/loadfile_machdep.h @@ -0,0 +1,52 @@ +/* $OpenBSD: loadfile_machdep.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: loadfile_machdep.h,v 1.1 1999/04/29 03:17:12 tsubai Exp $ */ + +/*- + * Copyright (c) 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#define BOOT_ELF +#define ELFSIZE 32 + +#define LOAD_KERNEL (LOAD_ALL & ~LOAD_TEXTA) +#define COUNT_KERNEL (COUNT_ALL & ~COUNT_TEXTA) + +#define LOADADDR(a) ((((u_long)(a)) + offset)&0xfffffff) +#define ALIGNENTRY(a) ((u_long)(a)) +#define READ(f, b, c) read((f), (void *)LOADADDR(b), (c)) +#define BCOPY(s, d, c) memcpy((void *)LOADADDR(d), (void *)(s), (c)) +#define BZERO(d, c) memset((void *)LOADADDR(d), 0, (c)) +#define WARN(a) (void)(printf a, \ + printf((errno ? ": %s\n" : "\n"), \ + strerror(errno))) +#define PROGRESS(a) (void) printf a +#define ALLOC(a) alloc(a) +#define FREE(a, b) free(a, b) +#define OKMAGIC(a) ((a) == OMAGIC) + +void run_loadfile(u_long *, int); diff --git a/sys/arch/armv7/include/lock.h b/sys/arch/armv7/include/lock.h new file mode 100644 index 00000000000..9efccf650f0 --- /dev/null +++ b/sys/arch/armv7/include/lock.h @@ -0,0 +1,4 @@ +/* $OpenBSD: lock.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: lock.h,v 1.3 2001/11/25 15:55:57 thorpej Exp $ */ + +#include <arm/lock.h> diff --git a/sys/arch/armv7/include/machine_reg.h b/sys/arch/armv7/include/machine_reg.h new file mode 100644 index 00000000000..5b0fd83d8b9 --- /dev/null +++ b/sys/arch/armv7/include/machine_reg.h @@ -0,0 +1,57 @@ +/* $OpenBSD: machine_reg.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ + +/* + * Copyright (c) 2002, 2003 Genetec Corporation. All rights reserved. + * Written by Hiroyuki Bessho for Genetec Corporation. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of Genetec Corporation may not be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY GENETEC CORPORATION ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENETEC CORPORATION + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + + +#ifndef _MACHINE_REG_H +#define _MACHINE_REG_H + +/* + * Logical mapping for onboard/integrated peripherals + */ +#define MACHINE_IO_AREA_VBASE 0xfd000000 +#define MACHINE_GPIO_VBASE 0xfd000000 +#define MACHINE_CLKMAN_VBASE 0xfd100000 +#define MACHINE_INTCTL_VBASE 0xfd200000 +#define MACHINE_AGPIO_VBASE 0xfd300000 +#define MACHINE_VBASE_FREE 0xfd400000 +/* FFUART and/or BTUART are mapped to this area when + used for console or kgdb port */ + +#define ioreg_read(a) (*(volatile unsigned *)(a)) +#define ioreg_write(a,v) (*(volatile unsigned *)(a)=(v)) + +#define ioreg16_read(a) (*(volatile uint16_t *)(a)) +#define ioreg16_write(a,v) (*(volatile uint16_t *)(a)=(v)) + +#define ioreg8_read(a) (*(volatile uint8_t *)(a)) +#define ioreg8_write(a,v) (*(volatile uint8_t *)(a)=(v)) + +#endif /* _MACHINE_REG_H */ diff --git a/sys/arch/armv7/include/math.h b/sys/arch/armv7/include/math.h new file mode 100644 index 00000000000..320751fb0f1 --- /dev/null +++ b/sys/arch/armv7/include/math.h @@ -0,0 +1,4 @@ +/* $OpenBSD: math.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: math.h,v 1.3 2001/11/25 15:55:57 thorpej Exp $ */ + +#include <arm/math.h> diff --git a/sys/arch/armv7/include/mutex.h b/sys/arch/armv7/include/mutex.h new file mode 100644 index 00000000000..b5327262054 --- /dev/null +++ b/sys/arch/armv7/include/mutex.h @@ -0,0 +1,3 @@ +/* $OpenBSD: mutex.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* public domain */ +#include <arm/mutex.h> diff --git a/sys/arch/armv7/include/param.h b/sys/arch/armv7/include/param.h new file mode 100644 index 00000000000..be5c69c5cd2 --- /dev/null +++ b/sys/arch/armv7/include/param.h @@ -0,0 +1,47 @@ +/* $OpenBSD: param.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ + +/* + * Copyright (c) 1994,1995 Mark Brinicombe. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the RiscBSD team. + * 4. The name "RiscBSD" nor the name of the author may be used to + * endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY RISCBSD ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL RISCBSD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _MACHINE_PARAM_H_ +#define _MACHINE_PARAM_H_ + +#include <arm/param.h> + +#define _MACHINE armv7 +#define MACHINE "armv7" + +#ifndef MSGBUFSIZE +#define MSGBUFSIZE PAGE_SIZE +#endif + +#endif /* _MACHINE_PARAM_H_ */ diff --git a/sys/arch/armv7/include/pcb.h b/sys/arch/armv7/include/pcb.h new file mode 100644 index 00000000000..4504e32e354 --- /dev/null +++ b/sys/arch/armv7/include/pcb.h @@ -0,0 +1,4 @@ +/* $OpenBSD: pcb.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: pcb.h,v 1.3 2001/11/25 15:55:57 thorpej Exp $ */ + +#include <arm/pcb.h> diff --git a/sys/arch/armv7/include/pio.h b/sys/arch/armv7/include/pio.h new file mode 100644 index 00000000000..049f9d556cb --- /dev/null +++ b/sys/arch/armv7/include/pio.h @@ -0,0 +1,4 @@ +/* $OpenBSD: pio.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: pio.h,v 1.3 2001/12/07 23:09:33 chris Exp $ */ + +#include <arm/pio.h> diff --git a/sys/arch/armv7/include/pmap.h b/sys/arch/armv7/include/pmap.h new file mode 100644 index 00000000000..0a56b0b7d1b --- /dev/null +++ b/sys/arch/armv7/include/pmap.h @@ -0,0 +1,4 @@ +/* $OpenBSD: pmap.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: pmap.h,v 1.2 2001/11/23 17:29:01 thorpej Exp $ */ + +#include <arm/pmap.h> diff --git a/sys/arch/armv7/include/proc.h b/sys/arch/armv7/include/proc.h new file mode 100644 index 00000000000..e18ccb48a2d --- /dev/null +++ b/sys/arch/armv7/include/proc.h @@ -0,0 +1,4 @@ +/* $OpenBSD: proc.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: proc.h,v 1.3 2001/11/25 15:55:57 thorpej Exp $ */ + +#include <arm/proc.h> diff --git a/sys/arch/armv7/include/profile.h b/sys/arch/armv7/include/profile.h new file mode 100644 index 00000000000..6c330755ce5 --- /dev/null +++ b/sys/arch/armv7/include/profile.h @@ -0,0 +1,4 @@ +/* $OpenBSD: profile.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: profile.h,v 1.3 2001/11/25 15:55:57 thorpej Exp $ */ + +#include <arm/profile.h> diff --git a/sys/arch/armv7/include/ptrace.h b/sys/arch/armv7/include/ptrace.h new file mode 100644 index 00000000000..0756d1778e4 --- /dev/null +++ b/sys/arch/armv7/include/ptrace.h @@ -0,0 +1,4 @@ +/* $OpenBSD: ptrace.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: ptrace.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/ptrace.h> diff --git a/sys/arch/armv7/include/reg.h b/sys/arch/armv7/include/reg.h new file mode 100644 index 00000000000..51f5c4bae72 --- /dev/null +++ b/sys/arch/armv7/include/reg.h @@ -0,0 +1,4 @@ +/* $OpenBSD: reg.h,v 1.1 2013/09/04 14:38:28 patrick Exp $ */ +/* $NetBSD: reg.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/reg.h> diff --git a/sys/arch/armv7/include/reloc.h b/sys/arch/armv7/include/reloc.h new file mode 100644 index 00000000000..a89cedb5244 --- /dev/null +++ b/sys/arch/armv7/include/reloc.h @@ -0,0 +1,2 @@ +/* $OpenBSD: reloc.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +#include <arm/reloc.h> diff --git a/sys/arch/armv7/include/rtc.h b/sys/arch/armv7/include/rtc.h new file mode 100644 index 00000000000..22bc2fb168f --- /dev/null +++ b/sys/arch/armv7/include/rtc.h @@ -0,0 +1,4 @@ +/* $OpenBSD: rtc.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: rtc.h,v 1.2 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/rtc.h> diff --git a/sys/arch/armv7/include/setjmp.h b/sys/arch/armv7/include/setjmp.h new file mode 100644 index 00000000000..a272589a426 --- /dev/null +++ b/sys/arch/armv7/include/setjmp.h @@ -0,0 +1,4 @@ +/* $OpenBSD: setjmp.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: setjmp.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/setjmp.h> diff --git a/sys/arch/armv7/include/signal.h b/sys/arch/armv7/include/signal.h new file mode 100644 index 00000000000..c47647906a3 --- /dev/null +++ b/sys/arch/armv7/include/signal.h @@ -0,0 +1,4 @@ +/* $OpenBSD: signal.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: signal.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/signal.h> diff --git a/sys/arch/armv7/include/spinlock.h b/sys/arch/armv7/include/spinlock.h new file mode 100644 index 00000000000..658a10c1506 --- /dev/null +++ b/sys/arch/armv7/include/spinlock.h @@ -0,0 +1,7 @@ + +/* $OpenBSD: spinlock.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +#ifndef _MACHINE_SPINLOCK_H_ +#define _MACHINE_SPINLOCK_H_ +#define ARM_V7PLUS_LOCKS +#include <arm/spinlock.h> +#endif /* _MACHINE_SPINLOCK_H_ */ diff --git a/sys/arch/armv7/include/stdarg.h b/sys/arch/armv7/include/stdarg.h new file mode 100644 index 00000000000..efa9b53b589 --- /dev/null +++ b/sys/arch/armv7/include/stdarg.h @@ -0,0 +1,4 @@ +/* $OpenBSD: stdarg.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: stdarg.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/stdarg.h> diff --git a/sys/arch/armv7/include/sysarch.h b/sys/arch/armv7/include/sysarch.h new file mode 100644 index 00000000000..ea34b05ad6f --- /dev/null +++ b/sys/arch/armv7/include/sysarch.h @@ -0,0 +1,4 @@ +/* $OpenBSD: sysarch.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: sysarch.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/sysarch.h> diff --git a/sys/arch/armv7/include/tcb.h b/sys/arch/armv7/include/tcb.h new file mode 100644 index 00000000000..2c10de4e197 --- /dev/null +++ b/sys/arch/armv7/include/tcb.h @@ -0,0 +1,3 @@ +/* $OpenBSD: tcb.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* public domain */ +#include <arm/tcb.h> diff --git a/sys/arch/armv7/include/trap.h b/sys/arch/armv7/include/trap.h new file mode 100644 index 00000000000..24985eabbdb --- /dev/null +++ b/sys/arch/armv7/include/trap.h @@ -0,0 +1,4 @@ +/* $OpenBSD: trap.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: trap.h,v 1.3 2001/11/25 15:55:58 thorpej Exp $ */ + +#include <arm/trap.h> diff --git a/sys/arch/armv7/include/vmparam.h b/sys/arch/armv7/include/vmparam.h new file mode 100644 index 00000000000..8f47d2c4124 --- /dev/null +++ b/sys/arch/armv7/include/vmparam.h @@ -0,0 +1,90 @@ +/* $OpenBSD: vmparam.h,v 1.1 2013/09/04 14:38:29 patrick Exp $ */ +/* $NetBSD: vmparam.h,v 1.23 2003/05/22 05:47:07 thorpej Exp $ */ + +/* + * Copyright (c) 1988 The Regents of the University of California. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _MACHINE_VMPARAM_H_ +#define _MACHINE_VMPARAM_H_ + +#define ARM_KERNEL_BASE 0xc0000000 + +/* Allow armv7 to have bigger DSIZ than generic arm, allow user to override */ +#ifndef MAXDSIZ +#define MAXDSIZ (1024*1024*1024) /* max data size */ +#endif +#ifndef BRKSIZ +#define BRKSIZ MAXDSIZ /* heap gap size */ +#endif + +#include <arm/vmparam.h> + +#ifdef _KERNEL +/* + * Address space constants + */ + +/* + * The line between user space and kernel space + * Mappings >= KERNEL_BASE are constant across all processes + */ +#define KERNEL_BASE ARM_KERNEL_BASE + +/* + * Override the default pager_map size, there's not enough KVA. + */ +#define PAGER_MAP_SIZE (4 * 1024 * 1024) + +/* + * Size of User Raw I/O map + */ + +#define USRIOSIZE 300 + +/* virtual sizes (bytes) for various kernel submaps */ + +#define VM_PHYS_SIZE (USRIOSIZE*PAGE_SIZE) + +/* + * max number of non-contig chunks of physical RAM you can have + */ + +#define VM_PHYSSEG_MAX 1 +#define VM_PHYSSEG_STRAT VM_PSTRAT_RANDOM + +/* + * this indicates that we can't add RAM to the VM system after the + * vm system is init'd. + */ + +#define VM_PHYSSEG_NOADD + +#endif /* _KERNEL */ + +#endif /* _MACHINE_VMPARAM_H_ */ |