drm/nouveau/pmu: prevent falcon from acking interrupts routed to the host
[linux-2.6-block.git] / drivers / gpu / drm / nouveau / nvkm / subdev / pmu / fuc / gt215.fuc3.h
index 2686f8fad0f5ee743dbf74a007396217ab4cb7d9..516569270bacde390fbfdeecb1140ff7b1ab315d 100644 (file)
@@ -24,8 +24,8 @@ uint32_t gt215_pmu_data[] = {
        0x00000000,
 /* 0x0058: proc_list_head */
        0x54534f48,
-       0x00000512,
-       0x000004af,
+       0x00000507,
+       0x000004a4,
        0x00000000,
        0x00000000,
        0x00000000,
@@ -46,8 +46,8 @@ uint32_t gt215_pmu_data[] = {
        0x00000000,
        0x00000000,
        0x584d454d,
-       0x00000842,
-       0x00000834,
+       0x00000837,
+       0x00000829,
        0x00000000,
        0x00000000,
        0x00000000,
@@ -68,8 +68,8 @@ uint32_t gt215_pmu_data[] = {
        0x00000000,
        0x00000000,
        0x46524550,
-       0x00000846,
-       0x00000844,
+       0x0000083b,
+       0x00000839,
        0x00000000,
        0x00000000,
        0x00000000,
@@ -90,8 +90,8 @@ uint32_t gt215_pmu_data[] = {
        0x00000000,
        0x00000000,
        0x5f433249,
-       0x00000c76,
-       0x00000b19,
+       0x00000c6b,
+       0x00000b0e,
        0x00000000,
        0x00000000,
        0x00000000,
@@ -112,8 +112,8 @@ uint32_t gt215_pmu_data[] = {
        0x00000000,
        0x00000000,
        0x54534554,
-       0x00000c9f,
-       0x00000c78,
+       0x00000c94,
+       0x00000c6d,
        0x00000000,
        0x00000000,
        0x00000000,
@@ -134,8 +134,8 @@ uint32_t gt215_pmu_data[] = {
        0x00000000,
        0x00000000,
        0x454c4449,
-       0x00000cab,
-       0x00000ca9,
+       0x00000ca0,
+       0x00000c9e,
        0x00000000,
        0x00000000,
        0x00000000,
@@ -229,26 +229,26 @@ uint32_t gt215_pmu_data[] = {
 /* 0x0370: memx_func_head */
        0x00000001,
        0x00000000,
-       0x00000551,
+       0x00000546,
 /* 0x037c: memx_func_next */
        0x00000002,
        0x00000000,
-       0x000005a8,
+       0x0000059d,
        0x00000003,
        0x00000002,
-       0x0000063a,
+       0x0000062f,
        0x00040004,
        0x00000000,
-       0x00000656,
+       0x0000064b,
        0x00010005,
        0x00000000,
-       0x00000673,
+       0x00000668,
        0x00010006,
        0x00000000,
-       0x000005f8,
+       0x000005ed,
        0x00000007,
        0x00000000,
-       0x0000067e,
+       0x00000673,
 /* 0x03c4: memx_func_tail */
 /* 0x03c4: memx_ts_start */
        0x00000000,
@@ -917,7 +917,7 @@ uint32_t gt215_pmu_data[] = {
 };
 
 uint32_t gt215_pmu_code[] = {
-       0x039e0ef5,
+       0x03930ef5,
 /* 0x0004: rd32 */
        0x07a007f1,
        0xd00604b6,
@@ -987,7 +987,7 @@ uint32_t gt215_pmu_code[] = {
        0xbb9a0a98,
        0x1cf4029a,
        0x01d7f00f,
-       0x02dd21f5,
+       0x02d221f5,
        0x0ef494bd,
 /* 0x00f9: intr_watchdog_next_time */
        0x9b0a9815,
@@ -1039,7 +1039,7 @@ uint32_t gt215_pmu_code[] = {
        0x48e7f1c0,
        0x53e3f14f,
        0x00d7f054,
-       0x034221f5,
+       0x033721f5,
        0x07f1c0fc,
        0x04b604c0,
        0x000cd006,
@@ -1048,820 +1048,818 @@ uint32_t gt215_pmu_code[] = {
        0x04b60688,
        0x0009d006,
 /* 0x01ca: intr_skip_subintr */
-       0x89c404bd,
-       0x070bf420,
-       0xffbfa4f1,
-/* 0x01d4: intr_skip_pause */
-       0xf44089c4,
-       0xa4f1070b,
-/* 0x01de: intr_skip_user0 */
-       0x07f0ffbf,
-       0x0604b604,
-       0xbd0008d0,
-       0xfe80fc04,
-       0xf0fc0088,
-       0xd0fce0fc,
-       0xb0fcc0fc,
-       0x90fca0fc,
-       0x00fc80fc,
-       0xf80032f4,
-/* 0x0205: ticks_from_ns */
-       0xf9c0f901,
-       0xcbd7f1b0,
-       0x00d3f000,
-       0x041321f5,
-       0x03e8ccec,
-       0xf400b4b0,
-       0xeeec120b,
-       0xd7f103e8,
-       0xd3f000cb,
-       0x1321f500,
-/* 0x022d: ticks_from_ns_quit */
-       0x02ceb904,
-       0xc0fcb0fc,
-/* 0x0236: ticks_from_us */
-       0xc0f900f8,
+       0x97f104bd,
+       0x90bd00e0,
+       0xf00489fd,
+       0x04b60407,
+       0x0008d006,
+       0x80fc04bd,
+       0xfc0088fe,
+       0xfce0fcf0,
+       0xfcc0fcd0,
+       0xfca0fcb0,
+       0xfc80fc90,
+       0x0032f400,
+/* 0x01fa: ticks_from_ns */
+       0xc0f901f8,
        0xd7f1b0f9,
        0xd3f000cb,
-       0x1321f500,
-       0x02ceb904,
-       0xf400b4b0,
-       0xe4bd050b,
-/* 0x0250: ticks_from_us_quit */
-       0xc0fcb0fc,
-/* 0x0256: ticks_to_us */
-       0xd7f100f8,
-       0xd3f000cb,
-       0xecedff00,
-/* 0x0262: timer */
-       0x90f900f8,
-       0x32f480f9,
-       0x03f89810,
-       0xf40086b0,
-       0x84bd651c,
-       0xb63807f0,
-       0x08d00604,
-       0xf004bd00,
-       0x84b63487,
-       0x0088cf06,
-       0xbb9a0998,
-       0xe9bb0298,
-       0x03fe8000,
-       0xb60887f0,
-       0x88cf0684,
-       0x0284f000,
-       0xf0261bf4,
-       0x84b63487,
-       0x0088cf06,
-       0xf406e0b8,
-       0xe8b8090b,
-       0x111cf406,
-/* 0x02b8: timer_reset */
-       0xb63407f0,
-       0x0ed00604,
-       0x8004bd00,
-/* 0x02c6: timer_enable */
-       0x87f09a0e,
-       0x3807f001,
+       0x0821f500,
+       0xe8ccec04,
+       0x00b4b003,
+       0xec120bf4,
+       0xf103e8ee,
+       0xf000cbd7,
+       0x21f500d3,
+/* 0x0222: ticks_from_ns_quit */
+       0xceb90408,
+       0xfcb0fc02,
+/* 0x022b: ticks_from_us */
+       0xf900f8c0,
+       0xf1b0f9c0,
+       0xf000cbd7,
+       0x21f500d3,
+       0xceb90408,
+       0x00b4b002,
+       0xbd050bf4,
+/* 0x0245: ticks_from_us_quit */
+       0xfcb0fce4,
+/* 0x024b: ticks_to_us */
+       0xf100f8c0,
+       0xf000cbd7,
+       0xedff00d3,
+/* 0x0257: timer */
+       0xf900f8ec,
+       0xf480f990,
+       0xf8981032,
+       0x0086b003,
+       0xbd651cf4,
+       0x3807f084,
        0xd00604b6,
        0x04bd0008,
-/* 0x02d4: timer_done */
-       0xfc1031f4,
-       0xf890fc80,
-/* 0x02dd: send_proc */
-       0xf980f900,
-       0x05e89890,
-       0xf004e998,
-       0x89b80486,
-       0x2a0bf406,
-       0x940398c4,
-       0x80b60488,
-       0x008ebb18,
-       0x8000fa98,
-       0x8d80008a,
-       0x028c8001,
-       0xb6038b80,
-       0x94f00190,
-       0x04e98007,
-/* 0x0317: send_done */
-       0xfc0231f4,
-       0xf880fc90,
-/* 0x031d: find */
-       0xf080f900,
-       0x31f45887,
-/* 0x0325: find_loop */
-       0x008a9801,
-       0xf406aeb8,
-       0x80b6100b,
-       0x6886b158,
-       0xf01bf402,
-/* 0x033b: find_done */
-       0xb90132f4,
-       0x80fc028e,
-/* 0x0342: send */
-       0x21f500f8,
-       0x01f4031d,
-/* 0x034b: recv */
-       0xf900f897,
-       0x9880f990,
-       0xe99805e8,
-       0x0132f404,
-       0xf40689b8,
-       0x89c43d0b,
-       0x0180b603,
-       0x800784f0,
-       0xea9805e8,
-       0xfef0f902,
-       0xf0f9018f,
-       0x9402efb9,
-       0xe9bb0499,
-       0x18e0b600,
-       0x9803eb98,
-       0xed9802ec,
-       0x00ee9801,
-       0xf0fca5f9,
-       0xf400f8fe,
-       0xf0fc0131,
-/* 0x0398: recv_done */
-       0x90fc80fc,
-/* 0x039e: init */
-       0x17f100f8,
-       0x14b60108,
-       0x0011cf06,
-       0x010911e7,
-       0xfe0814b6,
-       0x17f10014,
-       0x13f000e0,
-       0x1c07f000,
-       0xd00604b6,
-       0x04bd0001,
-       0xf0ff17f0,
-       0x04b61407,
-       0x0001d006,
-       0x17f004bd,
-       0x0015f102,
-       0x1007f008,
+       0xb63487f0,
+       0x88cf0684,
+       0x9a099800,
+       0xbb0298bb,
+       0xfe8000e9,
+       0x0887f003,
+       0xcf0684b6,
+       0x84f00088,
+       0x261bf402,
+       0xb63487f0,
+       0x88cf0684,
+       0x06e0b800,
+       0xb8090bf4,
+       0x1cf406e8,
+/* 0x02ad: timer_reset */
+       0x3407f011,
        0xd00604b6,
-       0x04bd0001,
-       0x011a17f1,
-       0xfe0013f0,
-       0x31f40010,
-       0x0117f010,
-       0xb63807f0,
+       0x04bd000e,
+/* 0x02bb: timer_enable */
+       0xf09a0e80,
+       0x07f00187,
+       0x0604b638,
+       0xbd0008d0,
+/* 0x02c9: timer_done */
+       0x1031f404,
+       0x90fc80fc,
+/* 0x02d2: send_proc */
+       0x80f900f8,
+       0xe89890f9,
+       0x04e99805,
+       0xb80486f0,
+       0x0bf40689,
+       0x0398c42a,
+       0xb6048894,
+       0x8ebb1880,
+       0x00fa9800,
+       0x80008a80,
+       0x8c80018d,
+       0x038b8002,
+       0xf00190b6,
+       0xe9800794,
+       0x0231f404,
+/* 0x030c: send_done */
+       0x80fc90fc,
+/* 0x0312: find */
+       0x80f900f8,
+       0xf45887f0,
+/* 0x031a: find_loop */
+       0x8a980131,
+       0x06aeb800,
+       0xb6100bf4,
+       0x86b15880,
+       0x1bf40268,
+       0x0132f4f0,
+/* 0x0330: find_done */
+       0xfc028eb9,
+/* 0x0337: send */
+       0xf500f880,
+       0xf4031221,
+       0x00f89701,
+/* 0x0340: recv */
+       0x80f990f9,
+       0x9805e898,
+       0x32f404e9,
+       0x0689b801,
+       0xc43d0bf4,
+       0x80b60389,
+       0x0784f001,
+       0x9805e880,
+       0xf0f902ea,
+       0xf9018ffe,
+       0x02efb9f0,
+       0xbb049994,
+       0xe0b600e9,
+       0x03eb9818,
+       0x9802ec98,
+       0xee9801ed,
+       0xfca5f900,
+       0x00f8fef0,
+       0xfc0131f4,
+/* 0x038d: recv_done */
+       0xfc80fcf0,
+/* 0x0393: init */
+       0xf100f890,
+       0xb6010817,
+       0x11cf0614,
+       0x0911e700,
+       0x0814b601,
+       0xf10014fe,
+       0xf000e017,
+       0x07f00013,
+       0x0604b61c,
+       0xbd0001d0,
+       0xff17f004,
+       0xb61407f0,
        0x01d00604,
        0xf004bd00,
-/* 0x0402: init_proc */
-       0xf19858f7,
-       0x0016b001,
-       0xf9fa0bf4,
-       0x58f0b615,
-/* 0x0413: mulu32_32_64 */
-       0xf9f20ef4,
-       0xf920f910,
-       0x9540f930,
-       0xd29510e1,
-       0xbdc4bd10,
-       0xc0edffb4,
-       0xb9301dff,
-       0x34f10234,
-       0x34b6ffff,
-       0x1045b610,
-       0xbb00c3bb,
-       0xe2ff01b4,
-       0x0234b930,
-       0xffff34f1,
-       0xb61034b6,
-       0xc3bb1045,
-       0x01b4bb00,
-       0xbb3012ff,
-       0x40fc00b3,
-       0x20fc30fc,
-       0x00f810fc,
-/* 0x0464: host_send */
-       0x04b017f1,
-       0xcf0614b6,
-       0x27f10011,
-       0x24b604a0,
-       0x0022cf06,
-       0xf40612b8,
-       0x1ec4320b,
-       0x04ee9407,
-       0x0270e0b7,
-       0x9803eb98,
-       0xed9802ec,
-       0x00ee9801,
-       0x034221f5,
-       0xc40110b6,
-       0x07f10f1e,
-       0x04b604b0,
-       0x000ed006,
-       0x0ef404bd,
-/* 0x04ad: host_send_done */
-/* 0x04af: host_recv */
-       0xf100f8ba,
-       0xf14e4917,
-       0xb8525413,
-       0x0bf406e1,
-/* 0x04bd: host_recv_wait */
-       0xcc17f1aa,
+       0x15f10217,
+       0x07f00800,
+       0x0604b610,
+       0xbd0001d0,
+       0x1a17f104,
+       0x0013f001,
+       0xf40010fe,
+       0x17f01031,
+       0x3807f001,
+       0xd00604b6,
+       0x04bd0001,
+/* 0x03f7: init_proc */
+       0x9858f7f0,
+       0x16b001f1,
+       0xfa0bf400,
+       0xf0b615f9,
+       0xf20ef458,
+/* 0x0408: mulu32_32_64 */
+       0x20f910f9,
+       0x40f930f9,
+       0x9510e195,
+       0xc4bd10d2,
+       0xedffb4bd,
+       0x301dffc0,
+       0xf10234b9,
+       0xb6ffff34,
+       0x45b61034,
+       0x00c3bb10,
+       0xff01b4bb,
+       0x34b930e2,
+       0xff34f102,
+       0x1034b6ff,
+       0xbb1045b6,
+       0xb4bb00c3,
+       0x3012ff01,
+       0xfc00b3bb,
+       0xfc30fc40,
+       0xf810fc20,
+/* 0x0459: host_send */
+       0xb017f100,
        0x0614b604,
        0xf10011cf,
-       0xb604c827,
+       0xb604a027,
        0x22cf0624,
-       0x0816f000,
-       0xf40612b8,
-       0x23c4e60b,
-       0x0434b607,
-       0x02f030b7,
-       0x80033b80,
-       0x3d80023c,
-       0x003e8001,
-       0xf00120b6,
-       0x07f10f24,
-       0x04b604c8,
-       0x0002d006,
-       0x27f004bd,
-       0x0007f040,
-       0xd00604b6,
-       0x04bd0002,
-/* 0x0512: host_init */
-       0x17f100f8,
+       0x0612b800,
+       0xc4320bf4,
+       0xee94071e,
+       0x70e0b704,
+       0x03eb9802,
+       0x9802ec98,
+       0xee9801ed,
+       0x3721f500,
+       0x0110b603,
+       0xf10f1ec4,
+       0xb604b007,
+       0x0ed00604,
+       0xf404bd00,
+/* 0x04a2: host_send_done */
+       0x00f8ba0e,
+/* 0x04a4: host_recv */
+       0x4e4917f1,
+       0x525413f1,
+       0xf406e1b8,
+/* 0x04b2: host_recv_wait */
+       0x17f1aa0b,
+       0x14b604cc,
+       0x0011cf06,
+       0x04c827f1,
+       0xcf0624b6,
+       0x16f00022,
+       0x0612b808,
+       0xc4e60bf4,
+       0x34b60723,
+       0xf030b704,
+       0x033b8002,
+       0x80023c80,
+       0x3e80013d,
+       0x0120b600,
+       0xf10f24f0,
+       0xb604c807,
+       0x02d00604,
+       0xf004bd00,
+       0x07f04027,
+       0x0604b600,
+       0xbd0002d0,
+/* 0x0507: host_init */
+       0xf100f804,
+       0xb6008017,
+       0x15f11014,
+       0x07f10270,
+       0x04b604d0,
+       0x0001d006,
+       0x17f104bd,
        0x14b60080,
-       0x7015f110,
-       0xd007f102,
+       0xf015f110,
+       0xdc07f102,
        0x0604b604,
        0xbd0001d0,
-       0x8017f104,
-       0x1014b600,
-       0x02f015f1,
-       0x04dc07f1,
+       0x0117f004,
+       0x04c407f1,
        0xd00604b6,
        0x04bd0001,
-       0xf10117f0,
-       0xb604c407,
-       0x01d00604,
-       0xf804bd00,
-/* 0x0551: memx_func_enter */
-       0x1087f100,
-       0x028eb916,
-       0xb90421f4,
-       0x67f102d7,
-       0x63f1fffc,
-       0x76fdffff,
-       0x0267f104,
-       0x0576fd00,
-       0x70f980f9,
-       0xe0fcd0fc,
-       0xf03f21f4,
-       0x07f10467,
-       0x04b607e0,
-       0x0006d006,
-/* 0x058a: memx_func_enter_wait */
-       0x67f104bd,
-       0x64b607c0,
-       0x0066cf06,
-       0xf40464f0,
-       0x67f0f30b,
-       0x0664b62c,
-       0x800066cf,
-       0x00f8f106,
-/* 0x05a8: memx_func_leave */
-       0xb62c67f0,
-       0x66cf0664,
-       0xf2068000,
+/* 0x0546: memx_func_enter */
+       0x87f100f8,
+       0x8eb91610,
+       0x0421f402,
+       0xf102d7b9,
+       0xf1fffc67,
+       0xfdffff63,
+       0x67f10476,
+       0x76fd0002,
+       0xf980f905,
+       0xfcd0fc70,
+       0x3f21f4e0,
        0xf10467f0,
-       0xb607e407,
+       0xb607e007,
        0x06d00604,
-/* 0x05c3: memx_func_leave_wait */
+/* 0x057f: memx_func_enter_wait */
        0xf104bd00,
        0xb607c067,
        0x66cf0664,
        0x0464f000,
-       0xf1f31bf4,
-       0xb9161087,
-       0x21f4028e,
-       0x02d7b904,
-       0xffcc67f1,
-       0xffff63f1,
-       0xf90476fd,
-       0xfc70f980,
-       0xf4e0fcd0,
-       0x00f83f21,
-/* 0x05f8: memx_func_wait_vblank */
-       0xb0001698,
-       0x0bf40066,
-       0x0166b013,
-       0xf4060bf4,
-/* 0x060a: memx_func_wait_vblank_head1 */
-       0x77f12e0e,
-       0x0ef40020,
-/* 0x0611: memx_func_wait_vblank_head0 */
-       0x0877f107,
-/* 0x0615: memx_func_wait_vblank_0 */
-       0xc467f100,
-       0x0664b607,
-       0xfd0066cf,
-       0x1bf40467,
-/* 0x0625: memx_func_wait_vblank_1 */
-       0xc467f1f3,
-       0x0664b607,
-       0xfd0066cf,
-       0x0bf40467,
-/* 0x0635: memx_func_wait_vblank_fini */
-       0x0410b6f3,
-/* 0x063a: memx_func_wr32 */
-       0x169800f8,
-       0x01159800,
-       0xf90810b6,
-       0xfc50f960,
-       0xf4e0fcd0,
-       0x42b63f21,
-       0xe91bf402,
-/* 0x0656: memx_func_wait */
-       0x87f000f8,
-       0x0684b62c,
-       0x980088cf,
-       0x1d98001e,
-       0x021c9801,
-       0xb6031b98,
-       0x21f41010,
-/* 0x0673: memx_func_delay */
-       0x9800f8a4,
-       0x10b6001e,
-       0x7f21f404,
-/* 0x067e: memx_func_train */
-       0x57f100f8,
-       0x77f10003,
-       0x97f10000,
-       0x93f00000,
-       0x029eb970,
-       0xb90421f4,
-       0xe7f102d8,
-       0x21f42710,
-/* 0x069d: memx_func_train_loop_outer */
-       0x0158e07f,
-       0x0083f101,
-       0xe097f102,
-       0x1193f011,
-       0x80f990f9,
+       0xf0f30bf4,
+       0x64b62c67,
+       0x0066cf06,
+       0xf8f10680,
+/* 0x059d: memx_func_leave */
+       0x2c67f000,
+       0xcf0664b6,
+       0x06800066,
+       0x0467f0f2,
+       0x07e407f1,
+       0xd00604b6,
+       0x04bd0006,
+/* 0x05b8: memx_func_leave_wait */
+       0x07c067f1,
+       0xcf0664b6,
+       0x64f00066,
+       0xf31bf404,
+       0x161087f1,
+       0xf4028eb9,
+       0xd7b90421,
+       0xcc67f102,
+       0xff63f1ff,
+       0x0476fdff,
+       0x70f980f9,
        0xe0fcd0fc,
-       0xf93f21f4,
-       0x0067f150,
-/* 0x06bd: memx_func_train_loop_inner */
-       0x1187f100,
-       0x9068ff11,
-       0xfd109894,
-       0x97f10589,
-       0x93f00720,
-       0xf990f910,
-       0xfcd0fc80,
-       0x3f21f4e0,
-       0x008097f1,
-       0xb91093f0,
-       0x21f4029e,
-       0x02d8b904,
-       0xf92088c5,
-       0xfc80f990,
-       0xf4e0fcd0,
-       0x97f13f21,
-       0x93f0053c,
-       0x0287f110,
-       0x0083f130,
-       0xf990f980,
-       0xfcd0fc80,
-       0x3f21f4e0,
-       0x0560e7f1,
-       0xf110e3f0,
-       0xf10000d7,
-       0x908000d3,
-       0xb7f100dc,
-       0xb3f08480,
-       0xa421f41e,
-       0x000057f1,
-       0xffff97f1,
-       0x830093f1,
-/* 0x073c: memx_func_train_loop_4x */
-       0x0080a7f1,
-       0xb910a3f0,
-       0x21f402ae,
-       0x02d8b904,
-       0xffdfb7f1,
-       0xffffb3f1,
-       0xf9048bfd,
-       0xfc80f9a0,
-       0xf4e0fcd0,
-       0xa7f13f21,
-       0xa3f0053c,
-       0x0287f110,
-       0x0083f130,
-       0xf9a0f980,
+       0xf83f21f4,
+/* 0x05ed: memx_func_wait_vblank */
+       0x00169800,
+       0xf40066b0,
+       0x66b0130b,
+       0x060bf401,
+/* 0x05ff: memx_func_wait_vblank_head1 */
+       0xf12e0ef4,
+       0xf4002077,
+/* 0x0606: memx_func_wait_vblank_head0 */
+       0x77f1070e,
+/* 0x060a: memx_func_wait_vblank_0 */
+       0x67f10008,
+       0x64b607c4,
+       0x0066cf06,
+       0xf40467fd,
+/* 0x061a: memx_func_wait_vblank_1 */
+       0x67f1f31b,
+       0x64b607c4,
+       0x0066cf06,
+       0xf40467fd,
+/* 0x062a: memx_func_wait_vblank_fini */
+       0x10b6f30b,
+/* 0x062f: memx_func_wr32 */
+       0x9800f804,
+       0x15980016,
+       0x0810b601,
+       0x50f960f9,
+       0xe0fcd0fc,
+       0xb63f21f4,
+       0x1bf40242,
+/* 0x064b: memx_func_wait */
+       0xf000f8e9,
+       0x84b62c87,
+       0x0088cf06,
+       0x98001e98,
+       0x1c98011d,
+       0x031b9802,
+       0xf41010b6,
+       0x00f8a421,
+/* 0x0668: memx_func_delay */
+       0xb6001e98,
+       0x21f40410,
+/* 0x0673: memx_func_train */
+       0xf100f87f,
+       0xf1000357,
+       0xf1000077,
+       0xf0000097,
+       0x9eb97093,
+       0x0421f402,
+       0xf102d8b9,
+       0xf42710e7,
+/* 0x0692: memx_func_train_loop_outer */
+       0x58e07f21,
+       0x83f10101,
+       0x97f10200,
+       0x93f011e0,
+       0xf990f911,
        0xfcd0fc80,
        0x3f21f4e0,
-       0x0560e7f1,
-       0xf110e3f0,
-       0xf10000d7,
-       0xb98000d3,
-       0xb7f102dc,
-       0xb3f02710,
-       0xa421f400,
-       0xf402eeb9,
-       0xddb90421,
-       0x949dff02,
+       0x67f150f9,
+/* 0x06b2: memx_func_train_loop_inner */
+       0x87f10000,
+       0x68ff1111,
+       0x10989490,
+       0xf10589fd,
+       0xf0072097,
+       0x90f91093,
+       0xd0fc80f9,
+       0x21f4e0fc,
+       0x8097f13f,
+       0x1093f000,
+       0xf4029eb9,
+       0xd8b90421,
+       0x2088c502,
+       0x80f990f9,
+       0xe0fcd0fc,
+       0xf13f21f4,
+       0xf0053c97,
+       0x87f11093,
+       0x83f13002,
+       0x90f98000,
+       0xd0fc80f9,
+       0x21f4e0fc,
+       0x60e7f13f,
+       0x10e3f005,
+       0x0000d7f1,
+       0x8000d3f1,
+       0xf100dc90,
+       0xf08480b7,
+       0x21f41eb3,
+       0x0057f1a4,
+       0xff97f100,
+       0x0093f1ff,
+/* 0x0731: memx_func_train_loop_4x */
+       0x80a7f183,
+       0x10a3f000,
+       0xf402aeb9,
+       0xd8b90421,
+       0xdfb7f102,
+       0xffb3f1ff,
+       0x048bfdff,
+       0x80f9a0f9,
+       0xe0fcd0fc,
+       0xf13f21f4,
+       0xf0053ca7,
+       0x87f110a3,
+       0x83f13002,
+       0xa0f98000,
+       0xd0fc80f9,
+       0x21f4e0fc,
+       0x60e7f13f,
+       0x10e3f005,
+       0x0000d7f1,
+       0x8000d3f1,
+       0xf102dcb9,
+       0xf02710b7,
+       0x21f400b3,
+       0x02eeb9a4,
+       0xb90421f4,
+       0x9dff02dd,
+       0x0150b694,
+       0xf4045670,
+       0x7aa0921e,
+       0xa9800bcc,
+       0x0160b600,
+       0x700470b6,
+       0x1ef51066,
+       0x50fcff00,
        0x700150b6,
-       0x1ef40456,
-       0xcc7aa092,
-       0x00a9800b,
-       0xb60160b6,
-       0x66700470,
-       0x001ef510,
-       0xb650fcff,
-       0x56700150,
-       0xd41ef507,
-/* 0x07cf: memx_exec */
-       0xf900f8fe,
-       0xb9d0f9e0,
-       0xb2b902c1,
-/* 0x07d9: memx_exec_next */
-       0x00139802,
-       0xe70410b6,
-       0xe701f034,
-       0xb601e033,
-       0x30f00132,
-       0xde35980c,
-       0x12b855f9,
-       0xe41ef406,
-       0x98f10b98,
-       0xcbbbf20c,
-       0xc4b7f102,
-       0x06b4b607,
-       0xfc00bbcf,
-       0xf5e0fcd0,
-       0xf8034221,
-/* 0x0815: memx_info */
-       0x01c67000,
-/* 0x081b: memx_info_data */
-       0xf10e0bf4,
-       0xf103ccc7,
-       0xf40800b7,
-/* 0x0826: memx_info_train */
-       0xc7f10b0e,
-       0xb7f10bcc,
-/* 0x082e: memx_info_send */
-       0x21f50100,
-       0x00f80342,
-/* 0x0834: memx_recv */
-       0xf401d6b0,
-       0xd6b0980b,
-       0xd80bf400,
-/* 0x0842: memx_init */
-       0x00f800f8,
-/* 0x0844: perf_recv */
-/* 0x0846: perf_init */
-       0x00f800f8,
-/* 0x0848: i2c_drive_scl */
-       0xf40036b0,
-       0x07f1110b,
-       0x04b607e0,
-       0x0001d006,
-       0x00f804bd,
-/* 0x085c: i2c_drive_scl_lo */
-       0x07e407f1,
-       0xd00604b6,
-       0x04bd0001,
-/* 0x086a: i2c_drive_sda */
-       0x36b000f8,
-       0x110bf400,
-       0x07e007f1,
-       0xd00604b6,
-       0x04bd0002,
-/* 0x087e: i2c_drive_sda_lo */
-       0x07f100f8,
-       0x04b607e4,
-       0x0002d006,
-       0x00f804bd,
-/* 0x088c: i2c_sense_scl */
-       0xf10132f4,
-       0xb607c437,
-       0x33cf0634,
-       0x0431fd00,
-       0xf4060bf4,
-/* 0x08a2: i2c_sense_scl_done */
-       0x00f80131,
-/* 0x08a4: i2c_sense_sda */
-       0xf10132f4,
-       0xb607c437,
-       0x33cf0634,
-       0x0432fd00,
-       0xf4060bf4,
-/* 0x08ba: i2c_sense_sda_done */
-       0x00f80131,
-/* 0x08bc: i2c_raise_scl */
-       0x47f140f9,
-       0x37f00898,
-       0x4821f501,
-/* 0x08c9: i2c_raise_scl_wait */
+       0x1ef50756,
+       0x00f8fed4,
+/* 0x07c4: memx_exec */
+       0xd0f9e0f9,
+       0xb902c1b9,
+/* 0x07ce: memx_exec_next */
+       0x139802b2,
+       0x0410b600,
+       0x01f034e7,
+       0x01e033e7,
+       0xf00132b6,
+       0x35980c30,
+       0xb855f9de,
+       0x1ef40612,
+       0xf10b98e4,
+       0xbbf20c98,
+       0xb7f102cb,
+       0xb4b607c4,
+       0x00bbcf06,
+       0xe0fcd0fc,
+       0x033721f5,
+/* 0x080a: memx_info */
+       0xc67000f8,
+       0x0e0bf401,
+/* 0x0810: memx_info_data */
+       0x03ccc7f1,
+       0x0800b7f1,
+/* 0x081b: memx_info_train */
+       0xf10b0ef4,
+       0xf10bccc7,
+/* 0x0823: memx_info_send */
+       0xf50100b7,
+       0xf8033721,
+/* 0x0829: memx_recv */
+       0x01d6b000,
+       0xb0980bf4,
+       0x0bf400d6,
+/* 0x0837: memx_init */
+       0xf800f8d8,
+/* 0x0839: perf_recv */
+/* 0x083b: perf_init */
+       0xf800f800,
+/* 0x083d: i2c_drive_scl */
+       0x0036b000,
+       0xf1110bf4,
+       0xb607e007,
+       0x01d00604,
+       0xf804bd00,
+/* 0x0851: i2c_drive_scl_lo */
+       0xe407f100,
+       0x0604b607,
+       0xbd0001d0,
+/* 0x085f: i2c_drive_sda */
+       0xb000f804,
+       0x0bf40036,
+       0xe007f111,
+       0x0604b607,
+       0xbd0002d0,
+/* 0x0873: i2c_drive_sda_lo */
+       0xf100f804,
+       0xb607e407,
+       0x02d00604,
+       0xf804bd00,
+/* 0x0881: i2c_sense_scl */
+       0x0132f400,
+       0x07c437f1,
+       0xcf0634b6,
+       0x31fd0033,
+       0x060bf404,
+/* 0x0897: i2c_sense_scl_done */
+       0xf80131f4,
+/* 0x0899: i2c_sense_sda */
+       0x0132f400,
+       0x07c437f1,
+       0xcf0634b6,
+       0x32fd0033,
+       0x060bf404,
+/* 0x08af: i2c_sense_sda_done */
+       0xf80131f4,
+/* 0x08b1: i2c_raise_scl */
+       0xf140f900,
+       0xf0089847,
+       0x21f50137,
+/* 0x08be: i2c_raise_scl_wait */
+       0xe7f1083d,
+       0x21f403e8,
+       0x8121f57f,
+       0x0901f408,
+       0xf40142b6,
+/* 0x08d2: i2c_raise_scl_done */
+       0x40fcef1b,
+/* 0x08d6: i2c_start */
+       0x21f500f8,
+       0x11f40881,
+       0x9921f50d,
+       0x0611f408,
+/* 0x08e7: i2c_start_rep */
+       0xf0300ef4,
+       0x21f50037,
+       0x37f0083d,
+       0x5f21f501,
+       0x0076bb08,
+       0xf90465b6,
+       0x04659450,
+       0xbd0256bb,
+       0x0475fd50,
+       0x21f550fc,
+       0x64b608b1,
+       0x1f11f404,
+/* 0x0914: i2c_start_send */
+       0xf50037f0,
+       0xf1085f21,
+       0xf41388e7,
+       0x37f07f21,
+       0x3d21f500,
+       0x88e7f108,
+       0x7f21f413,
+/* 0x0930: i2c_start_out */
+/* 0x0932: i2c_stop */
+       0x37f000f8,
+       0x3d21f500,
+       0x0037f008,
+       0x085f21f5,
+       0x03e8e7f1,
+       0xf07f21f4,
+       0x21f50137,
+       0xe7f1083d,
+       0x21f41388,
+       0x0137f07f,
+       0x085f21f5,
+       0x1388e7f1,
+       0xf87f21f4,
+/* 0x0965: i2c_bitw */
+       0x5f21f500,
        0xe8e7f108,
        0x7f21f403,
-       0x088c21f5,
-       0xb60901f4,
-       0x1bf40142,
-/* 0x08dd: i2c_raise_scl_done */
-       0xf840fcef,
-/* 0x08e1: i2c_start */
-       0x8c21f500,
-       0x0d11f408,
-       0x08a421f5,
-       0xf40611f4,
-/* 0x08f2: i2c_start_rep */
-       0x37f0300e,
-       0x4821f500,
-       0x0137f008,
-       0x086a21f5,
        0xb60076bb,
        0x50f90465,
        0xbb046594,
        0x50bd0256,
        0xfc0475fd,
-       0xbc21f550,
+       0xb121f550,
        0x0464b608,
-/* 0x091f: i2c_start_send */
-       0xf01f11f4,
-       0x21f50037,
-       0xe7f1086a,
-       0x21f41388,
-       0x0037f07f,
-       0x084821f5,
-       0x1388e7f1,
-/* 0x093b: i2c_start_out */
-       0xf87f21f4,
-/* 0x093d: i2c_stop */
-       0x0037f000,
-       0x084821f5,
-       0xf50037f0,
-       0xf1086a21,
-       0xf403e8e7,
+       0xf11811f4,
+       0xf41388e7,
        0x37f07f21,
-       0x4821f501,
+       0x3d21f500,
        0x88e7f108,
        0x7f21f413,
-       0xf50137f0,
-       0xf1086a21,
-       0xf41388e7,
-       0x00f87f21,
-/* 0x0970: i2c_bitw */
-       0x086a21f5,
-       0x03e8e7f1,
-       0xbb7f21f4,
-       0x65b60076,
-       0x9450f904,
-       0x56bb0465,
-       0xfd50bd02,
-       0x50fc0475,
-       0x08bc21f5,
-       0xf40464b6,
-       0xe7f11811,
+/* 0x09a4: i2c_bitw_out */
+/* 0x09a6: i2c_bitr */
+       0x37f000f8,
+       0x5f21f501,
+       0xe8e7f108,
+       0x7f21f403,
+       0xb60076bb,
+       0x50f90465,
+       0xbb046594,
+       0x50bd0256,
+       0xfc0475fd,
+       0xb121f550,
+       0x0464b608,
+       0xf51b11f4,
+       0xf0089921,
+       0x21f50037,
+       0xe7f1083d,
        0x21f41388,
-       0x0037f07f,
-       0x084821f5,
-       0x1388e7f1,
-/* 0x09af: i2c_bitw_out */
-       0xf87f21f4,
-/* 0x09b1: i2c_bitr */
-       0x0137f000,
-       0x086a21f5,
-       0x03e8e7f1,
-       0xbb7f21f4,
-       0x65b60076,
-       0x9450f904,
-       0x56bb0465,
-       0xfd50bd02,
-       0x50fc0475,
-       0x08bc21f5,
-       0xf40464b6,
-       0x21f51b11,
-       0x37f008a4,
-       0x4821f500,
-       0x88e7f108,
-       0x7f21f413,
-       0xf4013cf0,
-/* 0x09f6: i2c_bitr_done */
-       0x00f80131,
-/* 0x09f8: i2c_get_byte */
-       0xf00057f0,
-/* 0x09fe: i2c_get_byte_next */
-       0x54b60847,
+       0x013cf07f,
+/* 0x09eb: i2c_bitr_done */
+       0xf80131f4,
+/* 0x09ed: i2c_get_byte */
+       0x0057f000,
+/* 0x09f3: i2c_get_byte_next */
+       0xb60847f0,
+       0x76bb0154,
+       0x0465b600,
+       0x659450f9,
+       0x0256bb04,
+       0x75fd50bd,
+       0xf550fc04,
+       0xb609a621,
+       0x11f40464,
+       0x0553fd2b,
+       0xf40142b6,
+       0x37f0d81b,
        0x0076bb01,
        0xf90465b6,
        0x04659450,
        0xbd0256bb,
        0x0475fd50,
        0x21f550fc,
-       0x64b609b1,
-       0x2b11f404,
-       0xb60553fd,
-       0x1bf40142,
-       0x0137f0d8,
-       0xb60076bb,
-       0x50f90465,
-       0xbb046594,
-       0x50bd0256,
-       0xfc0475fd,
-       0x7021f550,
-       0x0464b609,
-/* 0x0a48: i2c_get_byte_done */
-/* 0x0a4a: i2c_put_byte */
-       0x47f000f8,
-/* 0x0a4d: i2c_put_byte_next */
-       0x0142b608,
-       0xbb3854ff,
-       0x65b60076,
-       0x9450f904,
-       0x56bb0465,
-       0xfd50bd02,
-       0x50fc0475,
-       0x097021f5,
-       0xf40464b6,
-       0x46b03411,
-       0xd81bf400,
+       0x64b60965,
+/* 0x0a3d: i2c_get_byte_done */
+/* 0x0a3f: i2c_put_byte */
+       0xf000f804,
+/* 0x0a42: i2c_put_byte_next */
+       0x42b60847,
+       0x3854ff01,
        0xb60076bb,
        0x50f90465,
        0xbb046594,
        0x50bd0256,
        0xfc0475fd,
-       0xb121f550,
+       0x6521f550,
        0x0464b609,
-       0xbb0f11f4,
-       0x36b00076,
-       0x061bf401,
-/* 0x0aa3: i2c_put_byte_done */
-       0xf80132f4,
-/* 0x0aa5: i2c_addr */
-       0x0076bb00,
+       0xb03411f4,
+       0x1bf40046,
+       0x0076bbd8,
        0xf90465b6,
        0x04659450,
        0xbd0256bb,
        0x0475fd50,
        0x21f550fc,
-       0x64b608e1,
-       0x2911f404,
-       0x012ec3e7,
-       0xfd0134b6,
-       0x76bb0553,
+       0x64b609a6,
+       0x0f11f404,
+       0xb00076bb,
+       0x1bf40136,
+       0x0132f406,
+/* 0x0a98: i2c_put_byte_done */
+/* 0x0a9a: i2c_addr */
+       0x76bb00f8,
        0x0465b600,
        0x659450f9,
        0x0256bb04,
        0x75fd50bd,
        0xf550fc04,
-       0xb60a4a21,
-/* 0x0aea: i2c_addr_done */
-       0x00f80464,
-/* 0x0aec: i2c_acquire_addr */
-       0xb6f8cec7,
-       0xe0b702e4,
-       0xee980d1c,
-/* 0x0afb: i2c_acquire */
-       0xf500f800,
-       0xf40aec21,
-       0xd9f00421,
-       0x3f21f403,
-/* 0x0b0a: i2c_release */
-       0x21f500f8,
-       0x21f40aec,
-       0x03daf004,
-       0xf83f21f4,
-/* 0x0b19: i2c_recv */
-       0x0132f400,
-       0xb6f8c1c7,
-       0x16b00214,
-       0x3a1ff528,
-       0xf413a001,
-       0x0032980c,
-       0x0ccc13a0,
-       0xf4003198,
-       0xd0f90231,
-       0xd0f9e0f9,
-       0x000067f1,
-       0x100063f1,
-       0xbb016792,
+       0xb608d621,
+       0x11f40464,
+       0x2ec3e729,
+       0x0134b601,
+       0xbb0553fd,
        0x65b60076,
        0x9450f904,
        0x56bb0465,
        0xfd50bd02,
        0x50fc0475,
-       0x0afb21f5,
-       0xfc0464b6,
-       0x00d6b0d0,
-       0x00b31bf5,
-       0xbb0057f0,
+       0x0a3f21f5,
+/* 0x0adf: i2c_addr_done */
+       0xf80464b6,
+/* 0x0ae1: i2c_acquire_addr */
+       0xf8cec700,
+       0xb702e4b6,
+       0x980d1ce0,
+       0x00f800ee,
+/* 0x0af0: i2c_acquire */
+       0x0ae121f5,
+       0xf00421f4,
+       0x21f403d9,
+/* 0x0aff: i2c_release */
+       0xf500f83f,
+       0xf40ae121,
+       0xdaf00421,
+       0x3f21f403,
+/* 0x0b0e: i2c_recv */
+       0x32f400f8,
+       0xf8c1c701,
+       0xb00214b6,
+       0x1ff52816,
+       0x13a0013a,
+       0x32980cf4,
+       0xcc13a000,
+       0x0031980c,
+       0xf90231f4,
+       0xf9e0f9d0,
+       0x0067f1d0,
+       0x0063f100,
+       0x01679210,
+       0xb60076bb,
+       0x50f90465,
+       0xbb046594,
+       0x50bd0256,
+       0xfc0475fd,
+       0xf021f550,
+       0x0464b60a,
+       0xd6b0d0fc,
+       0xb31bf500,
+       0x0057f000,
+       0xb60076bb,
+       0x50f90465,
+       0xbb046594,
+       0x50bd0256,
+       0xfc0475fd,
+       0x9a21f550,
+       0x0464b60a,
+       0x00d011f5,
+       0xbbe0c5c7,
        0x65b60076,
        0x9450f904,
        0x56bb0465,
        0xfd50bd02,
        0x50fc0475,
-       0x0aa521f5,
+       0x0a3f21f5,
        0xf50464b6,
-       0xc700d011,
-       0x76bbe0c5,
+       0xf000ad11,
+       0x76bb0157,
        0x0465b600,
        0x659450f9,
        0x0256bb04,
        0x75fd50bd,
        0xf550fc04,
-       0xb60a4a21,
+       0xb60a9a21,
        0x11f50464,
-       0x57f000ad,
-       0x0076bb01,
-       0xf90465b6,
-       0x04659450,
-       0xbd0256bb,
-       0x0475fd50,
-       0x21f550fc,
-       0x64b60aa5,
-       0x8a11f504,
-       0x0076bb00,
-       0xf90465b6,
-       0x04659450,
-       0xbd0256bb,
-       0x0475fd50,
-       0x21f550fc,
-       0x64b609f8,
-       0x6a11f404,
-       0xbbe05bcb,
-       0x65b60076,
-       0x9450f904,
-       0x56bb0465,
-       0xfd50bd02,
-       0x50fc0475,
-       0x093d21f5,
-       0xb90464b6,
-       0x74bd025b,
-/* 0x0c1f: i2c_recv_not_rd08 */
-       0xb0430ef4,
-       0x1bf401d6,
-       0x0057f03d,
-       0x0aa521f5,
-       0xc73311f4,
-       0x21f5e0c5,
-       0x11f40a4a,
-       0x0057f029,
-       0x0aa521f5,
-       0xc71f11f4,
-       0x21f5e0b5,
-       0x11f40a4a,
-       0x3d21f515,
-       0xc774bd09,
-       0x1bf408c5,
-       0x0232f409,
-/* 0x0c5f: i2c_recv_not_wr08 */
-/* 0x0c5f: i2c_recv_done */
-       0xc7030ef4,
-       0x21f5f8ce,
-       0xe0fc0b0a,
-       0x12f4d0fc,
-       0x027cb90a,
-       0x034221f5,
-/* 0x0c74: i2c_recv_exit */
-/* 0x0c76: i2c_init */
+       0x76bb008a,
+       0x0465b600,
+       0x659450f9,
+       0x0256bb04,
+       0x75fd50bd,
+       0xf550fc04,
+       0xb609ed21,
+       0x11f40464,
+       0xe05bcb6a,
+       0xb60076bb,
+       0x50f90465,
+       0xbb046594,
+       0x50bd0256,
+       0xfc0475fd,
+       0x3221f550,
+       0x0464b609,
+       0xbd025bb9,
+       0x430ef474,
+/* 0x0c14: i2c_recv_not_rd08 */
+       0xf401d6b0,
+       0x57f03d1b,
+       0x9a21f500,
+       0x3311f40a,
+       0xf5e0c5c7,
+       0xf40a3f21,
+       0x57f02911,
+       0x9a21f500,
+       0x1f11f40a,
+       0xf5e0b5c7,
+       0xf40a3f21,
+       0x21f51511,
+       0x74bd0932,
+       0xf408c5c7,
+       0x32f4091b,
+       0x030ef402,
+/* 0x0c54: i2c_recv_not_wr08 */
+/* 0x0c54: i2c_recv_done */
+       0xf5f8cec7,
+       0xfc0aff21,
+       0xf4d0fce0,
+       0x7cb90a12,
+       0x3721f502,
+/* 0x0c69: i2c_recv_exit */
+/* 0x0c6b: i2c_init */
+       0xf800f803,
+/* 0x0c6d: test_recv */
+       0xd817f100,
+       0x0614b605,
+       0xb60011cf,
+       0x07f10110,
+       0x04b605d8,
+       0x0001d006,
+       0xe7f104bd,
+       0xe3f1d900,
+       0x21f5134f,
+       0x00f80257,
+/* 0x0c94: test_init */
+       0x0800e7f1,
+       0x025721f5,
+/* 0x0c9e: idle_recv */
        0x00f800f8,
-/* 0x0c78: test_recv */
-       0x05d817f1,
-       0xcf0614b6,
-       0x10b60011,
-       0xd807f101,
-       0x0604b605,
-       0xbd0001d0,
-       0x00e7f104,
-       0x4fe3f1d9,
-       0x6221f513,
-/* 0x0c9f: test_init */
-       0xf100f802,
-       0xf50800e7,
-       0xf8026221,
-/* 0x0ca9: idle_recv */
-/* 0x0cab: idle */
-       0xf400f800,
-       0x17f10031,
-       0x14b605d4,
-       0x0011cf06,
-       0xf10110b6,
-       0xb605d407,
-       0x01d00604,
-/* 0x0cc7: idle_loop */
-       0xf004bd00,
-       0x32f45817,
-/* 0x0ccd: idle_proc */
-/* 0x0ccd: idle_proc_exec */
-       0xb910f902,
-       0x21f5021e,
-       0x10fc034b,
-       0xf40911f4,
-       0x0ef40231,
-/* 0x0ce1: idle_proc_next */
-       0x5810b6ef,
-       0xf4061fb8,
-       0x02f4e61b,
-       0x0028f4dd,
-       0x00bb0ef4,
+/* 0x0ca0: idle */
+       0xf10031f4,
+       0xb605d417,
+       0x11cf0614,
+       0x0110b600,
+       0x05d407f1,
+       0xd00604b6,
+       0x04bd0001,
+/* 0x0cbc: idle_loop */
+       0xf45817f0,
+/* 0x0cc2: idle_proc */
+/* 0x0cc2: idle_proc_exec */
+       0x10f90232,
+       0xf5021eb9,
+       0xfc034021,
+       0x0911f410,
+       0xf40231f4,
+/* 0x0cd6: idle_proc_next */
+       0x10b6ef0e,
+       0x061fb858,
+       0xf4e61bf4,
+       0x28f4dd02,
+       0xbb0ef400,
+       0x00000000,
+       0x00000000,
+       0x00000000,
        0x00000000,
        0x00000000,
        0x00000000,