diff --git a/arch/sh/kernel/Makefile_32 b/arch/sh/kernel/Makefile_32 index 29b44eb3b93444c37f36f5182ffe941986bde7e7..35be5e9674f8576bc6de492870a04df3b4b5ad8e 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 fb87d642d1c1594d14577c7e511731016b45c38f..6e72ed4c07fbc6a81352f23dda7da86a02ee3530 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 similarity index 100% rename from arch/sh/kernel/head.S rename to arch/sh/kernel/head_32.S diff --git a/arch/sh64/kernel/head.S b/arch/sh/kernel/head_64.S similarity index 99% rename from arch/sh64/kernel/head.S rename to arch/sh/kernel/head_64.S index 186406d3ad9c60561992e6e1682e2730de8df748..8015af6d1da2bc4702ed4cf226f6a07316c2791e 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 -#include #include #include -#include -#include +#include +#include #include /* @@ -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 53d185bcf872f034c513e9d8c289d95108ca0d27..56ad1fb888a231ad6b339526c898b7eaba5f44ef 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 -#endif + +#endif /* __ASSEMBLY__ */ +#endif /* __ASM_SH_TLB_H */ diff --git a/include/asm-sh64/tlb.h b/include/asm-sh/tlb_64.h similarity index 55% rename from include/asm-sh64/tlb.h rename to include/asm-sh/tlb_64.h index 4979408bd88cd2b2cbc4a9f154f941d36fa7ebcc..0308e05fc57be27a1fd48f3bfeaccee9a7b0a305 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 +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 */