12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- /* 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
|