18c2ecf20Sopenharmony_ci/*
28c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
38c2ecf20Sopenharmony_ci * License.  See the file "COPYING" in the main directory of this archive
48c2ecf20Sopenharmony_ci * for more details.
58c2ecf20Sopenharmony_ci *
68c2ecf20Sopenharmony_ci * Micro-assembler generated clear_page/copy_page functions.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * Copyright (C) 2012  MIPS Technologies, Inc.
98c2ecf20Sopenharmony_ci * Copyright (C) 2012  Ralf Baechle <ralf@linux-mips.org>
108c2ecf20Sopenharmony_ci */
118c2ecf20Sopenharmony_ci#include <asm/asm.h>
128c2ecf20Sopenharmony_ci#include <asm/export.h>
138c2ecf20Sopenharmony_ci#include <asm/regdef.h>
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci#ifdef CONFIG_SIBYTE_DMA_PAGEOPS
168c2ecf20Sopenharmony_ci#define cpu_clear_page_function_name	clear_page_cpu
178c2ecf20Sopenharmony_ci#define cpu_copy_page_function_name	copy_page_cpu
188c2ecf20Sopenharmony_ci#else
198c2ecf20Sopenharmony_ci#define cpu_clear_page_function_name	clear_page
208c2ecf20Sopenharmony_ci#define cpu_copy_page_function_name	copy_page
218c2ecf20Sopenharmony_ci#endif
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci/*
248c2ecf20Sopenharmony_ci * Maximum sizes:
258c2ecf20Sopenharmony_ci *
268c2ecf20Sopenharmony_ci * R4000 128 bytes S-cache:		0x058 bytes
278c2ecf20Sopenharmony_ci * R4600 v1.7:				0x05c bytes
288c2ecf20Sopenharmony_ci * R4600 v2.0:				0x060 bytes
298c2ecf20Sopenharmony_ci * With prefetching, 16 word strides	0x120 bytes
308c2ecf20Sopenharmony_ci */
318c2ecf20Sopenharmony_ciEXPORT(__clear_page_start)
328c2ecf20Sopenharmony_ciLEAF(cpu_clear_page_function_name)
338c2ecf20Sopenharmony_ciEXPORT_SYMBOL(cpu_clear_page_function_name)
348c2ecf20Sopenharmony_ci1:	j	1b		/* Dummy, will be replaced. */
358c2ecf20Sopenharmony_ci	.space 288
368c2ecf20Sopenharmony_ciEND(cpu_clear_page_function_name)
378c2ecf20Sopenharmony_ciEXPORT(__clear_page_end)
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci/*
408c2ecf20Sopenharmony_ci * Maximum sizes:
418c2ecf20Sopenharmony_ci *
428c2ecf20Sopenharmony_ci * R4000 128 bytes S-cache:		0x11c bytes
438c2ecf20Sopenharmony_ci * R4600 v1.7:				0x080 bytes
448c2ecf20Sopenharmony_ci * R4600 v2.0:				0x07c bytes
458c2ecf20Sopenharmony_ci * With prefetching, 16 word strides	0x540 bytes
468c2ecf20Sopenharmony_ci */
478c2ecf20Sopenharmony_ciEXPORT(__copy_page_start)
488c2ecf20Sopenharmony_ciLEAF(cpu_copy_page_function_name)
498c2ecf20Sopenharmony_ciEXPORT_SYMBOL(cpu_copy_page_function_name)
508c2ecf20Sopenharmony_ci1:	j	1b		/* Dummy, will be replaced. */
518c2ecf20Sopenharmony_ci	.space 1344
528c2ecf20Sopenharmony_ciEND(cpu_copy_page_function_name)
538c2ecf20Sopenharmony_ciEXPORT(__copy_page_end)
54