diff options
| author | tsutsui <tsutsui@NetBSD.org> | 2005-11-05 09:50:50 +0000 |
|---|---|---|
| committer | tsutsui <tsutsui@NetBSD.org> | 2005-11-05 09:50:50 +0000 |
| commit | fdb3b14bb4812ca5e484a9b68d64e317cebec4bf (patch) | |
| tree | f352e679fc0aaa1fae14d515633508ed985d7bd8 /sys/arch/arc/include | |
| parent | 74f4d162fb4bd96c21a7daadfd30414ba7ced1f3 (diff) | |
Adapt arc port to the new MI mips3 wired map functions.
Tested on NEC-RD94 with several PCI and jazzio devices.
Diffstat (limited to 'sys/arch/arc/include')
| -rw-r--r-- | sys/arch/arc/include/cpu.h | 7 | ||||
| -rw-r--r-- | sys/arch/arc/include/vmparam.h | 9 | ||||
| -rw-r--r-- | sys/arch/arc/include/wired_map.h | 42 |
3 files changed, 51 insertions, 7 deletions
diff --git a/sys/arch/arc/include/cpu.h b/sys/arch/arc/include/cpu.h index 9308c29d862..b109d5be964 100644 --- a/sys/arch/arc/include/cpu.h +++ b/sys/arch/arc/include/cpu.h @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.18 2005/01/22 07:35:34 tsutsui Exp $ */ +/* $NetBSD: cpu.h,v 1.19 2005/11/05 09:50:51 tsutsui Exp $ */ /* $OpenBSD: cpu.h,v 1.9 1998/01/28 13:46:10 pefo Exp $ */ #ifndef _ARC_CPU_H_ @@ -20,9 +20,4 @@ #define INT_MASK_REAL_DEV MIPS3_HARD_INT_MASK /* XXX */ -#ifndef _LOCORE -struct tlb; -extern void mips3_TLBWriteIndexedVPS(u_int index, struct tlb *tlb); -#endif /* ! _LOCORE */ - #endif /* _ARC_CPU_H_ */ diff --git a/sys/arch/arc/include/vmparam.h b/sys/arch/arc/include/vmparam.h index 10c7f65813d..e0d17e43961 100644 --- a/sys/arch/arc/include/vmparam.h +++ b/sys/arch/arc/include/vmparam.h @@ -1,9 +1,16 @@ -/* $NetBSD: vmparam.h,v 1.7 2002/12/10 05:14:26 thorpej Exp $ */ +/* $NetBSD: vmparam.h,v 1.8 2005/11/05 09:50:51 tsutsui Exp $ */ /* $OpenBSD: vmparam.h,v 1.3 1997/04/19 17:19:59 pefo Exp $ */ /* NetBSD: vmparam.h,v 1.5 1994/10/26 21:10:10 cgd Exp */ #include <mips/vmparam.h> +/* VA 0xe0000000-0xffffffff is used for wired_map TLB entries. */ +#undef VM_MAX_KERNEL_ADDRESS +#define VM_MAX_KERNEL_ADDRESS ((vaddr_t)0xDFFFF000) + +#define VM_MIN_WIRED_MAP_ADDRESS ((vaddr_t)0xE0000000) +#define VM_MAX_WIRED_MAP_ADDRESS ((vaddr_t)0xFFFFC000) + /* * Maximum number of contigous physical memory segment. */ diff --git a/sys/arch/arc/include/wired_map.h b/sys/arch/arc/include/wired_map.h new file mode 100644 index 00000000000..53163f11947 --- /dev/null +++ b/sys/arch/arc/include/wired_map.h @@ -0,0 +1,42 @@ +/* $NetBSD: wired_map.h,v 1.1 2005/11/05 09:50:51 tsutsui Exp $ */ + +/*- + * Copyright (C) 2000 Shuichiro URATA. 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. The name of the author may not 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 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 MIPS3_NWIRED_ENTRY 8 +#define MIPS3_WIRED_SIZE MIPS3_PG_SIZE_MASK_TO_SIZE(MIPS3_PG_SIZE_16M) + +#ifndef ARC_THRESHOLD_TO_USE_WIRED_TLB /* tunable */ +#define ARC_THRESHOLD_TO_USE_WIRED_TLB (256 * 1024) +#endif + +#include <mips/wired_map.h> + +void arc_init_wired_map(void); +void arc_wired_enter_page(vaddr_t, paddr_t, vsize_t); +vaddr_t arc_contiguously_wired_mapped(paddr_t, vsize_t); +vaddr_t arc_map_wired(paddr_t, vsize_t); +boolean_t arc_wired_map_extract(vaddr_t, paddr_t *); |
