1/* romfs move to __ebss */ 2 3#include <asm/linkage.h> 4 5#if defined(__H8300H__) 6 .h8300h 7#endif 8#if defined(__H8300S__) 9 .h8300s 10#endif 11 12#define BLKOFFSET 512 13 14 .text 15.globl __move_romfs 16_romfs_sig_len = 8 17 18__move_romfs: 19 mov.l #__sbss,er0 20 mov.l #_romfs_sig,er1 21 mov.b #_romfs_sig_len,r3l 221: /* check romfs image */ 23 mov.b @er0+,r2l 24 mov.b @er1+,r2h 25 cmp.b r2l,r2h 26 bne 2f 27 dec.b r3l 28 bne 1b 29 30 /* find romfs image */ 31 mov.l @__sbss+8,er0 /* romfs length(be) */ 32 mov.l #__sbss,er1 33 add.l er0,er1 /* romfs image end */ 34 mov.l #__ebss,er2 35 add.l er0,er2 /* distination address */ 36#if defined(CONFIG_INTELFLASH) 37 add.l #BLKOFFSET,er2 38#endif 39 adds #2,er0 40 adds #1,er0 41 shlr er0 42 shlr er0 /* transfer length */ 431: 44 mov.l @er1,er3 /* copy image */ 45 mov.l er3,@er2 46 subs #4,er1 47 subs #4,er2 48 dec.l #1,er0 49 bpl 1b 502: 51 rts 52 53 .section .rodata 54_romfs_sig: 55 .ascii "-rom1fs-" 56 57 .end 58