diff options
-rw-r--r-- | www/docs/flash.t | 597 |
1 files changed, 355 insertions, 242 deletions
diff --git a/www/docs/flash.t b/www/docs/flash.t index 4ce6785bf5..20c31e16b3 100644 --- a/www/docs/flash.t +++ b/www/docs/flash.t | |||
@@ -3,301 +3,414 @@ | |||
3 | <p> | 3 | <p> |
4 | by Jörg Hohensohn aka [IDC]Dragon | 4 | by Jörg Hohensohn aka [IDC]Dragon |
5 | <p> | 5 | <p> |
6 | 1. What is this about?<br> | 6 | 1. Introduction<br> |
7 | 2. How is it working?<br> | 7 | 2. Method<br> |
8 | 3. Is it dangerous?<br> | 8 | 3. Risks<br> |
9 | 4. Will it work for me?<br> | 9 | 4. Requirements<br> |
10 | 5. How do I flash the firmware?<br> | 10 | 5. Flashing procedure<br> |
11 | 6. How do I bring in a current / my personal build of Rockbox?<br> | 11 | 6. Bringing in a current or personal build of Rockbox<br> |
12 | 7. Known issues, limitations<br> | 12 | 7. Known issues and limitations<br> |
13 | 8. Movies and images<br> | 13 | 8. Movies and images<br> |
14 | 14 | ||
15 | <h2>1. What is this about?</h2> | 15 | |
16 | <h2>1. Introduction</h2> | ||
16 | <p> | 17 | <p> |
17 | Flashing in the sense used here and elsewhere in regard to Rockbox means | 18 | Flashing |
18 | reprogramming the flash memory of the Archos unit. Flash memory (sometimes | 19 | in the sense used here and elsewhere in regard to Rockbox means |
19 | called "Flash ROM") is a type of nonvolatile memory that can be erased and | 20 | reprogramming the flash memory of the Archos unit. Flash memory |
20 | reprogrammed in circuit. It is a variation of electrically erasable | 21 | (sometimes called "Flash ROM") is a type of nonvolatile |
21 | programmable read-only memory (EEPROM). | 22 | memory that can be erased and reprogrammed in circuit. It is a |
23 | variation of electrically erasable programmable read-only memory | ||
24 | (EEPROM). | ||
25 | </p> | ||
22 | <p> | 26 | <p> |
23 | When you bought Your Archos, it came with the Archos firmware flashed. Now, | 27 | When |
24 | you can replace the built-in software with Rockbox. | 28 | you bought your Archos, it came with the Archos firmware flashed. |
29 | Now, you can replace the built-in software with Rockbox. | ||
30 | </p> | ||
25 | <p> | 31 | <p> |
26 | Some terminology I'm gonna use in the following:<br> | 32 | Terminology used in the following:<br> |
27 | <b>Firmware</b> means the flash ROM content as a whole.<br> | 33 | <b>Firmware</b> means the flash ROM content as a whole.<br> |
28 | <b>Image</b> means one operating software started from there. | 34 | <b>Image</b> means one operating software started from there. |
35 | </p> | ||
29 | <p> | 36 | <p> |
30 | By reprogramming the firmware we can bot much faster. Archos has a pathetic | 37 | By |
31 | boot loader, versus the boot time for Rrockbox is much faster than the disk | 38 | reprogramming the firmware we can boot much faster. Archos has a |
32 | spinup, in fact it has to wait for the disk. Your boot time will be as quick as | 39 | pathetic boot loader, versus the boot time for Rockbox is much faster |
33 | a disk spinup. In my case, that's 4 seconds from powerup until resuming | 40 | than the disk spinup, in fact it has to wait for the disk. Your boot |
34 | playback. | 41 | time will be as quick as a disk spinup (e.g. 4 seconds from powerup |
35 | 42 | until resuming playback). | |
36 | <h2>2. How is it working?</h2> | 43 | </p> |
44 | |||
45 | <h2>2. Method</h2> | ||
37 | <p> | 46 | <p> |
38 | The replaced firmware will host a bootloader and 2 images. I use data | 47 | The |
39 | compression to make this possible. The first is the "permanent" backup, not to | 48 | replaced firmware will host a bootloader and 2 images. This possible |
40 | be changed any more. The second is the default one to be started, the first is | 49 | by compression. The first is the "permanent" backup, not to |
41 | only used when you hold the F1 key during start. Like supplied here, the first | 50 | be changed any more. The second is the default one to be started, the |
42 | image is the original Archos firmware, the second is a current build of | 51 | first is only used when you hold the F1 key during start. Like |
43 | Rockbox. This second image is meant to be reprogrammed, it can contain anything | 52 | supplied here, the first image is the original Archos firmware, the |
44 | you like, if you prefer, you can program the Archos firmware to there, too. | 53 | second is a current build of Rockbox. This second image is meant to |
54 | be reprogrammed, it can contain anything you like, if you prefer, you | ||
55 | can program the Archos firmware to there, too. | ||
56 | </p> | ||
45 | <p> | 57 | <p> |
46 | I supply two programming tools: | 58 | There are two programming tools supplied: |
59 | </p> | ||
47 | <ul> | 60 | <ul> |
48 | <li> The first one is called "firmware_flash.rock" and is used to program the | 61 | <li> |
49 | whole flash with a new content. You can also use it to revert back to the | 62 | The |
50 | original firmware you've hopefully backup-ed. In the ideal case, you'll need | 63 | first one is called "firmware_flash.rock" and is used to |
51 | this tool only once. You can view this as "formatting" the flash with the | 64 | program the whole flash with a new content. You can also use it to |
52 | desired image structure. | 65 | revert back to the original firmware you've hopefully backup-ed. In |
53 | <li> The second one is called "rockbox_flash.rock" and is used to reprogram only | 66 | the ideal case, you'll need this tool only once. You can view this |
54 | the second image. It won't touch any other byte, should be safe to fool around | 67 | as "formatting" the flash with the desired image |
55 | with. If the programmed firmware is inoperational, you can still use the F1 | 68 | structure. |
56 | start with the Archos firmware and Rockbox booted from disk to try better. | 69 | </li> |
70 | <li> | ||
71 | The | ||
72 | second one is called "rockbox_flash.rock" and is used to | ||
73 | reprogram only the second image. It won't touch any other byte, | ||
74 | should be safe to fool around with. If the programmed firmware is | ||
75 | inoperational, you can still use the F1 start with the Archos | ||
76 | firmware and Rockbox booted from disk to try better. | ||
77 | </li> | ||
57 | </ul> | 78 | </ul> |
58 | <p> | 79 | <p> |
59 | I will provide more technical details in the future, as well as my non-user | 80 | More technical details will be provided in the future, as well as non-user |
60 | tools. There's an authoring tool which composed the firmware file with the | 81 | tools. There's an authoring tool which composed the firmware file with the |
61 | bootloader and the 2 images, the bootloader project, the plugin sources, and | 82 | bootloader and the 2 images, the bootloader project, the plugin sources, and |
62 | the tools for the UART boot feature: a monitor program for the box and a PC | 83 | the tools for the UART boot feature: a monitor program for the box and a PC |
63 | tool to drive it. Feel free to review the | 84 | tool to drive it. Feel free to review the |
64 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash/flash_sourcecode.zip">sources</a> | 85 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash/flash_sourcecode.zip">sources</a> |
65 | for all of it, but be careful when fooling around with powerful toys! | 86 | for all of it, but be careful when fooling around with powerful toys! |
87 | </p> | ||
66 | 88 | ||
67 | <h2>3. Is it dangerous?</h2> | 89 | <h2>3. Risks</h2> |
68 | <p> | 90 | <p> |
69 | Yes, certainly, like programming a mainboard BIOS, CD/DVD drive firmware, | 91 | Well, |
70 | mobile phone, etc. If the power fails, your chip breaks while programming or | 92 | is it dangerous? Yes, certainly, like programming a mainboard BIOS, |
71 | most of all the programming software malfunctions, you'll have a dead box. And | 93 | CD/DVD drive firmware, mobile phone, etc. If the power fails, your |
72 | I take no responsibility of any kind, you do that at your own risk. However, I | 94 | chip breaks while programming or most of all the programming software |
73 | tried as carefully as possible to bulletproof this code. The new firmware file | 95 | malfunctions, you'll have a dead box. We take no responsibility of |
74 | is completely read before it starts programming, there are a lot of sanity | 96 | any kind, you do that at your own risk. However, we tried as |
75 | checks. If any fails, it will not program. Before releasing this, I have | 97 | carefully as possible to bulletproof this code. The new firmware file |
76 | checked the flow with exactly these files supplied here, starting from the | 98 | is completely read before it starts programming, there are a lot of |
77 | original firmware in flash. It worked reliably for me, there's no reason why | 99 | sanity checks. If any fails, it will not program. Before releasing |
78 | such low level code should behave different on your box. | 100 | this, we have checked the flow with exactly these files supplied |
101 | here, starting from the original firmware in flash. It worked | ||
102 | reliably, there's no reason why such low level code should behave | ||
103 | different on your box. | ||
104 | </p> | ||
79 | <p> | 105 | <p> |
80 | There's one ultimate safety net to bring back boxes with even completely | 106 | There's |
81 | garbled flash content: the UART boot mod, which in turn requires the serial | 107 | one ultimate safety net to bring back boxes with even completely |
82 | mod. It can bring the dead back to life, with that it's possible to reflash | 108 | garbled flash content: the UART boot mod, which in turn requires the |
83 | independently from the outside, even if the flash is completely erased. I used | 109 | serial mod. It can bring the dead back to life, with that it's |
84 | that during development, else Rockbox in flash wouldn't have been possible. | 110 | possible to reflash independently from the outside, even if the flash |
85 | Most of the developing effort went into this tooling. So people skilled to do | 111 | is completely erased. It has been used that during development, else |
86 | these mods don't need to worry. The others may feel unpleasant using the first | 112 | Rockbox in flash wouldn't have been possible. Most of the developing |
113 | effort went into this tooling. So people skilled to do these mods | ||
114 | don't need to worry. The others may feel unpleasant using the first | ||
87 | tool for reflashing the firmware. | 115 | tool for reflashing the firmware. |
116 | </p> | ||
88 | <p> | 117 | <p> |
89 | To comfort you a bit again: The flash tools are stable since quite a while. | 118 | To |
90 | I use them a lot and quite careless meanwhile, even reflashed while playing. | 119 | comfort you a bit again: The flash tools are stable since quite a |
91 | However, I don't generally recommend that. ;-) | 120 | while. Several people use them a lot and quite careless meanwhile, |
121 | even reflashed while playing. However, we don't generally recommend | ||
122 | that. ;-) | ||
123 | </p> | ||
92 | <p> | 124 | <p> |
93 | About the safety of operation: Since we have dual boot, you're not giving up | 125 | About |
94 | the Archos firmware. It's still there when you hold F1 during startup. So even | 126 | the safety of operation: Since we have dual boot, you're not giving |
95 | if Rockbox from flash is not 100% stable for everyone, you can still use the | 127 | up the Archos firmware. It's still there when you hold F1 during |
96 | box, reflash the second image with an updated Rockbox copy, etc. | 128 | startup. So even if Rockbox from flash is not 100% stable for |
129 | everyone, you can still use the box, reflash the second image with an | ||
130 | updated Rockbox copy, etc. | ||
131 | </p> | ||
97 | <p> | 132 | <p> |
98 | The flash chip being used by Archos is specified for 100,000 cycles (in words: | 133 | The |
99 | one hundred thousand), so you don't need to worry about that wearing out. | 134 | flash chip being used by Archos is specified for 100,000 cycles (in |
135 | words: one hundred thousand), so you don't need to worry about that | ||
136 | wearing out. | ||
137 | </p> | ||
100 | 138 | ||
101 | <h2>4. Will it work for me?</h2> | 139 | <h2>4. Requirements</h2> |
102 | <p> | 140 | <p> |
103 | You need three things: | 141 | You need two things: |
142 | </p> | ||
104 | <ul> | 143 | <ul> |
105 | <li> The first is a Recorder or FM model. Be sure you're using the correct | 144 | <li> |
106 | package, Recorder and FM are different! The technology works for | 145 | The |
107 | the Player models, too. Players can also be flashed, but Rockbox does not | 146 | first is a Recorder or FM model. Be sure you're using the correct |
108 | run cold-started on those, yet. | 147 | package, Recorder and FM are different! The technology works for the |
109 | 148 | Player models, too. Players can also be flashed, but Rockbox does | |
110 | <li> Second, you need an in-circuit programmable flash. Chances are about 85% | 149 | not run cold-started on those, yet. |
111 | that you have, but Archos also used an older flash chip which can't do the | 150 | </li> |
112 | trick. You can find out via Rockbox debug menu, entry Hardware Info. If the | 151 | <li> |
113 | flash info gives you question marks, you're out of luck. The only chance then | 152 | Second, |
114 | is to solder in the right chip (SST39VF020), at best with the firmware already | 153 | you need an in-circuit programmable flash. Chances are about 85% |
115 | in. If the chip is blank, you'll need the UART boot mod as well. | 154 | that you have, but Archos also used an older flash chip which can't |
116 | 155 | do the trick. You can find out via Rockbox debug menu, entry | |
156 | Hardware Info. If the flash info gives you question marks, you're | ||
157 | out of luck. The only chance then is to solder in the right chip | ||
158 | (SST39VF020), at best with the firmware already in. If the chip is | ||
159 | blank, you'll need the UART boot mod as well. | ||
160 | </li> | ||
117 | </ul> | 161 | </ul> |
118 | 162 | ||
119 | <h2>5. How do I flash the firmware?</h2> | 163 | <h2>5. Flashing procedure</h2> |
120 | <p> | ||
121 | Short explaination: copy the firmware_*.bin files for your model from my distribution | ||
122 | to the root directory of your box, then run the "firmware_flash.rock" plugin. | ||
123 | Long version: | ||
124 | <p> | 164 | <p> |
125 | 165 | Short | |
126 | I'm using the new plugin feature to run the flasher code. There's not really a | 166 | explanation: copy the firmware_*.bin files for your model from the |
127 | wrong path to take, however here's a suggested step by step procedure: | 167 | distribution to the root directory of your box, then run the |
168 | "firmware_flash.rock" plugin. Long version, step by step | ||
169 | procedure: | ||
170 | </p> | ||
128 | <ul> | 171 | <ul> |
129 | <li> download the correct package for you model, | 172 | <li> |
130 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash/flash_rec.zip">Recorder</a> | 173 | download the correct package for you model, |
131 | or | 174 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash/flash_rec.zip">Recorder</a> |
132 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash/flash_fm.zip">FM</a> | 175 | or |
133 | , copy some files of it to your box: | 176 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash/flash_fm.zip">FM</a>, |
134 | <ol> | 177 | copy some files of it to your box: |
135 | <li> "ajbrec.ajz" into the root directory (the version of Rockbox we're going to use and have in the | 178 | <ol> |
136 | firmware file)<br> | 179 | <li> |
137 | <li> firmware_rec.bin or firmware_fm.bin into the root directory (the complete firmware for your model, | 180 | "ajbrec.ajz" |
138 | with my bootloader and the two images). There now is also a _norom variant, copy both, | 181 | into the root directory (the version of Rockbox we're going to use |
139 | the plugin will decide which one is required for your box. | 182 | and have in the firmware file) |
140 | <li> the .rockbox subdirectory with all the plugins for Rockbox<br> | 183 | </li> |
141 | </ol> | 184 | <li> |
142 | <li> Restart the box so that the new ajbrec.ajz gets started. | 185 | firmware_rec.bin |
143 | 186 | or firmware_fm.bin into the root directory (the complete firmware | |
144 | <li> Enter the debug menu and select the hardware info screen. Check you flash | 187 | for your model, with the bootloader and the two images). There now |
145 | IDs (bottom line), and please make a note about your hardware | 188 | is also a _norom variant, copy both, the plugin will decide which |
146 | mask value (second line). The latter is just for my curiosity, not needed for the | 189 | one is required for your box. |
147 | flow. If the flash info shows question marks, you can stop here, sorry. | 190 | </li> |
148 | 191 | <li> | |
149 | <li> Backup the current firmware, using the first option of the debug menu | 192 | the .rockbox subdirectory with all the plugins for Rockbox |
150 | (Dump ROM contents). This creates 2 files in the root directory, which you may | 193 | </li> |
151 | not immediately see in the Rockbox browser. The 256kB-sized | 194 | </ol> |
152 | "internal_rom_2000000-203FFFF.bin" one is your present firmware. Back both up | 195 | <li> |
153 | to your PC. | 196 | Restart the box so that the new ajbrec.ajz gets started. |
154 | 197 | </li> | |
155 | <li> (optional) While you're in this Rockbox version, I recommend to give it a | 198 | </li> |
156 | test and play around with it, this version is identical to the one about to be | 199 | <li> |
157 | programmed. Make sure that especially USB access and Rolo works. When done, | 200 | Enter |
158 | restart again to have a fresh start and to be back in this Rockbox version. | 201 | the debug menu and select the hardware info screen. Check you flash |
159 | 202 | IDs (bottom line), and please make a note about your hardware mask | |
160 | <li> Use the F2 settings to configure seeing all files within the browser. | 203 | value (second line). The latter is just for our curiosity, not |
161 | 204 | needed for the flow. If the flash info shows question marks, you can | |
162 | <li> Connect the charger and make sure your batteries are also in good | 205 | stop here, sorry. |
163 | shape. I'm just being paranoid here, it's not that flashing needs more power. | 206 | </li> |
164 | 207 | <li> | |
165 | <li> Run the "firmware_flash.rock" plugin. It again tells you about your flash | 208 | Backup |
166 | and the file it's gonna program. After F1 it checks the file. Your hardware | 209 | the current firmware, using the first option of the debug menu (Dump |
167 | mask value will be kept, it won't overwrite it. Hitting F2 gives you a big | 210 | ROM contents). This creates 2 files in the root directory, which you |
168 | warning. If I still didn't manage to scare you off, you can hit F3 to | 211 | may not immediately see in the Rockbox browser. The 256kB-sized |
169 | actually program and verify. The programming takes just a few seconds. | 212 | "internal_rom_2000000-203FFFF.bin" one is your present |
170 | If the sanity check fails, you have the wrong kind of boot ROM and are | 213 | firmware. Back both up to your PC. |
171 | out of luck by now, sorry. | 214 | </li> |
172 | 215 | <li> | |
173 | <li> In the unlikely event that the programming should give you any error, | 216 | (optional) |
174 | don't switch off the box! Otherwise you'll have seen it working for the last | 217 | While you're in this Rockbox version, it is recommended to give it a |
175 | time. While Rockbox is still in DRAM and operational, we could upgrade the | 218 | test and play around with it, this version is identical to the one |
176 | plugin via USB and try again. If you switch it off, it's gone. | 219 | about to be programmed. Make sure that especially USB access and |
177 | 220 | Rolo works. When done, restart again to have a fresh start and to be | |
178 | <li> Unplug the charger, restart the box and hopefully be in Rockbox straight | 221 | back in this Rockbox version. |
179 | away! You may delete "firmware_flash.rock" then, to avoid your little | 222 | </li> |
180 | brother playing with that. Pressing On+Play can do it, or your PC. You | 223 | <li> |
181 | can also delete the ".bin" files. | 224 | Use |
182 | 225 | the F2 settings to configure seeing all files within the browser. | |
183 | <li> Try starting again, this time holding F1 while pressing On. It should | 226 | </li> |
184 | boot the Archos firmware, which then loads rockbox from disk. In fact, even | 227 | <li> |
185 | the Archos firmware comes up quicker, because their loader is replaced by | 228 | Connect |
186 | mine. | 229 | the charger and make sure your batteries are also in good shape. |
187 | 230 | That's just for security reasons, it's not that flashing needs more | |
231 | power. | ||
232 | </li> | ||
233 | <li> | ||
234 | Run | ||
235 | the "firmware_flash.rock" plugin. It again tells you about | ||
236 | your flash and the file it's gonna program. After F1 it checks the | ||
237 | file. Your hardware mask value will be kept, it won't overwrite it. | ||
238 | Hitting F2 gives you a big warning. If we still didn't manage to | ||
239 | scare you off, you can hit F3 to actually program and verify. The | ||
240 | programming takes just a few seconds. If the sanity check fails, you | ||
241 | have the wrong kind of boot ROM and are out of luck by now, sorry. | ||
242 | </li> | ||
243 | <li> | ||
244 | In | ||
245 | the unlikely event that the programming should give you any error, | ||
246 | don't switch off the box! Otherwise you'll have seen it working for | ||
247 | the last time. While Rockbox is still in DRAM and operational, we | ||
248 | could upgrade the plugin via USB and try again. If you switch it | ||
249 | off, it's gone. | ||
250 | </li> | ||
251 | <li> | ||
252 | Unplug | ||
253 | the charger, restart the box and hopefully be in Rockbox straight | ||
254 | away! You may delete "firmware_flash.rock" then, to avoid | ||
255 | your little brother playing with that. Pressing On+Play can do it, | ||
256 | or your PC. You can also delete the ".bin" files. | ||
257 | </li> | ||
258 | <li> | ||
259 | Try | ||
260 | starting again, this time holding F1 while pressing On. It should | ||
261 | boot the Archos firmware, which then loads rockbox from disk. In | ||
262 | fact, even the Archos firmware comes up quicker, because their | ||
263 | loader is replaced by mine. | ||
264 | </li> | ||
188 | </ul> | 265 | </ul> |
189 | 266 | <p> | |
190 | When for any reason you'd like to revert to the original firmware, you can do | 267 | When |
191 | like above, but copy and rename your backup to be "firmware_rec.bin" on the | 268 | for any reason you'd like to revert to the original firmware, you can |
192 | box this time. Keep the Rockbox copy and the plugins of this package for that | 269 | do like above, but copy and rename your backup to be |
193 | job, because that's the one it was tested with. | 270 | "firmware_rec.bin" on the box this time. Keep the Rockbox |
194 | 271 | copy and the plugins of this package for that job, because that's the | |
195 | <h2>6. How do I bring in a current / my personal build of Rockbox?</h2> | 272 | one it was tested with. |
196 | <p> Short explaination: very easy, just play a .ucl file like "rockbox.ucl" | 273 | </p> |
274 | |||
275 | <h2>6. Bringing in a current or personal build of Rockbox</h2> | ||
276 | <p> | ||
277 | Short | ||
278 | explanation: very easy, just play a .ucl file like "rockbox.ucl" | ||
197 | from the download or build. Long version: | 279 | from the download or build. Long version: |
198 | 280 | </p> | |
199 | <p> | 281 | <p> |
200 | The second image is the working copy, the "rockbox_flash.rock" plugin from this | 282 | The |
201 | package reprograms it. The plugins needs to be consistant with the Rockbox | 283 | second image is the working copy, the "rockbox_flash.rock" |
202 | plugin API version, otherwise it will detect mismatch and won't run. | 284 | plugin from this package reprograms it. The plugins needs to be |
203 | 285 | consistant with the Rockbox plugin API version, otherwise it will | |
204 | <p> It requires an exotic input, a UCL-compressed image, because | 286 | detect mismatch and won't run. |
205 | that's my internal format. UCL is a nice open-source compression library I | 287 | </p> |
206 | found and use. The decompression is very fast and less than a page of | 288 | <p> |
207 | C-code. The efficiency is even better than Zip with maximum compression, cooks | 289 | It |
208 | it down to about 58% of the original size. For details on UCL, see: <a | 290 | requires an exotic input, a UCL-compressed image, because that's the |
209 | href="http://www.oberhumer.com/opensource/ucl/">www.oberhumer.com/opensource/ucl/</a> | 291 | internal format. UCL is a nice open-source compression library. The |
210 | 292 | decompression is very fast and less than a page of C-code. The | |
211 | <p> Linux users will have to download it from there and compile it, for Win32 | 293 | efficiency is even better than Zip with maximum compression, cooks it |
212 | and Cygwin I can do that, so the executables are in | 294 | down to about 58% of the original size. For details on UCL, see: |
295 | <a href="http://www.oberhumer.com/opensource/ucl/">www.oberhumer.com/opensource/ucl/</a> | ||
296 | |||
297 | </p> | ||
298 | <p> | ||
299 | Linux | ||
300 | users will have to download it from there and compile it, for Win32 | ||
301 | and Cygwin the executables are in | ||
213 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash">the packages</a>. | 302 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash">the packages</a>. |
214 | The sample program from that download is called "uclpack". We'll use that to | 303 | The sample program from that download is called "uclpack". |
215 | compress "rockbox.bin" which is the result of the compilation. This is | 304 | We'll use that to compress "rockbox.bin" which is the |
216 | a part of the build process meanwhile. If you compile Rockbox yourself, | 305 | result of the compilation. This is a part of the build process |
217 | you should copy uclpack to a directory which is in the path, I recommend | 306 | meanwhile. If you compile Rockbox yourself, you should copy uclpack |
218 | placing it int the same dir as SH compiler. | 307 | to a directory which is in the path, we recommend placing it in the |
219 | 308 | same dir as SH compiler. | |
309 | </p> | ||
220 | <p> | 310 | <p> |
221 | Don't flash any "old" builds which don't have the latest coldstart ability I | 311 | Don't |
222 | brought into cvs these days. They won't boot. These instructions refer to | 312 | flash any "old" builds which don't have the latest |
313 | coldstart ability. They won't boot. These instructions refer to | ||
223 | builds from cvs state 2003-07-10 on. | 314 | builds from cvs state 2003-07-10 on. |
315 | </p> | ||
224 | <p> | 316 | <p> |
225 | Here are the steps: | 317 | Here are the steps: |
318 | </p> | ||
226 | <ul> | 319 | <ul> |
227 | <li> If you start from a .ajz file, you'll need to descramble it first into | 320 | <li> |
228 | "rockbox.bin", by using "descramble ajbrec.ajz rockbox.bin". IMPORTANT: For an | 321 | If |
229 | FM, the command is different, use "descramble -fm ajbrec.ajz rockbox.bin"! | 322 | you start from a .ajz file, you'll need to descramble it first into |
230 | Otherwise the image won't be functional. Compress the image using uclpack, | 323 | "rockbox.bin", by using "descramble ajbrec.ajz |
231 | algorithm 2e (the most efficient, and the only one supported by the | 324 | rockbox.bin". IMPORTANT: For an FM, the command is different, |
232 | bootloader), with maximum compression, by typing | 325 | use "descramble -fm ajbrec.ajz rockbox.bin"! Otherwise the |
233 | "uclpack --2e --best rockbox.bin rockbox.ucl". You can make a batch file for | 326 | image won't be functional. Compress the image using uclpack, |
234 | this and the above step, if you like. | 327 | algorithm 2e (the most efficient, and the only one supported by the |
235 | 328 | bootloader), with maximum compression, by typing "uclpack --2e | |
236 | <li> Normally, you'll simply download or compile rockbox.ucl. Copy it together | 329 | --best rockbox.bin rockbox.ucl". You can make a batch file for |
237 | with ajbrec.ajz and all the rocks to the appropriate places, replacing the old. | 330 | this and the above step, if you like. |
238 | 331 | </li> | |
239 | <li> Just "play" the .ucl file, this will kick off the "rockbox_flash.rock" | 332 | <li> |
240 | plugin. It's a bit similar to the other one, but I made it different | 333 | Normally, |
241 | to make the user aware. It will check the file, | 334 | you'll simply download or compile rockbox.ucl. Copy it together with |
242 | available size, etc. With F2 it's being programmed, no need for warning this | 335 | ajbrec.ajz and all the rocks to the appropriate places, replacing |
243 | time. If it goes wrong, you'll still have the permanent image. | 336 | the old. |
244 | 337 | </li> | |
245 | <li> It may happen | 338 | <li> |
246 | that you get an "Incompatible Version" error, if the plugin interface has | 339 | Just |
247 | changed meanwhile. You're running an "old" copy of Rockbox, but are trying | 340 | "play" the .ucl file, this will kick off the |
248 | to execute a newer plugin, the one you just downloaded. The easiest solution | 341 | "rockbox_flash.rock" plugin. It's a bit similar to the |
249 | is to rolo into this new version, by playing the ajbrec.ajz file. Then | 342 | other one, but it's made different to make the user aware. It will |
250 | you are consistant and can play rockbox.ucl. | 343 | check the file, available size, etc. With F2 it's being programmed, |
251 | 344 | no need for warning this time. If it goes wrong, you'll still have | |
252 | <li> When done, you can restart the box and hopefully your new Rockbox image. | 345 | the permanent image. |
253 | 346 | </li> | |
347 | <li> | ||
348 | It | ||
349 | may happen that you get an "Incompatible Version" error, | ||
350 | if the plugin interface has changed meanwhile. You're running an | ||
351 | "old" copy of Rockbox, but are trying to execute a newer | ||
352 | plugin, the one you just downloaded. The easiest solution is to rolo | ||
353 | into this new version, by playing the ajbrec.ajz file. Then you are | ||
354 | consistant and can play rockbox.ucl. | ||
355 | </li> | ||
356 | <li> | ||
357 | When | ||
358 | done, you can restart the box and hopefully your new Rockbox image. | ||
359 | </li> | ||
254 | </ul> | 360 | </ul> |
255 | |||
256 | A more luxurious version of the plugin could do the descrambling and | ||
257 | compression by itself, but that's hard to do because a plugin is very limited | ||
258 | with memory (32kB for code and data). Currently I'm doing one flash sector | ||
259 | (4096 bytes) at a time. Don't know how slow the compression algorithm would be | ||
260 | on the box, that's the strenuous part. | ||
261 | <p> | 361 | <p> |
262 | If you like or have to, you can also flash the Archos image as the second one, | 362 | If |
263 | e.g. in case Rockbox from flash doesn't work for you. This way you keep the | 363 | you like or have to, you can also flash the Archos image as the |
264 | dual bootloader and you can easily try different later. I prepared | 364 | second one, e.g. in case Rockbox from flash doesn't work for you. |
365 | This way you keep the dual bootloader and you can easily try | ||
366 | different later. You can download | ||
265 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash">UCLs</a> | 367 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash">UCLs</a> |
266 | for the latest Recorder and FM firmware. | 368 | for the latest Recorder and FM firmware |
369 | <a href="http://joerg.hohensohn.bei.t-online.de/archos/flash">here</a>. | ||
267 | 370 | ||
268 | <h2>7. Known issues, limitations</h2> | 371 | </p> |
269 | <p> | ||
270 | Latest Rockbox now has a charging screen, but it is in an early stage. You'll | ||
271 | get it when the unit is off and you plug in the charger. The Rockbox charging | ||
272 | algorithm is first measuring the battery voltage for about 40 seconds, after | ||
273 | that it only starts charging when the capacity is below 85%. | ||
274 | You can use the Archos charging (which always tops off) by holding F1 | ||
275 | while plugging in. Some FM users reported charging problems even with F1, | ||
276 | they had to revert to the original flash content. | ||
277 | 372 | ||
373 | <h2>7. Known issues and limitations</h2> | ||
278 | <p> | 374 | <p> |
279 | If the plugin API is changed, new builds may render the plugins | 375 | Latest |
280 | incompatible. When updating, make sure you grab those too, and rolo into | 376 | Rockbox now has a charging screen, but it is in an early stage. |
281 | the new version before flashing it. | 377 | You'll get it when the unit is off and you plug in the charger. The |
282 | 378 | Rockbox charging algorithm is first measuring the battery voltage for | |
379 | about 40 seconds, after that it only starts charging when the | ||
380 | capacity is below 85%. You can use the Archos charging (which always | ||
381 | tops off) by holding F1 while plugging in. Some FM users reported | ||
382 | charging problems even with F1, they had to revert to the original | ||
383 | flash content. | ||
384 | </p> | ||
283 | <p> | 385 | <p> |
284 | There are two variants of how the boxes starts, therefore the normal and the _norom | 386 | If |
285 | firmware files. The vast majority of the Player/Recorder/FM all have the same boot | 387 | the plugin API is changed, new builds may render the plugins |
286 | ROM content, differenciation comes later by flash content. Rockbox identifies this | 388 | incompatible. When updating, make sure you grab those too, and rolo |
287 | boot ROM with a CRC value of 0x222F in the hardware info screen. Some recorders | 389 | into the new version before flashing it. |
288 | have the boot ROM disabled (it might be unprogrammed) and start directly from a | 390 | </p> |
289 | flash mirror at address zero. They need the new _norom firmware, it has a slightly | 391 | <p> |
290 | different bootloader. Without a boot ROM there is no UART boot safety net. To | 392 | There |
291 | compensate for that as much as possible I have included my MiniMon monitor, | 393 | are two variants of how the boxes starts, therefore the normal and |
292 | it starts with F3+On. Using that the box can be reprogrammed via serial if the | 394 | the _norom firmware files. The vast majority of the |
293 | first ~2000 bytes of the flash are OK. | 395 | Player/Recorder/FM all have the same boot ROM content, |
396 | differentiation comes later by flash content. Rockbox identifies this | ||
397 | boot ROM with a CRC value of 0x222F in the hardware info screen. Some | ||
398 | recorders have the boot ROM disabled (it might be unprogrammed) and | ||
399 | start directly from a flash mirror at address zero. They need the new | ||
400 | _norom firmware, it has a slightly different bootloader. Without a | ||
401 | boot ROM there is no UART boot safety net. To compensate for that as | ||
402 | much as possible the MiniMon monitor is included, it starts with | ||
403 | F3+On. Using that the box can be reprogrammed via serial if the first | ||
404 | ~2000 bytes of the flash are OK. | ||
405 | </p> | ||
294 | 406 | ||
295 | <h2>8. Movies and images</h2> | 407 | <h2>8. Movies and images</h2> |
296 | <p> | 408 | <p> |
297 | Jörg's AVI movie (1.5MB) <a href="flash/rockbox_flash_boot.avi">rockbox_flash_boot.avi</a> | 409 | Jörg's AVI movie (1.5MB) <a href="flash/rockbox_flash_boot.avi">rockbox_flash_boot.avi</a> |
298 | showing his unit booting Rockbox from flash. | 410 | showing his unit booting Rockbox from flash. |
299 | <p> | 411 | <p> |
300 | Roland's screendump from the movie:<br> | 412 | Roland's screendump from the movie:<br> |
301 | <img src="flash/rockbox-flash.jpg" width="352" height="288"> | 413 | <img src="flash/rockbox-flash.jpg" width="352" height="288"> |
302 | 414 | ||
303 | #include "foot.t" | 415 | #include "foot.t" |
416 | |||