1/*
2 *  Atheros AR71XX/AR724X/AR913X specific kernel entry setup
3 *
4 *  Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
5 *
6 *  This program is free software; you can redistribute it and/or modify it
7 *  under the terms of the GNU General Public License version 2 as published
8 *  by the Free Software Foundation.
9 *
10 */
11#ifndef __ASM_MACH_ATH79_KERNEL_ENTRY_H
12#define __ASM_MACH_ATH79_KERNEL_ENTRY_H
13
14	/*
15	 * Some bootloaders set the 'Kseg0 coherency algorithm' to
16	 * 'Cacheable, noncoherent, write-through, no write allocate'
17	 * and this cause performance issues. Let's go and change it to
18	 * 'Cacheable, noncoherent, write-back, write allocate'
19	 */
20	.macro	kernel_entry_setup
21	mfc0	t0, CP0_CONFIG
22	li	t1, ~CONF_CM_CMASK
23	and	t0, t1
24	ori	t0, CONF_CM_CACHABLE_NONCOHERENT
25	mtc0	t0, CP0_CONFIG
26	nop
27	.endm
28
29	.macro	smp_slave_setup
30	.endm
31
32#endif /* __ASM_MACH_ATH79_KERNEL_ENTRY_H */
33