Subject: A3000 more magic fix
To: None <chopps@emunix.emich.edu>
From: None <rhealey@aggregate.com>
List: amiga-dev
Date: 06/06/1994 19:49:59
Below is the fix needed to get 3000's to reboot without needing
a power cycle. I chose amiga_init.c since it was C code, as opposed
to locore.s assembly, and it was at the point where the MMU is first
turned on so it's before most places where a lockup will occur, i.e.
where Control-A-A is needed to bail out.
-Rob
*** amiga_init.c.orig Mon Jun 6 19:27:26 1994
--- amiga_init.c Mon Jun 6 19:28:00 1994
***************
*** 637,642 ****
--- 637,658 ----
custom.intreq = 0x7fff; /* clear any current */
ciaa.icr = 0x7f; /* and keyboard */
ciab.icr = 0x7f; /* and again */
+
+ /*
+ * This is needed for 3000's with superkick ROM's. Bit 7 of
+ * 0xde0002 enables the ROM if set. If this isn't set the machine
+ * has to be powercycled in order for it to boot again. ICKA! RFH
+ */
+ if (is_a3000()) {
+ volatile unsigned char *a3000_magic_reset;
+
+ a3000_magic_reset = (unsigned char *)ztwomap(0xde0002);
+
+ /* Turn SuperKick ROM (V36) back on */
+ *a3000_magic_reset |= 0x80;
+
+ }
+
}
------------------------------------------------------------------------------