xref: /openbmc/linux/arch/sh/mm/nommu.c (revision ca42bc4b)
1c456cfc2SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
2aae4d142SPaul Mundt /*
3aae4d142SPaul Mundt  * arch/sh/mm/nommu.c
4aae4d142SPaul Mundt  *
5aae4d142SPaul Mundt  * Various helper routines and stubs for MMUless SH.
6aae4d142SPaul Mundt  *
7aae4d142SPaul Mundt  * Copyright (C) 2002 - 2009 Paul Mundt
8aae4d142SPaul Mundt  */
9aae4d142SPaul Mundt #include <linux/kernel.h>
10aae4d142SPaul Mundt #include <linux/init.h>
11aae4d142SPaul Mundt #include <linux/string.h>
12aae4d142SPaul Mundt #include <linux/mm.h>
13aae4d142SPaul Mundt #include <asm/tlbflush.h>
14aae4d142SPaul Mundt #include <asm/page.h>
157c0f6ba6SLinus Torvalds #include <linux/uaccess.h>
16aae4d142SPaul Mundt 
17aae4d142SPaul Mundt /*
18aae4d142SPaul Mundt  * Nothing too terribly exciting here ..
19aae4d142SPaul Mundt  */
copy_page(void * to,void * from)20aae4d142SPaul Mundt void copy_page(void *to, void *from)
21aae4d142SPaul Mundt {
22aae4d142SPaul Mundt 	memcpy(to, from, PAGE_SIZE);
23aae4d142SPaul Mundt }
24aae4d142SPaul Mundt 
__copy_user(void * to,const void * from,__kernel_size_t n)25aae4d142SPaul Mundt __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n)
26aae4d142SPaul Mundt {
27aae4d142SPaul Mundt 	memcpy(to, from, n);
28aae4d142SPaul Mundt 	return 0;
29aae4d142SPaul Mundt }
30aae4d142SPaul Mundt 
__clear_user(void __user * to,__kernel_size_t n)31*ca42bc4bSAl Viro __kernel_size_t __clear_user(void __user *to, __kernel_size_t n)
32aae4d142SPaul Mundt {
33*ca42bc4bSAl Viro 	memset((__force void *)to, 0, n);
34aae4d142SPaul Mundt 	return 0;
35aae4d142SPaul Mundt }
36aae4d142SPaul Mundt 
local_flush_tlb_all(void)37aae4d142SPaul Mundt void local_flush_tlb_all(void)
38aae4d142SPaul Mundt {
39aae4d142SPaul Mundt 	BUG();
40aae4d142SPaul Mundt }
41aae4d142SPaul Mundt 
local_flush_tlb_mm(struct mm_struct * mm)42aae4d142SPaul Mundt void local_flush_tlb_mm(struct mm_struct *mm)
43aae4d142SPaul Mundt {
44aae4d142SPaul Mundt 	BUG();
45aae4d142SPaul Mundt }
46aae4d142SPaul Mundt 
local_flush_tlb_range(struct vm_area_struct * vma,unsigned long start,unsigned long end)47aae4d142SPaul Mundt void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start,
48aae4d142SPaul Mundt 			    unsigned long end)
49aae4d142SPaul Mundt {
50aae4d142SPaul Mundt 	BUG();
51aae4d142SPaul Mundt }
52aae4d142SPaul Mundt 
local_flush_tlb_page(struct vm_area_struct * vma,unsigned long page)53aae4d142SPaul Mundt void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
54aae4d142SPaul Mundt {
55aae4d142SPaul Mundt 	BUG();
56aae4d142SPaul Mundt }
57aae4d142SPaul Mundt 
local_flush_tlb_one(unsigned long asid,unsigned long page)58aae4d142SPaul Mundt void local_flush_tlb_one(unsigned long asid, unsigned long page)
59aae4d142SPaul Mundt {
60aae4d142SPaul Mundt 	BUG();
61aae4d142SPaul Mundt }
62aae4d142SPaul Mundt 
local_flush_tlb_kernel_range(unsigned long start,unsigned long end)63aae4d142SPaul Mundt void local_flush_tlb_kernel_range(unsigned long start, unsigned long end)
64aae4d142SPaul Mundt {
65aae4d142SPaul Mundt 	BUG();
66aae4d142SPaul Mundt }
67aae4d142SPaul Mundt 
__flush_tlb_global(void)68a8dc49b5SPaul Mundt void __flush_tlb_global(void)
69a8dc49b5SPaul Mundt {
70a8dc49b5SPaul Mundt }
71a8dc49b5SPaul Mundt 
__update_tlb(struct vm_area_struct * vma,unsigned long address,pte_t pte)72aae4d142SPaul Mundt void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte)
73aae4d142SPaul Mundt {
74aae4d142SPaul Mundt }
75aae4d142SPaul Mundt 
kmap_coherent_init(void)76aae4d142SPaul Mundt void __init kmap_coherent_init(void)
77aae4d142SPaul Mundt {
78aae4d142SPaul Mundt }
79aae4d142SPaul Mundt 
kmap_coherent(struct page * page,unsigned long addr)80aae4d142SPaul Mundt void *kmap_coherent(struct page *page, unsigned long addr)
81aae4d142SPaul Mundt {
82aae4d142SPaul Mundt 	BUG();
83aae4d142SPaul Mundt 	return NULL;
84aae4d142SPaul Mundt }
85aae4d142SPaul Mundt 
kunmap_coherent(void * kvaddr)860906a3adSPaul Mundt void kunmap_coherent(void *kvaddr)
87aae4d142SPaul Mundt {
88aae4d142SPaul Mundt 	BUG();
89aae4d142SPaul Mundt }
90aae4d142SPaul Mundt 
page_table_range_init(unsigned long start,unsigned long end,pgd_t * pgd_base)91aae4d142SPaul Mundt void __init page_table_range_init(unsigned long start, unsigned long end,
92aae4d142SPaul Mundt 				  pgd_t *pgd_base)
93aae4d142SPaul Mundt {
94aae4d142SPaul Mundt }
95aae4d142SPaul Mundt 
__set_fixmap(enum fixed_addresses idx,unsigned long phys,pgprot_t prot)96aae4d142SPaul Mundt void __set_fixmap(enum fixed_addresses idx, unsigned long phys, pgprot_t prot)
97aae4d142SPaul Mundt {
98aae4d142SPaul Mundt }
99