Commit | Line | Data |
---|---|---|
d4a67d9d GJ |
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 */ |