33 lines
		
	
	
		
			890 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			890 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  Atheros AR71XX/AR724X/AR913X specific kernel entry setup
 | |
|  *
 | |
|  *  Copyright (C) 2009 Gabor Juhos <juhosg@openwrt.org>
 | |
|  *
 | |
|  *  This program is free software; you can redistribute it and/or modify it
 | |
|  *  under the terms of the GNU General Public License version 2 as published
 | |
|  *  by the Free Software Foundation.
 | |
|  *
 | |
|  */
 | |
| #ifndef __ASM_MACH_ATH79_KERNEL_ENTRY_H
 | |
| #define __ASM_MACH_ATH79_KERNEL_ENTRY_H
 | |
| 
 | |
| 	/*
 | |
| 	 * Some bootloaders set the 'Kseg0 coherency algorithm' to
 | |
| 	 * 'Cacheable, noncoherent, write-through, no write allocate'
 | |
| 	 * and this cause performance issues. Let's go and change it to
 | |
| 	 * 'Cacheable, noncoherent, write-back, write allocate'
 | |
| 	 */
 | |
| 	.macro	kernel_entry_setup
 | |
| 	mfc0	t0, CP0_CONFIG
 | |
| 	li	t1, ~CONF_CM_CMASK
 | |
| 	and	t0, t1
 | |
| 	ori	t0, CONF_CM_CACHABLE_NONCOHERENT
 | |
| 	mtc0	t0, CP0_CONFIG
 | |
| 	nop
 | |
| 	.endm
 | |
| 
 | |
| 	.macro	smp_slave_setup
 | |
| 	.endm
 | |
| 
 | |
| #endif /* __ASM_MACH_ATH79_KERNEL_ENTRY_H */
 | 
