diff options
author | Magnus Damm <damm@igel.co.jp> | 2009-07-29 11:06:15 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-07-29 11:24:07 -0400 |
commit | d162300e6c963fe255ea7f73b956a7716e24205d (patch) | |
tree | c782b69e96370e9d9cc170fb2ffc16db7385e36b /arch/sh/include/mach-kfr2r09 | |
parent | 3c928320b2254cb6c8d8a7919a1fcf94ca7cae66 (diff) |
sh: kfr2r09 romImage support V2
This patch is romImage support for the kfr2r09 board V2.
The partner-jet-setup.txt file is converted into assembly code
which becomes the first code to execute from the reset vector.
The file partner-jet-setup.txt can also be used to setup
the hardware using a JTAG debugger so booting from RAM can
be done without burning the code to flash.
Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/include/mach-kfr2r09')
-rw-r--r-- | arch/sh/include/mach-kfr2r09/partner-jet-setup.txt | 134 | ||||
-rw-r--r-- | arch/sh/include/mach-kfr2r09/romimage.h | 75 |
2 files changed, 209 insertions, 0 deletions
diff --git a/arch/sh/include/mach-kfr2r09/partner-jet-setup.txt b/arch/sh/include/mach-kfr2r09/partner-jet-setup.txt new file mode 100644 index 00000000000..9c85088728a --- /dev/null +++ b/arch/sh/include/mach-kfr2r09/partner-jet-setup.txt | |||
@@ -0,0 +1,134 @@ | |||
1 | LIST "partner-jet-setup.txt - 20090729 Magnus Damm" | ||
2 | LIST "set up enough of the kfr2r09 hardware to boot the kernel" | ||
3 | |||
4 | LIST "zImage (RAM boot)" | ||
5 | LIST "This script can be used to boot the kernel from RAM via JTAG:" | ||
6 | LIST "> < partner-jet-setup.txt" | ||
7 | LIST "> RD zImage, 0xa8800000" | ||
8 | LIST "> G=0xa8800000" | ||
9 | |||
10 | LIST "romImage (Flash boot)" | ||
11 | LIST "Use the following command to burn the zImage to flash via JTAG:" | ||
12 | LIST "> RD romImage, 0" | ||
13 | |||
14 | LIST "--------------------------------" | ||
15 | |||
16 | LIST "disable watchdog" | ||
17 | EW 0xa4520004, 0xa507 | ||
18 | |||
19 | LIST "select mode for cs5 + cs6" | ||
20 | ED 0xff800020, 0xa5a50001 | ||
21 | ED 0xfec10000, 0x0000001b | ||
22 | |||
23 | LIST "setup clocks" | ||
24 | ED 0xa4150004, 0x00000050 | ||
25 | ED 0xa4150000, 0x91053508 | ||
26 | WAIT 1 | ||
27 | ED 0xa4150024, 0x00005000 | ||
28 | |||
29 | LIST "setup pins" | ||
30 | EB 0xa4050120, 0x00 | ||
31 | EB 0xa4050122, 0x00 | ||
32 | EB 0xa4050124, 0x00 | ||
33 | EB 0xa4050126, 0x00 | ||
34 | EB 0xa4050128, 0xA0 | ||
35 | EB 0xa405012A, 0x10 | ||
36 | EB 0xa405012C, 0x00 | ||
37 | EB 0xa405012E, 0x00 | ||
38 | EB 0xa4050130, 0x00 | ||
39 | EB 0xa4050132, 0x00 | ||
40 | EB 0xa4050134, 0x01 | ||
41 | EB 0xa4050136, 0x40 | ||
42 | EB 0xa4050138, 0x00 | ||
43 | EB 0xa405013A, 0x00 | ||
44 | EB 0xa405013C, 0x00 | ||
45 | EB 0xa405013E, 0x20 | ||
46 | EB 0xa4050160, 0x00 | ||
47 | EB 0xa4050162, 0x40 | ||
48 | EB 0xa4050164, 0x03 | ||
49 | EB 0xa4050166, 0x00 | ||
50 | EB 0xa4050168, 0x00 | ||
51 | EB 0xa405016A, 0x00 | ||
52 | EB 0xa405016C, 0x00 | ||
53 | |||
54 | EW 0xa405014E, 0x5660 | ||
55 | EW 0xa4050150, 0x0145 | ||
56 | EW 0xa4050152, 0x1550 | ||
57 | EW 0xa4050154, 0x0200 | ||
58 | EW 0xa4050156, 0x0040 | ||
59 | |||
60 | EW 0xa4050158, 0x0000 | ||
61 | EW 0xa405015a, 0x0000 | ||
62 | EW 0xa405015c, 0x0000 | ||
63 | EW 0xa405015e, 0x0000 | ||
64 | |||
65 | EW 0xa4050180, 0x0000 | ||
66 | EW 0xa4050182, 0x8002 | ||
67 | EW 0xa4050184, 0x0000 | ||
68 | |||
69 | EW 0xa405018a, 0x9991 | ||
70 | EW 0xa405018c, 0x8011 | ||
71 | EW 0xa405018e, 0x9550 | ||
72 | |||
73 | EW 0xa4050100, 0x0000 | ||
74 | EW 0xa4050102, 0x5540 | ||
75 | EW 0xa4050104, 0x0000 | ||
76 | EW 0xa4050106, 0x0000 | ||
77 | EW 0xa4050108, 0x4550 | ||
78 | EW 0xa405010a, 0x0130 | ||
79 | EW 0xa405010c, 0x0555 | ||
80 | EW 0xa405010e, 0x0000 | ||
81 | EW 0xa4050110, 0x0000 | ||
82 | EW 0xa4050112, 0xAAA8 | ||
83 | EW 0xa4050114, 0x8305 | ||
84 | EW 0xa4050116, 0x10F0 | ||
85 | EW 0xa4050118, 0x0F50 | ||
86 | EW 0xa405011a, 0x0000 | ||
87 | EW 0xa405011c, 0x0000 | ||
88 | EW 0xa405011e, 0x0555 | ||
89 | EW 0xa4050140, 0x0000 | ||
90 | EW 0xa4050142, 0x5141 | ||
91 | EW 0xa4050144, 0x5005 | ||
92 | EW 0xa4050146, 0xAAA9 | ||
93 | EW 0xa4050148, 0xFAA9 | ||
94 | EW 0xa405014a, 0x3000 | ||
95 | EW 0xa405014c, 0x0000 | ||
96 | |||
97 | LIST "setup sdram" | ||
98 | ED 0xFD000108, 0x40000301 | ||
99 | ED 0xFD000020, 0x011B0002 | ||
100 | ED 0xFD000030, 0x03060E02 | ||
101 | ED 0xFD000034, 0x01020102 | ||
102 | ED 0xFD000038, 0x01090406 | ||
103 | ED 0xFD000008, 0x00000004 | ||
104 | ED 0xFD000040, 0x00000001 | ||
105 | ED 0xFD000040, 0x00000000 | ||
106 | ED 0xFD000018, 0x00000001 | ||
107 | |||
108 | WAIT 1 | ||
109 | |||
110 | ED 0xFD000014, 0x00000002 | ||
111 | ED 0xFD000060, 0x00000032 | ||
112 | ED 0xFD000060, 0x00020000 | ||
113 | ED 0xFD000014, 0x00000004 | ||
114 | ED 0xFD000014, 0x00000004 | ||
115 | ED 0xFD000010, 0x00000001 | ||
116 | ED 0xFD000044, 0x000004AF | ||
117 | ED 0xFD000048, 0x20CF0037 | ||
118 | |||
119 | LIST "read 16 bytes from sdram" | ||
120 | DD 0xa8000000, 0xa8000000, 1 | ||
121 | DD 0xa8000004, 0xa8000004, 1 | ||
122 | DD 0xa8000008, 0xa8000008, 1 | ||
123 | DD 0xa800000c, 0xa800000c, 1 | ||
124 | |||
125 | ED 0xFD000014, 0x00000002 | ||
126 | ED 0xFD000014, 0x00000004 | ||
127 | ED 0xFD000108, 0x40000300 | ||
128 | ED 0xFD000040, 0x00010000 | ||
129 | |||
130 | LIST "write to internal ram" | ||
131 | ED 0xfd8007fc, 0 | ||
132 | |||
133 | LIST "setup cache" | ||
134 | ED 0xff00001c, 0x0000090b | ||
diff --git a/arch/sh/include/mach-kfr2r09/romimage.h b/arch/sh/include/mach-kfr2r09/romimage.h new file mode 100644 index 00000000000..f5aa8e16770 --- /dev/null +++ b/arch/sh/include/mach-kfr2r09/romimage.h | |||
@@ -0,0 +1,75 @@ | |||
1 | /* kfr2r09 board specific boot code: | ||
2 | * converts the "partner-jet-script.txt" script into assembly | ||
3 | * the assembly code is the first code to be executed in the romImage | ||
4 | */ | ||
5 | |||
6 | /* The LIST command is used to include comments in the script */ | ||
7 | .macro LIST comment | ||
8 | .endm | ||
9 | |||
10 | /* The ED command is used to write a 32-bit word */ | ||
11 | .macro ED, addr, data | ||
12 | mov.l 1f ,r1 | ||
13 | mov.l 2f ,r0 | ||
14 | mov.l r0, @r1 | ||
15 | bra 3f | ||
16 | nop | ||
17 | .align 2 | ||
18 | 1: .long \addr | ||
19 | 2: .long \data | ||
20 | 3: | ||
21 | .endm | ||
22 | |||
23 | /* The EW command is used to write a 16-bit word */ | ||
24 | .macro EW, addr, data | ||
25 | mov.l 1f ,r1 | ||
26 | mov.l 2f ,r0 | ||
27 | mov.w r0, @r1 | ||
28 | bra 3f | ||
29 | nop | ||
30 | .align 2 | ||
31 | 1: .long \addr | ||
32 | 2: .long \data | ||
33 | 3: | ||
34 | .endm | ||
35 | |||
36 | /* The EB command is used to write an 8-bit word */ | ||
37 | .macro EB, addr, data | ||
38 | mov.l 1f ,r1 | ||
39 | mov.l 2f ,r0 | ||
40 | mov.b r0, @r1 | ||
41 | bra 3f | ||
42 | nop | ||
43 | .align 2 | ||
44 | 1: .long \addr | ||
45 | 2: .long \data | ||
46 | 3: | ||
47 | .endm | ||
48 | |||
49 | /* The WAIT command is used to delay the execution */ | ||
50 | .macro WAIT, time | ||
51 | mov.l 2f ,r3 | ||
52 | 1: | ||
53 | nop | ||
54 | tst r3, r3 | ||
55 | bf/s 1b | ||
56 | dt r3 | ||
57 | bra 3f | ||
58 | nop | ||
59 | .align 2 | ||
60 | 2: .long \time * 100 | ||
61 | 3: | ||
62 | .endm | ||
63 | |||
64 | /* The DD command is used to read a 32-bit word */ | ||
65 | .macro DD, addr, addr2, nr | ||
66 | mov.l 1f ,r1 | ||
67 | mov.l @r1, r0 | ||
68 | bra 2f | ||
69 | nop | ||
70 | .align 2 | ||
71 | 1: .long \addr | ||
72 | 2: | ||
73 | .endm | ||
74 | |||
75 | #include "partner-jet-setup.txt" | ||