diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/crt0.S | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/firmware/crt0.S b/firmware/crt0.S index 1f385d4ce5..339366582f 100644 --- a/firmware/crt0.S +++ b/firmware/crt0.S | |||
@@ -173,6 +173,21 @@ irq_handler: | |||
173 | 173 | ||
174 | 174 | ||
175 | #ifdef BOOTLOADER | 175 | #ifdef BOOTLOADER |
176 | /* The cookie is not reset. This must mean that the boot loader | ||
177 | has crashed. Let's start the original firmware immediately. */ | ||
178 | lea 0x10017ffc,%a2 | ||
179 | move.l (%a2),%d0 | ||
180 | move.l #0xc0015a17,%d1 | ||
181 | cmp.l %d0,%d1 | ||
182 | bne .nocookie | ||
183 | /* Clear the cookie again */ | ||
184 | move.l #0,(%a2) | ||
185 | jmp 8 | ||
186 | |||
187 | .nocookie: | ||
188 | /* Set the cookie */ | ||
189 | move.l %d1,(%a2) | ||
190 | |||
176 | /* Set up the DRAM controller. The refresh is based on the 11.2896MHz | 191 | /* Set up the DRAM controller. The refresh is based on the 11.2896MHz |
177 | clock (5.6448MHz bus frequency). We haven't yet started the PLL */ | 192 | clock (5.6448MHz bus frequency). We haven't yet started the PLL */ |
178 | move.l #0x80050000,%d0 | 193 | move.l #0x80050000,%d0 |