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