+static int t_32x_disable(void)
+{
+ void (*do_32x_disable)(void) = (void *)0xff0040;
+ u32 *r = (u32 *)0xa15100;
+ u16 *r16 = (u16 *)r;
+ u32 *rl = (u32 *)0;
+ int ok = 1;
+
+ expect(ok, r16[0x00/2], 0x83);
+
+ memcpy_(do_32x_disable, x32x_disable,
+ x32x_disable_end - x32x_disable);
+ do_32x_disable();
+
+ expect(ok, r16[0x00/2], 0x82);
+ expect(ok, r16[0x02/2], 0);
+ expect(ok, r16[0x04/2], 0);
+ expect(ok, r16[0x06/2], 1); // RV
+ expect(ok, r[0x14/4], 0);
+ expect(ok, r[0x18/4], 0);
+ expect(ok, r[0x1c/4], 0);
+ expect(ok, rl[0x04/4], 0x000800);
+
+ write16(&r16[0x06/2], 0); // can just set without ADEN
+ mem_barrier();
+ expect(ok, r16[0x06/2], 0); // RV
+ return ok;
+}
+