1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Atheros AR71XX/AR724X/AR913X specific kernel entry setup 4 * 5 * Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org> 6 */ 7 #ifndef __ASM_MACH_ATH79_KERNEL_ENTRY_H 8 #define __ASM_MACH_ATH79_KERNEL_ENTRY_H 9 10 /* 11 * Some bootloaders set the 'Kseg0 coherency algorithm' to 12 * 'Cacheable, noncoherent, write-through, no write allocate' 13 * and this cause performance issues. Let's go and change it to 14 * 'Cacheable, noncoherent, write-back, write allocate' 15 */ 16 .macro kernel_entry_setup 17 mfc0 t0, CP0_CONFIG 18 li t1, ~CONF_CM_CMASK 19 and t0, t1 20 ori t0, CONF_CM_CACHABLE_NONCOHERENT 21 mtc0 t0, CP0_CONFIG 22 nop 23 .endm 24 25 .macro smp_slave_setup 26 .endm 27 28 #endif /* __ASM_MACH_ATH79_KERNEL_ENTRY_H */