diff options
-rw-r--r-- | arch/sh/kernel/Makefile_32 | 2 | ||||
-rw-r--r-- | arch/sh/kernel/Makefile_64 | 2 | ||||
-rw-r--r-- | arch/sh/kernel/head_32.S (renamed from arch/sh/kernel/head.S) | 0 | ||||
-rw-r--r-- | arch/sh/kernel/head_64.S (renamed from arch/sh64/kernel/head.S) | 9 | ||||
-rw-r--r-- | include/asm-sh/tlb.h | 10 | ||||
-rw-r--r-- | include/asm-sh/tlb_64.h (renamed from include/asm-sh64/tlb.h) | 45 |
6 files changed, 24 insertions, 44 deletions
diff --git a/arch/sh/kernel/Makefile_32 b/arch/sh/kernel/Makefile_32 index 29b44eb3b934..35be5e9674f8 100644 --- a/arch/sh/kernel/Makefile_32 +++ b/arch/sh/kernel/Makefile_32 @@ -2,7 +2,7 @@ # Makefile for the Linux/SuperH kernel. # -extra-y := head.o init_task.o vmlinux.lds +extra-y := head_32.o init_task.o vmlinux.lds obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process_32.o \ ptrace_32.o semaphore.o setup.o signal_32.o sys_sh.o syscalls.o \ diff --git a/arch/sh/kernel/Makefile_64 b/arch/sh/kernel/Makefile_64 index fb87d642d1c1..6e72ed4c07fb 100644 --- a/arch/sh/kernel/Makefile_64 +++ b/arch/sh/kernel/Makefile_64 @@ -1,4 +1,4 @@ -extra-y := head.o init_task.o vmlinux.lds +extra-y := head_64.o init_task.o vmlinux.lds obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process_64.o \ ptrace_64.o semaphore.o setup.o signal_64.o sys_sh64.o syscalls.o \ diff --git a/arch/sh/kernel/head.S b/arch/sh/kernel/head_32.S index 3338239717f1..3338239717f1 100644 --- a/arch/sh/kernel/head.S +++ b/arch/sh/kernel/head_32.S diff --git a/arch/sh64/kernel/head.S b/arch/sh/kernel/head_64.S index 186406d3ad9c..8015af6d1da2 100644 --- a/arch/sh64/kernel/head.S +++ b/arch/sh/kernel/head_64.S @@ -19,14 +19,11 @@ * lethal@linux-sh.org: 8th May 2004 * Add early SCIF console DTLB mapping. */ - - #include <asm/page.h> -#include <asm/mmu_context.h> #include <asm/cache.h> #include <asm/tlb.h> -#include <asm/processor.h> -#include <asm/registers.h> +#include <asm/cpu/registers.h> +#include <asm/cpu/mmu_context.h> #include <asm/thread_info.h> /* @@ -368,5 +365,3 @@ hopeless: * (r32) _start_kernel address */ blink tr7, ZERO - - diff --git a/include/asm-sh/tlb.h b/include/asm-sh/tlb.h index 53d185bcf872..56ad1fb888a2 100644 --- a/include/asm-sh/tlb.h +++ b/include/asm-sh/tlb.h @@ -1,6 +1,12 @@ #ifndef __ASM_SH_TLB_H #define __ASM_SH_TLB_H +#ifdef CONFIG_SUPERH64 +# include "tlb_64.h" +#endif + +#ifndef __ASSEMBLY__ + #define tlb_start_vma(tlb, vma) \ flush_cache_range(vma, vma->vm_start, vma->vm_end) @@ -15,4 +21,6 @@ #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) #include <asm-generic/tlb.h> -#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __ASM_SH_TLB_H */ diff --git a/include/asm-sh64/tlb.h b/include/asm-sh/tlb_64.h index 4979408bd88c..0308e05fc57b 100644 --- a/include/asm-sh64/tlb.h +++ b/include/asm-sh/tlb_64.h @@ -1,20 +1,14 @@ /* - * include/asm-sh64/tlb.h + * include/asm-sh/tlb_64.h * * Copyright (C) 2003 Paul Mundt * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. - * - */ -#ifndef __ASM_SH64_TLB_H -#define __ASM_SH64_TLB_H - -/* - * Note! These are mostly unused, we just need the xTLB_LAST_VAR_UNRESTRICTED - * for head.S! Once this limitation is gone, we can clean the rest of this up. */ +#ifndef __ASM_SH_TLB_64_H +#define __ASM_SH_TLB_64_H /* ITLB defines */ #define ITLB_FIXED 0x00000000 /* First fixed ITLB, see head.S */ @@ -63,30 +57,13 @@ static inline void __flush_tlb_slot(unsigned long long slot) } /* arch/sh64/mm/tlb.c */ -extern int sh64_tlb_init(void); -extern unsigned long long sh64_next_free_dtlb_entry(void); -extern unsigned long long sh64_get_wired_dtlb_entry(void); -extern int sh64_put_wired_dtlb_entry(unsigned long long entry); - -extern void sh64_setup_tlb_slot(unsigned long long config_addr, unsigned long eaddr, unsigned long asid, unsigned long paddr); -extern void sh64_teardown_tlb_slot(unsigned long long config_addr); - -#define tlb_start_vma(tlb, vma) \ - flush_cache_range(vma, vma->vm_start, vma->vm_end) - -#define tlb_end_vma(tlb, vma) \ - flush_tlb_range(vma, vma->vm_start, vma->vm_end) - -#define __tlb_remove_tlb_entry(tlb, pte, address) do { } while (0) - -/* - * Flush whole TLBs for MM - */ -#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) - -#include <asm-generic/tlb.h> +int sh64_tlb_init(void); +unsigned long long sh64_next_free_dtlb_entry(void); +unsigned long long sh64_get_wired_dtlb_entry(void); +int sh64_put_wired_dtlb_entry(unsigned long long entry); +void sh64_setup_tlb_slot(unsigned long long config_addr, unsigned long eaddr, + unsigned long asid, unsigned long paddr); +void sh64_teardown_tlb_slot(unsigned long long config_addr); #endif /* __ASSEMBLY__ */ - -#endif /* __ASM_SH64_TLB_H */ - +#endif /* __ASM_SH_TLB_64_H */ |