mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 18:35:42 +01:00 
			
		
		
		
	Signed-off-by: Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <trini@ti.com>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  *  Copyright (C) 2000	Murray Jensen <Murray.Jensen@cmst.csiro.au>
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #include <config.h>
 | |
| #include <command.h>
 | |
| #include <mpc8xx.h>
 | |
| #include <version.h>
 | |
| 
 | |
| #define CONFIG_8xx 1		/* needed for Linux kernel header files */
 | |
| #define _LINUX_CONFIG_H 1	/* avoid reading Linux autoconf.h file	*/
 | |
| 
 | |
| #include <ppc_asm.tmpl>
 | |
| #include <ppc_defs.h>
 | |
| 
 | |
| #include <asm/cache.h>
 | |
| #include <asm/mmu.h>
 | |
| 
 | |
| #if defined(CONFIG_CMD_KGDB)
 | |
| 
 | |
|  /*
 | |
|  * cache flushing routines for kgdb
 | |
|  */
 | |
| 
 | |
| 	.globl	kgdb_flush_cache_all
 | |
| kgdb_flush_cache_all:
 | |
| 	lis	r3, IDC_INVALL@h
 | |
| 	mtspr	DC_CST, r3
 | |
| 	sync
 | |
| 	lis	r3, IDC_INVALL@h
 | |
| 	mtspr	IC_CST, r3
 | |
| 	SYNC
 | |
| 	blr
 | |
| 
 | |
| 	.globl	kgdb_flush_cache_range
 | |
| kgdb_flush_cache_range:
 | |
| 	li	r5,CONFIG_SYS_CACHELINE_SIZE-1
 | |
| 	andc	r3,r3,r5
 | |
| 	subf	r4,r3,r4
 | |
| 	add	r4,r4,r5
 | |
| 	srwi.	r4,r4,CONFIG_SYS_CACHELINE_SHIFT
 | |
| 	beqlr
 | |
| 	mtctr	r4
 | |
| 	mr	r6,r3
 | |
| 1:	dcbst	0,r3
 | |
| 	addi	r3,r3,CONFIG_SYS_CACHELINE_SIZE
 | |
| 	bdnz	1b
 | |
| 	sync				/* wait for dcbst's to get to ram */
 | |
| 	mtctr	r4
 | |
| 2:	icbi	0,r6
 | |
| 	addi	r6,r6,CONFIG_SYS_CACHELINE_SIZE
 | |
| 	bdnz	2b
 | |
| 	SYNC
 | |
| 	blr
 | |
| 
 | |
| #endif
 |