31 lines
		
	
	
	
		
			673 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			673 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| 
								 | 
							
								#include "ppc_asm.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									.text
							 | 
						||
| 
								 | 
							
									.global _zimage_start
							 | 
						||
| 
								 | 
							
								_zimage_start:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/* PPC errata 213: needed by Virtex-4 FX */
							 | 
						||
| 
								 | 
							
									mfccr0  0
							 | 
						||
| 
								 | 
							
									oris    0,0,0x50000000@h
							 | 
						||
| 
								 | 
							
									mtccr0  0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									/*
							 | 
						||
| 
								 | 
							
									 * Invalidate the data cache if the data cache is turned off.
							 | 
						||
| 
								 | 
							
									 * - The 405 core does not invalidate the data cache on power-up
							 | 
						||
| 
								 | 
							
									 *   or reset but does turn off the data cache. We cannot assume
							 | 
						||
| 
								 | 
							
									 *   that the cache contents are valid.
							 | 
						||
| 
								 | 
							
									 * - If the data cache is turned on this must have been done by
							 | 
						||
| 
								 | 
							
									 *   a bootloader and we assume that the cache contents are
							 | 
						||
| 
								 | 
							
									 *   valid.
							 | 
						||
| 
								 | 
							
									 */
							 | 
						||
| 
								 | 
							
									mfdccr	r9
							 | 
						||
| 
								 | 
							
									cmplwi	r9,0
							 | 
						||
| 
								 | 
							
									bne	2f
							 | 
						||
| 
								 | 
							
									lis	r9,0
							 | 
						||
| 
								 | 
							
									li	r8,256
							 | 
						||
| 
								 | 
							
									mtctr	r8
							 | 
						||
| 
								 | 
							
								1:	dccci	r0,r9
							 | 
						||
| 
								 | 
							
									addi	r9,r9,0x20
							 | 
						||
| 
								 | 
							
									bdnz	1b
							 | 
						||
| 
								 | 
							
								2:	b	_zimage_start_lib
							 |