 6ab3d5624e
			
		
	
	
	6ab3d5624e
	
	
	
		
			
			Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			885 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			885 B
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /* romfs move to __ebss */
 | |
| 
 | |
| #include <asm/linkage.h>
 | |
| 
 | |
| #if defined(__H8300H__) 
 | |
| 	.h8300h
 | |
| #endif
 | |
| #if defined(__H8300S__) 
 | |
| 	.h8300s
 | |
| #endif
 | |
| 
 | |
| #define BLKOFFSET 512
 | |
| 
 | |
| 	.text
 | |
| .globl	__move_romfs
 | |
| _romfs_sig_len = 8
 | |
| 
 | |
| __move_romfs:	
 | |
| 	mov.l	#__sbss,er0
 | |
| 	mov.l	#_romfs_sig,er1
 | |
| 	mov.b	#_romfs_sig_len,r3l
 | |
| 1:					/* check romfs image */
 | |
| 	mov.b	@er0+,r2l
 | |
| 	mov.b	@er1+,r2h
 | |
| 	cmp.b	r2l,r2h
 | |
| 	bne	2f
 | |
| 	dec.b	r3l
 | |
| 	bne	1b
 | |
| 
 | |
| 	/* find romfs image */
 | |
| 	mov.l	@__sbss+8,er0		/* romfs length(be) */
 | |
| 	mov.l	#__sbss,er1
 | |
| 	add.l	er0,er1			/* romfs image end */
 | |
| 	mov.l	#__ebss,er2
 | |
| 	add.l	er0,er2			/* distination address */
 | |
| #if defined(CONFIG_INTELFLASH)
 | |
| 	add.l	#BLKOFFSET,er2
 | |
| #endif
 | |
| 	adds	#2,er0
 | |
| 	adds	#1,er0
 | |
| 	shlr	er0
 | |
| 	shlr	er0			/* transfer length */
 | |
| 1:
 | |
| 	mov.l	@er1,er3		/* copy image */
 | |
| 	mov.l	er3,@er2
 | |
| 	subs	#4,er1
 | |
| 	subs	#4,er2
 | |
| 	dec.l	#1,er0
 | |
| 	bpl	1b
 | |
| 2:
 | |
| 	rts
 | |
| 
 | |
| 	.section	.rodata
 | |
| _romfs_sig:	
 | |
| 	.ascii	"-rom1fs-"
 | |
| 
 | |
| 	.end
 |