Commit d5837df1 authored by Martin Peres's avatar Martin Peres Committed by Ben Skeggs

drm/nouveau/pwr: add helpers for delay-to-ticks and ticks-to-delay

Signed-off-by: default avatarMartin Peres <martin.peres@free.fr>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2befd17d
...@@ -242,6 +242,80 @@ intr: ...@@ -242,6 +242,80 @@ intr:
bclr $flags $p0 bclr $flags $p0
iret iret
// calculate the number of ticks in the specified nanoseconds delay
//
// $r15 - current
// $r14 - ns
// $r14 - ticks (return)
// $r0 - zero
ticks_from_ns:
push $r12
push $r11
/* try not losing precision (multiply then divide) */
imm32($r13, HW_TICKS_PER_US)
call #mulu32_32_64
/* use an immeditate, it's ok because HW_TICKS_PER_US < 16 bits */
div $r12 $r12 1000
/* check if there wasn't any overflow */
cmpu b32 $r11 0
bra e #ticks_from_ns_quit
/* let's divide then multiply, too bad for the precision! */
div $r14 $r14 1000
imm32($r13, HW_TICKS_PER_US)
call #mulu32_32_64
/* this cannot overflow as long as HW_TICKS_PER_US < 1000 */
ticks_from_ns_quit:
mov b32 $r14 $r12
pop $r11
pop $r12
ret
// calculate the number of ticks in the specified microsecond delay
//
// $r15 - current
// $r14 - us
// $r14 - ticks (return)
// $r0 - zero
ticks_from_us:
push $r12
push $r11
/* simply multiply $us by HW_TICKS_PER_US */
imm32($r13, HW_TICKS_PER_US)
call #mulu32_32_64
mov b32 $r14 $r12
/* check if there wasn't any overflow */
cmpu b32 $r11 0
bra e #ticks_from_us_quit
/* Overflow! */
clear b32 $r14
ticks_from_us_quit:
pop $r11
pop $r12
ret
// calculate the number of ticks in the specified microsecond delay
//
// $r15 - current
// $r14 - ticks
// $r14 - us (return)
// $r0 - zero
ticks_to_us:
/* simply divide $ticks by HW_TICKS_PER_US */
imm32($r13, HW_TICKS_PER_US)
div $r14 $r14 $r13
ret
// request the current process be sent a message after a timeout expires // request the current process be sent a message after a timeout expires
// //
// $r15 - current // $r15 - current
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
#define NVKM_PPWR_CHIPSET GK208 #define NVKM_PPWR_CHIPSET GK208
#define HW_TICKS_PER_US 324
#define NVKM_FALCON_PC24 #define NVKM_FALCON_PC24
#define NVKM_FALCON_UNSHIFTED_IO #define NVKM_FALCON_UNSHIFTED_IO
......
...@@ -24,8 +24,8 @@ uint32_t nv108_pwr_data[] = { ...@@ -24,8 +24,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000, 0x00000000,
/* 0x0058: proc_list_head */ /* 0x0058: proc_list_head */
0x54534f48, 0x54534f48,
0x000003e0, 0x0000043b,
0x00000391, 0x000003ec,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { ...@@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x584d454d, 0x584d454d,
0x000004cb, 0x00000526,
0x000004bd, 0x00000518,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { ...@@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x46524550, 0x46524550,
0x000004cf, 0x0000052a,
0x000004cd, 0x00000528,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { ...@@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x5f433249, 0x5f433249,
0x000008d3, 0x0000092e,
0x0000077a, 0x000007d5,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { ...@@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x54534554, 0x54534554,
0x000008f4, 0x0000094f,
0x000008d5, 0x00000930,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { ...@@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x454c4449, 0x454c4449,
0x000008ff, 0x0000095a,
0x000008fd, 0x00000958,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = { ...@@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = {
/* 0x0370: memx_func_head */ /* 0x0370: memx_func_head */
0x00010000, 0x00010000,
0x00000000, 0x00000000,
0x00000410, 0x0000046b,
/* 0x037c: memx_func_next */ /* 0x037c: memx_func_next */
0x00000001, 0x00000001,
0x00000000, 0x00000000,
0x0000042e, 0x00000489,
0x00000002, 0x00000002,
0x00000002, 0x00000002,
0x00000446, 0x000004a1,
0x00040003, 0x00040003,
0x00000000, 0x00000000,
0x00000463, 0x000004be,
0x00010004, 0x00010004,
0x00000000, 0x00000000,
0x0000047d, 0x000004d8,
/* 0x03ac: memx_func_tail */ /* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */ /* 0x03ac: memx_data_head */
0x00000000, 0x00000000,
...@@ -784,7 +784,7 @@ uint32_t nv108_pwr_data[] = { ...@@ -784,7 +784,7 @@ uint32_t nv108_pwr_data[] = {
}; };
uint32_t nv108_pwr_code[] = { uint32_t nv108_pwr_code[] = {
0x02a90ef5, 0x03040ef5,
/* 0x0004: rd32 */ /* 0x0004: rd32 */
0xf607a040, 0xf607a040,
0x04bd000e, 0x04bd000e,
...@@ -836,7 +836,7 @@ uint32_t nv108_pwr_code[] = { ...@@ -836,7 +836,7 @@ uint32_t nv108_pwr_code[] = {
0x0a98280b, 0x0a98280b,
0x029abb9a, 0x029abb9a,
0x0d0e1cf4, 0x0d0e1cf4,
0x01f67e01, 0x02517e01,
0xf494bd00, 0xf494bd00,
/* 0x00b2: intr_watchdog_next_time */ /* 0x00b2: intr_watchdog_next_time */
0x0a98140e, 0x0a98140e,
...@@ -881,7 +881,7 @@ uint32_t nv108_pwr_code[] = { ...@@ -881,7 +881,7 @@ uint32_t nv108_pwr_code[] = {
0xc0f900cc, 0xc0f900cc,
0xf14f484e, 0xf14f484e,
0x0d5453e3, 0x0d5453e3,
0x02577e00, 0x02b27e00,
0x40c0fc00, 0x40c0fc00,
0x0cf604c0, 0x0cf604c0,
/* 0x0157: intr_subintr_skip_fifo */ /* 0x0157: intr_subintr_skip_fifo */
...@@ -904,598 +904,603 @@ uint32_t nv108_pwr_code[] = { ...@@ -904,598 +904,603 @@ uint32_t nv108_pwr_code[] = {
0xfca0fcb0, 0xfca0fcb0,
0xfc80fc90, 0xfc80fc90,
0x0032f400, 0x0032f400,
/* 0x0196: timer */ /* 0x0196: ticks_from_ns */
0x90f901f8, 0xc0f901f8,
0x32f480f9, 0xd7f1b0f9,
0x03f89810, 0xd3f00144,
0xf40086b0, 0x5f21f500,
0x84bd4a1c, 0xe8ccec03,
0x08f63800, 0x00b4b003,
0x0804bd00, 0xec120bf4,
0x0088cf34, 0xf103e8ee,
0xbb9a0998, 0xf00144d7,
0xe9bb0298, 0x21f500d3,
0x03feb500, /* 0x01be: ticks_from_ns_quit */
0x88cf0808, 0xceb2035f,
0x0284f000, 0xc0fcb0fc,
0x081c1bf4, /* 0x01c6: ticks_from_us */
0x0088cf34, 0xc0f900f8,
0x0bf4e0a6, 0xd7f1b0f9,
0xf4e8a608, 0xd3f00144,
/* 0x01da: timer_reset */ 0x5f21f500,
0x34000d1c, 0xb0ceb203,
0xbd000ef6, 0x0bf400b4,
0x9a0eb504, /* 0x01df: ticks_from_us_quit */
/* 0x01e4: timer_enable */ 0xfce4bd05,
0x38000108, 0xf8c0fcb0,
0xbd0008f6, /* 0x01e5: ticks_to_us */
/* 0x01ed: timer_done */ 0x44d7f100,
0x1031f404, 0x00d3f001,
0x90fc80fc, 0xf8ecedff,
/* 0x01f6: send_proc */ /* 0x01f1: timer */
0x80f900f8, 0xf990f900,
0xe89890f9, 0x1032f480,
0x04e99805, 0xb003f898,
0xa60486f0, 0x1cf40086,
0x2a0bf489, 0x0084bd4a,
0x940398c4, 0x0008f638,
0x80b60488, 0x340804bd,
0x008ebb18, 0x980088cf,
0xb500fa98, 0x98bb9a09,
0x8db5008a, 0x00e9bb02,
0x028cb501, 0x0803feb5,
0xb6038bb5, 0x0088cf08,
0x94f00190, 0xf40284f0,
0x04e9b507, 0x34081c1b,
/* 0x022f: send_done */ 0xa60088cf,
0xfc0231f4, 0x080bf4e0,
0xf880fc90, 0x1cf4e8a6,
/* 0x0235: find */ /* 0x0235: timer_reset */
0x0880f900, 0xf634000d,
0x0131f458, 0x04bd000e,
/* 0x023c: find_loop */ /* 0x023f: timer_enable */
0xa6008a98, 0x089a0eb5,
0x100bf4ae, 0xf6380001,
0xb15880b6, 0x04bd0008,
0xf4026886, /* 0x0248: timer_done */
0x32f4f11b, 0xfc1031f4,
/* 0x0251: find_done */ 0xf890fc80,
0xfc8eb201, /* 0x0251: send_proc */
/* 0x0257: send */ 0xf980f900,
0x7e00f880, 0x05e89890,
0xf4000235, 0xf004e998,
0x00f89b01, 0x89a60486,
/* 0x0260: recv */ 0xc42a0bf4,
0x9805e898, 0x88940398,
0x32f404e9, 0x1880b604,
0xf489a601, 0x98008ebb,
0x89c43c0b, 0x8ab500fa,
0x0180b603, 0x018db500,
0xb50784f0, 0xb5028cb5,
0xea9805e8, 0x90b6038b,
0xfef0f902, 0x0794f001,
0xf0f9018f, 0xf404e9b5,
0x9994efb2, /* 0x028a: send_done */
0x00e9bb04, 0x90fc0231,
0x9818e0b6, 0x00f880fc,
0xec9803eb, /* 0x0290: find */
0x01ed9802, 0x580880f9,
0xf900ee98, /* 0x0297: find_loop */
0xfef0fca5, 0x980131f4,
0x31f400f8, 0xaea6008a,
/* 0x02a7: recv_done */ 0xb6100bf4,
0xf8f0fc01, 0x86b15880,
/* 0x02a9: init */ 0x1bf40268,
0x01084100, 0x0132f4f1,
0xe70011cf, /* 0x02ac: find_done */
0xb6010911, 0x80fc8eb2,
0x14fe0814, /* 0x02b2: send */
0x00e04100, 0x907e00f8,
0x000013f0, 0x01f40002,
0x0001f61c, /* 0x02bb: recv */
0xff0104bd, 0x9800f89b,
0x01f61400, 0xe99805e8,
0x0104bd00, 0x0132f404,
0x0015f102, 0x0bf489a6,
0xf6100008, 0x0389c43c,
0x04bd0001, 0xf00180b6,
0xf000d241, 0xe8b50784,
0x10fe0013, 0x02ea9805,
0x1031f400, 0x8ffef0f9,
0x38000101, 0xb2f0f901,
0x049994ef,
0xb600e9bb,
0xeb9818e0,
0x02ec9803,
0x9801ed98,
0xa5f900ee,
0xf8fef0fc,
0x0131f400,
/* 0x0302: recv_done */
0x00f8f0fc,
/* 0x0304: init */
0xcf010841,
0x11e70011,
0x14b60109,
0x0014fe08,
0xf000e041,
0x1c000013,
0xbd0001f6, 0xbd0001f6,
/* 0x02f3: init_proc */ 0x00ff0104,
0x98580f04, 0x0001f614,
0x16b001f1, 0x020104bd,
0xfa0bf400, 0x080015f1,
0xf0b615f9, 0x01f61000,
0xf20ef458, 0x4104bd00,
/* 0x0304: mulu32_32_64 */ 0x13f000d2,
0x20f910f9, 0x0010fe00,
0x40f930f9, 0x011031f4,
0x9510e195, 0xf6380001,
0xc4bd10d2, 0x04bd0001,
0xedffb4bd, /* 0x034e: init_proc */
0x301dffc0, 0xf198580f,
0x0016b001,
0xf9fa0bf4,
0x58f0b615,
/* 0x035f: mulu32_32_64 */
0xf9f20ef4,
0xf920f910,
0x9540f930,
0xd29510e1,
0xbdc4bd10,
0xc0edffb4,
0xb2301dff,
0xff34f134,
0x1034b6ff,
0xbb1045b6,
0xb4bb00c3,
0x30e2ff01,
0x34f134b2, 0x34f134b2,
0x34b6ffff, 0x34b6ffff,
0x1045b610, 0x1045b610,
0xbb00c3bb, 0xbb00c3bb,
0xe2ff01b4, 0x12ff01b4,
0xf134b230, 0x00b3bb30,
0xb6ffff34, 0x30fc40fc,
0x45b61034, 0x10fc20fc,
0x00c3bb10, /* 0x03ae: host_send */
0xff01b4bb, 0xb04100f8,
0xb3bb3012, 0x0011cf04,
0xfc40fc00, 0xcf04a042,
0xfc20fc30, 0x12a60022,
/* 0x0353: host_send */ 0xc42e0bf4,
0x4100f810, 0xee94071e,
0x11cf04b0, 0x70e0b704,
0x04a04200, 0x03eb9802,
0xa60022cf, 0x9802ec98,
0x2e0bf412, 0xee9801ed,
0x94071ec4, 0x02b27e00,
0xe0b704ee, 0x0110b600,
0xeb980270, 0x400f1ec4,
0x02ec9803, 0x0ef604b0,
0x9801ed98, 0xf404bd00,
0x577e00ee, /* 0x03ea: host_send_done */
0x10b60002, 0x00f8c70e,
0x0f1ec401, /* 0x03ec: host_recv */
0xf604b040, 0xf14e4941,
0x04bd000e, 0xa6525413,
/* 0x038f: host_send_done */ 0xb90bf4e1,
0xf8c70ef4, /* 0x03f8: host_recv_wait */
/* 0x0391: host_recv */ 0xcf04cc41,
0x4e494100, 0xc8420011,
0x525413f1, 0x0022cf04,
0x0bf4e1a6, 0xa60816f0,
/* 0x039d: host_recv_wait */ 0xef0bf412,
0x04cc41b9, 0xb60723c4,
0x420011cf, 0x30b70434,
0x22cf04c8, 0x3bb502f0,
0x0816f000, 0x023cb503,
0x0bf412a6, 0xb5013db5,
0x0723c4ef, 0x20b6003e,
0xb70434b6, 0x0f24f001,
0xb502f030, 0xf604c840,
0x3cb5033b, 0x04bd0002,
0x013db502, 0x00004002,
0xb6003eb5,
0x24f00120,
0x04c8400f,
0xbd0002f6, 0xbd0002f6,
0x00400204, /* 0x043b: host_init */
0x0002f600, 0x4100f804,
0x14b60080,
0x7015f110,
0x04d04002,
0xbd0001f6,
0x00804104,
0xf11014b6,
0x4002f015,
0x01f604dc,
0x0104bd00,
0x04c44001,
0xbd0001f6,
/* 0x046b: memx_func_enter */
0x0600f804,
0x07e04004,
0xbd0006f6,
/* 0x0475: memx_func_enter_wait */
0x07c04604,
0xf00066cf,
0x0bf40464,
0x001698f7,
0xf80410b6,
/* 0x0489: memx_func_leave */
0x40040600,
0x06f607e4,
/* 0x0493: memx_func_leave_wait */
0x4604bd00,
0x66cf07c0,
0x0464f000,
0xf8f71bf4,
/* 0x04a1: memx_func_wr32 */
0x00169800,
0xb6011598,
0x60f90810,
0xd0fc50f9,
0x2e7ee0fc,
0x42b60000,
0xe81bf402,
/* 0x04be: memx_func_wait */
0x2c0800f8,
0x980088cf,
0x1d98001e,
0x021c9801,
0xb6031b98,
0x717e1010,
0x00f80000,
/* 0x04d8: memx_func_delay */
0xb6001e98,
0x5d7e0410,
0x00f80000,
/* 0x04e4: memx_exec */
0xd0f9e0f9,
0xb2b2c1b2,
/* 0x04ec: memx_exec_next */
0xb6001398,
0x34950410,
0x0c30f010,
0xf9de3598,
0xf412a655,
0xd0fced1e,
0xb27ee0fc,
0x00f80002,
/* 0x050c: memx_info */
0x4b03ac4c,
0xb27e0800,
0x00f80002,
/* 0x0518: memx_recv */
0xf401d6b0,
0xd6b0c90b,
0xeb0bf400,
/* 0x0526: memx_init */
0x00f800f8,
/* 0x0528: perf_recv */
/* 0x052a: perf_init */
0x00f800f8,
/* 0x052c: i2c_drive_scl */
0xf40036b0,
0xe0400d0b,
0x0001f607,
0x00f804bd, 0x00f804bd,
/* 0x03e0: host_init */ /* 0x053c: i2c_drive_scl_lo */
0xb6008041, 0xf607e440,
0x15f11014,
0xd0400270,
0x0001f604,
0x804104bd,
0x1014b600,
0x02f015f1,
0xf604dc40,
0x04bd0001, 0x04bd0001,
0xc4400101, /* 0x0546: i2c_drive_sda */
0x0001f604, 0x36b000f8,
0x0d0bf400,
0xf607e040,
0x04bd0002,
/* 0x0556: i2c_drive_sda_lo */
0xe44000f8,
0x0002f607,
0x00f804bd, 0x00f804bd,
/* 0x0410: memx_func_enter */ /* 0x0560: i2c_sense_scl */
0xe0400406, 0x430132f4,
0x0006f607, 0x33cf07c4,
/* 0x041a: memx_func_enter_wait */ 0x0431fd00,
0xc04604bd, 0xf4060bf4,
0x0066cf07, /* 0x0572: i2c_sense_scl_done */
0xf40464f0, 0x00f80131,
0x1698f70b, /* 0x0574: i2c_sense_sda */
0x0410b600, 0x430132f4,
/* 0x042e: memx_func_leave */ 0x33cf07c4,
0x040600f8, 0x0432fd00,
0xf607e440, 0xf4060bf4,
0x04bd0006, /* 0x0586: i2c_sense_sda_done */
/* 0x0438: memx_func_leave_wait */ 0x00f80131,
0xcf07c046, /* 0x0588: i2c_raise_scl */
0x64f00066, 0x984440f9,
0xf71bf404, 0x7e010308,
/* 0x0446: memx_func_wr32 */ /* 0x0593: i2c_raise_scl_wait */
0x169800f8, 0x4e00052c,
0x01159800, 0x5d7e03e8,
0xf90810b6, 0x607e0000,
0xfc50f960, 0x01f40005,
0x7ee0fcd0, 0x0142b609,
0xb600002e, /* 0x05a7: i2c_raise_scl_done */
0x1bf40242, 0xfcef1bf4,
/* 0x0463: memx_func_wait */ /* 0x05ab: i2c_start */
0x0800f8e8, 0x7e00f840,
0x0088cf2c, 0xf4000560,
0x98001e98, 0x747e0d11,
0x1c98011d, 0x11f40005,
0x031b9802, 0x2e0ef406,
0x7e1010b6, /* 0x05bc: i2c_start_rep */
0xf8000071, 0x2c7e0003,
/* 0x047d: memx_func_delay */ 0x01030005,
0x001e9800, 0x0005467e,
0x7e0410b6, 0xb60076bb,
0xf800005d, 0x50f90465,
/* 0x0489: memx_exec */ 0xbb046594,
0xf9e0f900, 0x50bd0256,
0xb2c1b2d0, 0xfc0475fd,
/* 0x0491: memx_exec_next */ 0x05887e50,
0x001398b2, 0x0464b600,
0x950410b6, /* 0x05e7: i2c_start_send */
0x30f01034, 0x031d11f4,
0xde35980c, 0x05467e00,
0x12a655f9, 0x13884e00,
0xfced1ef4, 0x00005d7e,
0x7ee0fcd0, 0x2c7e0003,
0xf8000257, 0x884e0005,
/* 0x04b1: memx_info */ 0x005d7e13,
0x03ac4c00, /* 0x0601: i2c_start_out */
0x7e08004b, /* 0x0603: i2c_stop */
0xf8000257, 0x0300f800,
/* 0x04bd: memx_recv */ 0x052c7e00,
0x01d6b000, 0x7e000300,
0xb0c90bf4, 0x4e000546,
0x0bf400d6, 0x5d7e03e8,
/* 0x04cb: memx_init */ 0x01030000,
0xf800f8eb, 0x00052c7e,
/* 0x04cd: perf_recv */ 0x7e13884e,
/* 0x04cf: perf_init */ 0x0300005d,
0xf800f800, 0x05467e01,
/* 0x04d1: i2c_drive_scl */ 0x13884e00,
0x0036b000, 0x00005d7e,
0x400d0bf4, /* 0x0632: i2c_bitw */
0x01f607e0, 0x467e00f8,
0xf804bd00, 0xe84e0005,
/* 0x04e1: i2c_drive_scl_lo */ 0x005d7e03,
0x07e44000,
0xbd0001f6,
/* 0x04eb: i2c_drive_sda */
0xb000f804,
0x0bf40036,
0x07e0400d,
0xbd0002f6,
/* 0x04fb: i2c_drive_sda_lo */
0x4000f804,
0x02f607e4,
0xf804bd00,
/* 0x0505: i2c_sense_scl */
0x0132f400,
0xcf07c443,
0x31fd0033,
0x060bf404,
/* 0x0517: i2c_sense_scl_done */
0xf80131f4,
/* 0x0519: i2c_sense_sda */
0x0132f400,
0xcf07c443,
0x32fd0033,
0x060bf404,
/* 0x052b: i2c_sense_sda_done */
0xf80131f4,
/* 0x052d: i2c_raise_scl */
0x4440f900,
0x01030898,
0x0004d17e,
/* 0x0538: i2c_raise_scl_wait */
0x7e03e84e,
0x7e00005d,
0xf4000505,
0x42b60901,
0xef1bf401,
/* 0x054c: i2c_raise_scl_done */
0x00f840fc,
/* 0x0550: i2c_start */
0x0005057e,
0x7e0d11f4,
0xf4000519,
0x0ef40611,
/* 0x0561: i2c_start_rep */
0x7e00032e,
0x030004d1,
0x04eb7e01,
0x0076bb00, 0x0076bb00,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x2d7e50fc, 0x887e50fc,
0x64b60005, 0x64b60005,
0x1d11f404, 0x1711f404,
/* 0x058c: i2c_start_send */ 0x7e13884e,
0xeb7e0003,
0x884e0004,
0x005d7e13,
0x7e000300,
0x4e0004d1,
0x5d7e1388,
/* 0x05a6: i2c_start_out */
0x00f80000,
/* 0x05a8: i2c_stop */
0xd17e0003,
0x00030004,
0x0004eb7e,
0x7e03e84e,
0x0300005d, 0x0300005d,
0x04d17e01, 0x052c7e00,
0x13884e00, 0x13884e00,
0x00005d7e, 0x00005d7e,
0xeb7e0103, /* 0x0670: i2c_bitw_out */
0x884e0004, /* 0x0672: i2c_bitr */
0x005d7e13, 0x010300f8,
/* 0x05d7: i2c_bitw */ 0x0005467e,
0x7e00f800, 0x7e03e84e,
0x4e0004eb, 0xbb00005d,
0x5d7e03e8, 0x65b60076,
0x76bb0000, 0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
0x0005887e,
0xf40464b6,
0x747e1a11,
0x00030005,
0x00052c7e,
0x7e13884e,
0xf000005d,
0x31f4013c,
/* 0x06b5: i2c_bitr_done */
/* 0x06b7: i2c_get_byte */
0x0500f801,
/* 0x06bb: i2c_get_byte_next */
0xb6080400,
0x76bb0154,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0x7e50fc04, 0x7e50fc04,
0xb600052d, 0xb6000672,
0x11f40464, 0x11f40464,
0x13884e17, 0x0553fd2a,
0x00005d7e, 0xf40142b6,
0xd17e0003, 0x0103d81b,
0x884e0004,
0x005d7e13,
/* 0x0615: i2c_bitw_out */
/* 0x0617: i2c_bitr */
0x0300f800,
0x04eb7e01,
0x03e84e00,
0x00005d7e,
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x052d7e50, 0x06327e50,
0x0464b600, 0x0464b600,
0x7e1a11f4, /* 0x0704: i2c_get_byte_done */
0x03000519, /* 0x0706: i2c_put_byte */
0x04d17e00, 0x080400f8,
0x13884e00, /* 0x0708: i2c_put_byte_next */
0x00005d7e, 0xff0142b6,
0xf4013cf0, 0x76bb3854,
/* 0x065a: i2c_bitr_done */ 0x0465b600,
0x00f80131, 0x659450f9,
/* 0x065c: i2c_get_byte */ 0x0256bb04,
0x08040005, 0x75fd50bd,
/* 0x0660: i2c_get_byte_next */ 0x7e50fc04,
0xbb0154b6, 0xb6000632,
0x65b60076, 0x11f40464,
0x9450f904, 0x0046b034,
0x56bb0465, 0xbbd81bf4,
0xfd50bd02,
0x50fc0475,
0x0006177e,
0xf40464b6,
0x53fd2a11,
0x0142b605,
0x03d81bf4,
0x0076bb01,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0xd77e50fc,
0x64b60005,
/* 0x06a9: i2c_get_byte_done */
/* 0x06ab: i2c_put_byte */
0x0400f804,
/* 0x06ad: i2c_put_byte_next */
0x0142b608,
0xbb3854ff,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x0005d77e, 0x0006727e,
0xf40464b6, 0xf40464b6,
0x46b03411, 0x76bb0f11,
0xd81bf400, 0x0136b000,
0xf4061bf4,
/* 0x075e: i2c_put_byte_done */
0x00f80132,
/* 0x0760: i2c_addr */
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x06177e50, 0x05ab7e50,
0x0464b600, 0x0464b600,
0xbb0f11f4, 0xe72911f4,
0x36b00076, 0xb6012ec3,
0x061bf401, 0x53fd0134,
/* 0x0703: i2c_put_byte_done */ 0x0076bb05,
0xf80132f4,
/* 0x0705: i2c_addr */
0x0076bb00,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x507e50fc, 0x067e50fc,
0x64b60005, 0x64b60007,
0x2911f404, /* 0x07a5: i2c_addr_done */
0x012ec3e7, /* 0x07a7: i2c_acquire_addr */
0xfd0134b6, 0xc700f804,
0x76bb0553, 0xe4b6f8ce,
0x0465b600, 0x14e0b705,
0x659450f9, /* 0x07b3: i2c_acquire */
0x0256bb04, 0x7e00f8d0,
0x75fd50bd, 0x7e0007a7,
0x7e50fc04, 0xf0000004,
0xb60006ab, 0x2e7e03d9,
/* 0x074a: i2c_addr_done */ 0x00f80000,
0x00f80464, /* 0x07c4: i2c_release */
/* 0x074c: i2c_acquire_addr */ 0x0007a77e,
0xb6f8cec7,
0xe0b705e4,
0x00f8d014,
/* 0x0758: i2c_acquire */
0x00074c7e,
0x0000047e, 0x0000047e,
0x7e03d9f0, 0x7e03daf0,
0xf800002e, 0xf800002e,
/* 0x0769: i2c_release */ /* 0x07d5: i2c_recv */
0x074c7e00, 0x0132f400,
0x00047e00, 0xb6f8c1c7,
0x03daf000, 0x16b00214,
0x00002e7e, 0x371ff528,
/* 0x077a: i2c_recv */ 0xd413b801,
0x32f400f8, 0x3298000b,
0xf8c1c701, 0xac13b800,
0xb00214b6, 0x3198000b,
0x1ff52816, 0x0231f400,
0x13b80137, 0xe0f9d0f9,
0x98000bd4, 0x67f1d0f9,
0x13b80032, 0x63f10000,
0x98000bac, 0x67921000,
0x31f40031, 0x0076bb01,
0xf9d0f902,
0xf1d0f9e0,
0xf1000067,
0x92100063,
0x76bb0167,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
0xb6000758,
0xd0fc0464,
0xf500d6b0,
0x0500b01b,
0x0076bb00,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x057e50fc, 0xb37e50fc,
0x64b60007, 0x64b60007,
0xcc11f504, 0xb0d0fc04,
0xe0c5c700, 0x1bf500d6,
0xb60076bb, 0x000500b0,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
0x06ab7e50,
0x0464b600,
0x00a911f5,
0x76bb0105,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
0xb6000705,
0x11f50464,
0x76bb0087,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
0xb600065c,
0x11f40464,
0xe05bcb67,
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x05a87e50, 0x07607e50,
0x0464b600, 0x0464b600,
0x74bd5bb2, 0x00cc11f5,
/* 0x087f: i2c_recv_not_rd08 */ 0xbbe0c5c7,
0xb0410ef4, 0x65b60076,
0x1bf401d6, 0x9450f904,
0x7e00053b, 0x56bb0465,
0xf4000705, 0xfd50bd02,
0xc5c73211, 0x50fc0475,
0x06ab7ee0, 0x0007067e,
0x2811f400, 0xf50464b6,
0x057e0005, 0x0500a911,
0x0076bb01,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x607e50fc,
0x64b60007,
0x8711f504,
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0xb77e50fc,
0x64b60006,
0x6711f404,
0xbbe05bcb,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
0x0006037e,
0xb20464b6,
0xf474bd5b,
/* 0x08da: i2c_recv_not_rd08 */
0xd6b0410e,
0x3b1bf401,
0x607e0005,
0x11f40007, 0x11f40007,
0xe0b5c71f, 0xe0c5c732,
0x0006ab7e, 0x0007067e,
0x7e1511f4, 0x052811f4,
0xbd0005a8, 0x07607e00,
0x08c5c774, 0x1f11f400,
0xf4091bf4, 0x7ee0b5c7,
0x0ef40232, 0xf4000706,
/* 0x08bd: i2c_recv_not_wr08 */ 0x037e1511,
/* 0x08bd: i2c_recv_done */ 0x74bd0006,
0xf8cec703, 0xf408c5c7,
0x0007697e, 0x32f4091b,
0xd0fce0fc, 0x030ef402,
0xb20912f4, /* 0x0918: i2c_recv_not_wr08 */
0x02577e7c, /* 0x0918: i2c_recv_done */
/* 0x08d1: i2c_recv_exit */ 0x7ef8cec7,
/* 0x08d3: i2c_init */ 0xfc0007c4,
0xf800f800, 0xf4d0fce0,
/* 0x08d5: test_recv */ 0x7cb20912,
0x04584100, 0x0002b27e,
/* 0x092c: i2c_recv_exit */
/* 0x092e: i2c_init */
0x00f800f8,
/* 0x0930: test_recv */
0xcf045841,
0x10b60011,
0x04584001,
0xbd0001f6,
0x00e7f104,
0x4fe3f1d9,
0x01f17e13,
/* 0x094f: test_init */
0x4e00f800,
0xf17e0800,
0x00f80001,
/* 0x0958: idle_recv */
/* 0x095a: idle */
0x31f400f8,
0x04544100,
0xb60011cf, 0xb60011cf,
0x58400110, 0x54400110,
0x0001f604, 0x0001f604,
0xe7f104bd, /* 0x096e: idle_loop */
0xe3f1d900, 0x580104bd,
0x967e134f, /* 0x0973: idle_proc */
0x00f80001, /* 0x0973: idle_proc_exec */
/* 0x08f4: test_init */ 0xf90232f4,
0x7e08004e, 0x7e1eb210,
0xf8000196, 0xfc0002bb,
/* 0x08fd: idle_recv */ 0x0911f410,
/* 0x08ff: idle */ 0xf40231f4,
0xf400f800, /* 0x0986: idle_proc_next */
0x54410031, 0x10b6f00e,
0x0011cf04, 0xf41fa658,
0x400110b6, 0x02f4e81b,
0x01f60454, 0x0028f4e0,
/* 0x0913: idle_loop */ 0x00c60ef4,
0x0104bd00,
0x0232f458,
/* 0x0918: idle_proc */
/* 0x0918: idle_proc_exec */
0x1eb210f9,
0x0002607e,
0x11f410fc,
0x0231f409,
/* 0x092b: idle_proc_next */
0xb6f00ef4,
0x1fa65810,
0xf4e81bf4,
0x28f4e002,
0xc60ef400,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
#define NVKM_PPWR_CHIPSET GT215 #define NVKM_PPWR_CHIPSET GT215
#define HW_TICKS_PER_US 203 // should be 202.5
//#define NVKM_FALCON_PC24 //#define NVKM_FALCON_PC24
//#define NVKM_FALCON_UNSHIFTED_IO //#define NVKM_FALCON_UNSHIFTED_IO
......
...@@ -24,8 +24,8 @@ uint32_t nva3_pwr_data[] = { ...@@ -24,8 +24,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000, 0x00000000,
/* 0x0058: proc_list_head */ /* 0x0058: proc_list_head */
0x54534f48, 0x54534f48,
0x0000049d, 0x000004fa,
0x0000043a, 0x00000497,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -46,8 +46,8 @@ uint32_t nva3_pwr_data[] = { ...@@ -46,8 +46,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x584d454d, 0x584d454d,
0x000005af, 0x0000060c,
0x000005a1, 0x000005fe,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -68,8 +68,8 @@ uint32_t nva3_pwr_data[] = { ...@@ -68,8 +68,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x46524550, 0x46524550,
0x000005b3, 0x00000610,
0x000005b1, 0x0000060e,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -90,8 +90,8 @@ uint32_t nva3_pwr_data[] = { ...@@ -90,8 +90,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x5f433249, 0x5f433249,
0x000009e3, 0x00000a40,
0x00000886, 0x000008e3,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -112,8 +112,8 @@ uint32_t nva3_pwr_data[] = { ...@@ -112,8 +112,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x54534554, 0x54534554,
0x00000a0c, 0x00000a69,
0x000009e5, 0x00000a42,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -134,8 +134,8 @@ uint32_t nva3_pwr_data[] = { ...@@ -134,8 +134,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x454c4449, 0x454c4449,
0x00000a18, 0x00000a75,
0x00000a16, 0x00000a73,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -229,20 +229,20 @@ uint32_t nva3_pwr_data[] = { ...@@ -229,20 +229,20 @@ uint32_t nva3_pwr_data[] = {
/* 0x0370: memx_func_head */ /* 0x0370: memx_func_head */
0x00010000, 0x00010000,
0x00000000, 0x00000000,
0x000004dc, 0x00000539,
/* 0x037c: memx_func_next */ /* 0x037c: memx_func_next */
0x00000001, 0x00000001,
0x00000000, 0x00000000,
0x00000503, 0x00000560,
0x00000002, 0x00000002,
0x00000002, 0x00000002,
0x00000524, 0x00000581,
0x00040003, 0x00040003,
0x00000000, 0x00000000,
0x00000540, 0x0000059d,
0x00010004, 0x00010004,
0x00000000, 0x00000000,
0x0000055d, 0x000005ba,
/* 0x03ac: memx_func_tail */ /* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */ /* 0x03ac: memx_data_head */
0x00000000, 0x00000000,
...@@ -849,7 +849,7 @@ uint32_t nva3_pwr_data[] = { ...@@ -849,7 +849,7 @@ uint32_t nva3_pwr_data[] = {
}; };
uint32_t nva3_pwr_code[] = { uint32_t nva3_pwr_code[] = {
0x03290ef5, 0x03860ef5,
/* 0x0004: rd32 */ /* 0x0004: rd32 */
0x07a007f1, 0x07a007f1,
0xd00604b6, 0xd00604b6,
...@@ -915,7 +915,7 @@ uint32_t nva3_pwr_code[] = { ...@@ -915,7 +915,7 @@ uint32_t nva3_pwr_code[] = {
0xbb9a0a98, 0xbb9a0a98,
0x1cf4029a, 0x1cf4029a,
0x01d7f00f, 0x01d7f00f,
0x027021f5, 0x02cd21f5,
0x0ef494bd, 0x0ef494bd,
/* 0x00e9: intr_watchdog_next_time */ /* 0x00e9: intr_watchdog_next_time */
0x9b0a9815, 0x9b0a9815,
...@@ -967,7 +967,7 @@ uint32_t nva3_pwr_code[] = { ...@@ -967,7 +967,7 @@ uint32_t nva3_pwr_code[] = {
0x48e7f1c0, 0x48e7f1c0,
0x53e3f14f, 0x53e3f14f,
0x00d7f054, 0x00d7f054,
0x02d521f5, 0x033221f5,
0x07f1c0fc, 0x07f1c0fc,
0x04b604c0, 0x04b604c0,
0x000cd006, 0x000cd006,
...@@ -993,648 +993,653 @@ uint32_t nva3_pwr_code[] = { ...@@ -993,648 +993,653 @@ uint32_t nva3_pwr_code[] = {
0x90fca0fc, 0x90fca0fc,
0x00fc80fc, 0x00fc80fc,
0xf80032f4, 0xf80032f4,
/* 0x01f5: timer */ /* 0x01f5: ticks_from_ns */
0xf990f901, 0xf9c0f901,
0x1032f480, 0xcbd7f1b0,
0xb003f898, 0x00d3f000,
0x1cf40086, 0x03fb21f5,
0xf084bd65, 0x03e8ccec,
0x04b63807, 0xf400b4b0,
0x0008d006, 0xeeec120b,
0x87f004bd, 0xd7f103e8,
0x0684b634, 0xd3f000cb,
0x980088cf, 0xfb21f500,
0x98bb9a09, /* 0x021d: ticks_from_ns_quit */
0x00e9bb02, 0x02ceb903,
0xf003fe80, 0xc0fcb0fc,
0x84b60887, /* 0x0226: ticks_from_us */
0x0088cf06, 0xc0f900f8,
0xf40284f0, 0xd7f1b0f9,
0x87f0261b, 0xd3f000cb,
0x0684b634, 0xfb21f500,
0xb80088cf, 0x02ceb903,
0x0bf406e0, 0xf400b4b0,
0x06e8b809, 0xe4bd050b,
/* 0x024b: timer_reset */ /* 0x0240: ticks_from_us_quit */
0xf0111cf4, 0xc0fcb0fc,
0x04b63407, /* 0x0246: ticks_to_us */
0x000ed006, 0xd7f100f8,
0x0e8004bd, 0xd3f000cb,
/* 0x0259: timer_enable */ 0xecedff00,
0x0187f09a, /* 0x0252: timer */
0x90f900f8,
0x32f480f9,
0x03f89810,
0xf40086b0,
0x84bd651c,
0xb63807f0, 0xb63807f0,
0x08d00604, 0x08d00604,
/* 0x0267: timer_done */
0xf404bd00,
0x80fc1031,
0x00f890fc,
/* 0x0270: send_proc */
0x90f980f9,
0x9805e898,
0x86f004e9,
0x0689b804,
0xc42a0bf4,
0x88940398,
0x1880b604,
0x98008ebb,
0x8a8000fa,
0x018d8000,
0x80028c80,
0x90b6038b,
0x0794f001,
0xf404e980,
/* 0x02aa: send_done */
0x90fc0231,
0x00f880fc,
/* 0x02b0: find */
0x87f080f9,
0x0131f458,
/* 0x02b8: find_loop */
0xb8008a98,
0x0bf406ae,
0x5880b610,
0x026886b1,
0xf4f01bf4,
/* 0x02ce: find_done */
0x8eb90132,
0xf880fc02,
/* 0x02d5: send */
0xb021f500,
0x9701f402,
/* 0x02de: recv */
0xe89800f8,
0x04e99805,
0xb80132f4,
0x0bf40689,
0x0389c43d,
0xf00180b6,
0xe8800784,
0x02ea9805,
0x8ffef0f9,
0xb9f0f901,
0x999402ef,
0x00e9bb04,
0x9818e0b6,
0xec9803eb,
0x01ed9802,
0xf900ee98,
0xfef0fca5,
0x31f400f8,
/* 0x0327: recv_done */
0xf8f0fc01,
/* 0x0329: init */
0x0817f100,
0x0614b601,
0xe70011cf,
0xb6010911,
0x14fe0814,
0xe017f100,
0x0013f000,
0xb61c07f0,
0x01d00604,
0xf004bd00, 0xf004bd00,
0x07f0ff17, 0x84b63487,
0x0604b614, 0x0088cf06,
0xbd0001d0, 0xbb9a0998,
0x0217f004, 0xe9bb0298,
0x080015f1, 0x03fe8000,
0xb61007f0, 0xb60887f0,
0x01d00604, 0x88cf0684,
0xf104bd00, 0x0284f000,
0xf0010a17, 0xf0261bf4,
0x10fe0013, 0x84b63487,
0x1031f400, 0x0088cf06,
0xf00117f0, 0xf406e0b8,
0x04b63807, 0xe8b8090b,
0x0001d006, 0x111cf406,
0xf7f004bd, /* 0x02a8: timer_reset */
/* 0x038d: init_proc */ 0xb63407f0,
0x01f19858, 0x0ed00604,
0xf40016b0, 0x8004bd00,
0x15f9fa0b, /* 0x02b6: timer_enable */
0xf458f0b6, 0x87f09a0e,
/* 0x039e: mulu32_32_64 */ 0x3807f001,
0x10f9f20e, 0xd00604b6,
0x30f920f9, 0x04bd0008,
0xe19540f9, /* 0x02c4: timer_done */
0x10d29510, 0xfc1031f4,
0xb4bdc4bd, 0xf890fc80,
0xffc0edff, /* 0x02cd: send_proc */
0x34b9301d, 0xf980f900,
0xff34f102, 0x05e89890,
0x1034b6ff, 0xf004e998,
0xbb1045b6, 0x89b80486,
0xb4bb00c3, 0x2a0bf406,
0x30e2ff01, 0x940398c4,
0xf10234b9, 0x80b60488,
0xb6ffff34, 0x008ebb18,
0x45b61034, 0x8000fa98,
0x00c3bb10, 0x8d80008a,
0xff01b4bb, 0x028c8001,
0xb3bb3012, 0xb6038b80,
0xfc40fc00, 0x94f00190,
0xfc20fc30, 0x04e98007,
/* 0x03ef: host_send */ /* 0x0307: send_done */
0xf100f810, 0xfc0231f4,
0xb604b017, 0xf880fc90,
0x11cf0614, /* 0x030d: find */
0xa027f100, 0xf080f900,
0x0624b604, 0x31f45887,
0xb80022cf, /* 0x0315: find_loop */
0x0bf40612, 0x008a9801,
0x071ec432, 0xf406aeb8,
0xb704ee94, 0x80b6100b,
0x980270e0, 0x6886b158,
0xec9803eb, 0xf01bf402,
0x01ed9802, /* 0x032b: find_done */
0xf500ee98, 0xb90132f4,
0xb602d521, 0x80fc028e,
0x1ec40110, /* 0x0332: send */
0xb007f10f, 0x21f500f8,
0x0604b604, 0x01f4030d,
0xbd000ed0, /* 0x033b: recv */
0xba0ef404, 0x9800f897,
/* 0x0438: host_send_done */ 0xe99805e8,
/* 0x043a: host_recv */ 0x0132f404,
0xf40689b8,
0x89c43d0b,
0x0180b603,
0x800784f0,
0xea9805e8,
0xfef0f902,
0xf0f9018f,
0x9402efb9,
0xe9bb0499,
0x18e0b600,
0x9803eb98,
0xed9802ec,
0x00ee9801,
0xf0fca5f9,
0xf400f8fe,
0xf0fc0131,
/* 0x0384: recv_done */
/* 0x0386: init */
0x17f100f8, 0x17f100f8,
0x13f14e49, 0x14b60108,
0xe1b85254, 0x0011cf06,
0xaa0bf406, 0x010911e7,
/* 0x0448: host_recv_wait */ 0xfe0814b6,
0x04cc17f1, 0x17f10014,
0x13f000e0,
0x1c07f000,
0xd00604b6,
0x04bd0001,
0xf0ff17f0,
0x04b61407,
0x0001d006,
0x17f004bd,
0x0015f102,
0x1007f008,
0xd00604b6,
0x04bd0001,
0x010a17f1,
0xfe0013f0,
0x31f40010,
0x0117f010,
0xb63807f0,
0x01d00604,
0xf004bd00,
/* 0x03ea: init_proc */
0xf19858f7,
0x0016b001,
0xf9fa0bf4,
0x58f0b615,
/* 0x03fb: mulu32_32_64 */
0xf9f20ef4,
0xf920f910,
0x9540f930,
0xd29510e1,
0xbdc4bd10,
0xc0edffb4,
0xb9301dff,
0x34f10234,
0x34b6ffff,
0x1045b610,
0xbb00c3bb,
0xe2ff01b4,
0x0234b930,
0xffff34f1,
0xb61034b6,
0xc3bb1045,
0x01b4bb00,
0xbb3012ff,
0x40fc00b3,
0x20fc30fc,
0x00f810fc,
/* 0x044c: host_send */
0x04b017f1,
0xcf0614b6, 0xcf0614b6,
0x27f10011, 0x27f10011,
0x24b604c8, 0x24b604a0,
0x0022cf06, 0x0022cf06,
0xb80816f0, 0xf40612b8,
0x0bf40612, 0x1ec4320b,
0x0723c4e6, 0x04ee9407,
0xb70434b6, 0x0270e0b7,
0x8002f030, 0x9803eb98,
0x3c80033b, 0xed9802ec,
0x013d8002, 0x00ee9801,
0xb6003e80, 0x033221f5,
0x24f00120, 0xc40110b6,
0xc807f10f, 0x07f10f1e,
0x04b604b0,
0x000ed006,
0x0ef404bd,
/* 0x0495: host_send_done */
/* 0x0497: host_recv */
0xf100f8ba,
0xf14e4917,
0xb8525413,
0x0bf406e1,
/* 0x04a5: host_recv_wait */
0xcc17f1aa,
0x0614b604,
0xf10011cf,
0xb604c827,
0x22cf0624,
0x0816f000,
0xf40612b8,
0x23c4e60b,
0x0434b607,
0x02f030b7,
0x80033b80,
0x3d80023c,
0x003e8001,
0xf00120b6,
0x07f10f24,
0x04b604c8,
0x0002d006,
0x27f004bd,
0x0007f040,
0xd00604b6,
0x04bd0002,
/* 0x04fa: host_init */
0x17f100f8,
0x14b60080,
0x7015f110,
0xd007f102,
0x0604b604, 0x0604b604,
0xbd0002d0, 0xbd0001d0,
0x4027f004, 0x8017f104,
0xb60007f0,
0x02d00604,
0xf804bd00,
/* 0x049d: host_init */
0x8017f100,
0x1014b600, 0x1014b600,
0x027015f1, 0x02f015f1,
0x04d007f1, 0x04dc07f1,
0xd00604b6, 0xd00604b6,
0x04bd0001, 0x04bd0001,
0x008017f1, 0xf10117f0,
0xf11014b6, 0xb604c407,
0xf102f015,
0xb604dc07,
0x01d00604, 0x01d00604,
0xf004bd00, 0xf804bd00,
0x07f10117, /* 0x0539: memx_func_enter */
0x04b604c4, 0x0467f000,
0x0001d006, 0x07e007f1,
0x00f804bd, 0xd00604b6,
/* 0x04dc: memx_func_enter */ 0x04bd0006,
/* 0x0548: memx_func_enter_wait */
0x07c067f1,
0xcf0664b6,
0x64f00066,
0xf30bf404,
0xb6001698,
0x00f80410,
/* 0x0560: memx_func_leave */
0xf10467f0, 0xf10467f0,
0xb607e007, 0xb607e407,
0x06d00604, 0x06d00604,
/* 0x04eb: memx_func_enter_wait */ /* 0x056f: memx_func_leave_wait */
0xf104bd00, 0xf104bd00,
0xb607c067, 0xb607c067,
0x66cf0664, 0x66cf0664,
0x0464f000, 0x0464f000,
0x98f30bf4, 0xf8f31bf4,
0x10b60016, /* 0x0581: memx_func_wr32 */
/* 0x0503: memx_func_leave */ 0x00169800,
0xf000f804, 0xb6011598,
0x07f10467, 0x60f90810,
0x04b607e4, 0xd0fc50f9,
0x0006d006, 0x21f4e0fc,
/* 0x0512: memx_func_leave_wait */ 0x0242b63f,
0x67f104bd, 0xf8e91bf4,
0x64b607c0, /* 0x059d: memx_func_wait */
0x0066cf06, 0x2c87f000,
0xf40464f0, 0xcf0684b6,
0x00f8f31b, 0x1e980088,
/* 0x0524: memx_func_wr32 */ 0x011d9800,
0x98001698, 0x98021c98,
0x10b60115, 0x10b6031b,
0xf960f908, 0x9c21f410,
0xfcd0fc50, /* 0x05ba: memx_func_delay */
0x3f21f4e0, 0x1e9800f8,
0xf40242b6,
0x00f8e91b,
/* 0x0540: memx_func_wait */
0xb62c87f0,
0x88cf0684,
0x001e9800,
0x98011d98,
0x1b98021c,
0x1010b603,
0xf89c21f4,
/* 0x055d: memx_func_delay */
0x001e9800,
0xf40410b6,
0x00f87f21,
/* 0x0568: memx_exec */
0xd0f9e0f9,
0xb902c1b9,
/* 0x0572: memx_exec_next */
0x139802b2,
0x0410b600, 0x0410b600,
0xf0103495, 0xf87f21f4,
0x35980c30, /* 0x05c5: memx_exec */
0xb855f9de, 0xf9e0f900,
0x1ef40612, 0x02c1b9d0,
0xfcd0fcec, /* 0x05cf: memx_exec_next */
0xd521f5e0, 0x9802b2b9,
/* 0x0593: memx_info */ 0x10b60013,
0xf100f802, 0x10349504,
0xf103acc7, 0x980c30f0,
0xf50800b7, 0x55f9de35,
0xf802d521, 0xf40612b8,
/* 0x05a1: memx_recv */ 0xd0fcec1e,
0x01d6b000, 0x21f5e0fc,
0xb0c40bf4, 0x00f80332,
0x0bf400d6, /* 0x05f0: memx_info */
/* 0x05af: memx_init */ 0x03acc7f1,
0xf800f8e9, 0x0800b7f1,
/* 0x05b1: perf_recv */ 0x033221f5,
/* 0x05b3: perf_init */ /* 0x05fe: memx_recv */
0xf800f800, 0xd6b000f8,
/* 0x05b5: i2c_drive_scl */ 0xc40bf401,
0x0036b000, 0xf400d6b0,
0xf1110bf4, 0x00f8e90b,
0xb607e007, /* 0x060c: memx_init */
0x01d00604, /* 0x060e: perf_recv */
0xf804bd00, 0x00f800f8,
/* 0x05c9: i2c_drive_scl_lo */ /* 0x0610: perf_init */
0xe407f100, /* 0x0612: i2c_drive_scl */
0x0604b607, 0x36b000f8,
0xbd0001d0, 0x110bf400,
/* 0x05d7: i2c_drive_sda */ 0x07e007f1,
0xb000f804, 0xd00604b6,
0x0bf40036, 0x04bd0001,
0xe007f111, /* 0x0626: i2c_drive_scl_lo */
0x0604b607, 0x07f100f8,
0xbd0002d0, 0x04b607e4,
/* 0x05eb: i2c_drive_sda_lo */ 0x0001d006,
0xf100f804, 0x00f804bd,
0xb607e407, /* 0x0634: i2c_drive_sda */
0x02d00604, 0xf40036b0,
0xf804bd00, 0x07f1110b,
/* 0x05f9: i2c_sense_scl */ 0x04b607e0,
0x0132f400, 0x0002d006,
0x07c437f1, 0x00f804bd,
0xcf0634b6, /* 0x0648: i2c_drive_sda_lo */
0x31fd0033, 0x07e407f1,
0x060bf404, 0xd00604b6,
/* 0x060f: i2c_sense_scl_done */ 0x04bd0002,
0xf80131f4, /* 0x0656: i2c_sense_scl */
/* 0x0611: i2c_sense_sda */ 0x32f400f8,
0x0132f400, 0xc437f101,
0x07c437f1, 0x0634b607,
0xcf0634b6, 0xfd0033cf,
0x32fd0033, 0x0bf40431,
0x060bf404, 0x0131f406,
/* 0x0627: i2c_sense_sda_done */ /* 0x066c: i2c_sense_scl_done */
0xf80131f4, /* 0x066e: i2c_sense_sda */
/* 0x0629: i2c_raise_scl */ 0x32f400f8,
0xf140f900, 0xc437f101,
0xf0089847, 0x0634b607,
0xfd0033cf,
0x0bf40432,
0x0131f406,
/* 0x0684: i2c_sense_sda_done */
/* 0x0686: i2c_raise_scl */
0x40f900f8,
0x089847f1,
0xf50137f0,
/* 0x0693: i2c_raise_scl_wait */
0xf1061221,
0xf403e8e7,
0x21f57f21,
0x01f40656,
0x0142b609,
/* 0x06a7: i2c_raise_scl_done */
0xfcef1bf4,
/* 0x06ab: i2c_start */
0xf500f840,
0xf4065621,
0x21f50d11,
0x11f4066e,
0x300ef406,
/* 0x06bc: i2c_start_rep */
0xf50037f0,
0xf0061221,
0x21f50137, 0x21f50137,
/* 0x0636: i2c_raise_scl_wait */ 0x76bb0634,
0xe7f105b5, 0x0465b600,
0x21f403e8, 0x659450f9,
0xf921f57f, 0x0256bb04,
0x0901f405, 0x75fd50bd,
0xf40142b6, 0xf550fc04,
/* 0x064a: i2c_raise_scl_done */ 0xb6068621,
0x40fcef1b, 0x11f40464,
/* 0x064e: i2c_start */ /* 0x06e9: i2c_start_send */
0x21f500f8, 0x0037f01f,
0x11f405f9, 0x063421f5,
0x1121f50d, 0x1388e7f1,
0x0611f406, 0xf07f21f4,
/* 0x065f: i2c_start_rep */
0xf0300ef4,
0x21f50037, 0x21f50037,
0x37f005b5, 0xe7f10612,
0xd721f501, 0x21f41388,
0x0076bb05, /* 0x0705: i2c_start_out */
/* 0x0707: i2c_stop */
0xf000f87f,
0x21f50037,
0x37f00612,
0x3421f500,
0xe8e7f106,
0x7f21f403,
0xf50137f0,
0xf1061221,
0xf41388e7,
0x37f07f21,
0x3421f501,
0x88e7f106,
0x7f21f413,
/* 0x073a: i2c_bitw */
0x21f500f8,
0xe7f10634,
0x21f403e8,
0x0076bb7f,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b60629, 0x64b60686,
0x1f11f404, 0x1811f404,
/* 0x068c: i2c_start_send */
0xf50037f0,
0xf105d721,
0xf41388e7,
0x37f07f21,
0xb521f500,
0x88e7f105,
0x7f21f413,
/* 0x06a8: i2c_start_out */
/* 0x06aa: i2c_stop */
0x37f000f8,
0xb521f500,
0x0037f005,
0x05d721f5,
0x03e8e7f1,
0xf07f21f4,
0x21f50137,
0xe7f105b5,
0x21f41388,
0x0137f07f,
0x05d721f5,
0x1388e7f1, 0x1388e7f1,
0xf87f21f4, 0xf07f21f4,
/* 0x06dd: i2c_bitw */
0xd721f500,
0xe8e7f105,
0x7f21f403,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
0x2921f550,
0x0464b606,
0xf11811f4,
0xf41388e7,
0x37f07f21,
0xb521f500,
0x88e7f105,
0x7f21f413,
/* 0x071c: i2c_bitw_out */
/* 0x071e: i2c_bitr */
0x37f000f8,
0xd721f501,
0xe8e7f105,
0x7f21f403,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
0x2921f550,
0x0464b606,
0xf51b11f4,
0xf0061121,
0x21f50037, 0x21f50037,
0xe7f105b5, 0xe7f10612,
0x21f41388, 0x21f41388,
0x013cf07f, /* 0x0779: i2c_bitw_out */
/* 0x0763: i2c_bitr_done */ /* 0x077b: i2c_bitr */
0xf80131f4, 0xf000f87f,
/* 0x0765: i2c_get_byte */ 0x21f50137,
0x0057f000, 0xe7f10634,
/* 0x076b: i2c_get_byte_next */ 0x21f403e8,
0xb60847f0, 0x0076bb7f,
0x76bb0154,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
0xb6071e21,
0x11f40464,
0x0553fd2b,
0xf40142b6,
0x37f0d81b,
0x0076bb01,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b606dd, 0x64b60686,
/* 0x07b5: i2c_get_byte_done */ 0x1b11f404,
/* 0x07b7: i2c_put_byte */ 0x066e21f5,
0xf000f804, 0xf50037f0,
/* 0x07ba: i2c_put_byte_next */ 0xf1061221,
0x42b60847, 0xf41388e7,
0x3854ff01, 0x3cf07f21,
0xb60076bb, 0x0131f401,
0x50f90465, /* 0x07c0: i2c_bitr_done */
0xbb046594, /* 0x07c2: i2c_get_byte */
0x50bd0256, 0x57f000f8,
0xfc0475fd, 0x0847f000,
0xdd21f550, /* 0x07c8: i2c_get_byte_next */
0x0464b606, 0xbb0154b6,
0xb03411f4, 0x65b60076,
0x1bf40046, 0x9450f904,
0x0076bbd8, 0x56bb0465,
0xfd50bd02,
0x50fc0475,
0x077b21f5,
0xf40464b6,
0x53fd2b11,
0x0142b605,
0xf0d81bf4,
0x76bb0137,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
0xb6073a21,
/* 0x0812: i2c_get_byte_done */
0x00f80464,
/* 0x0814: i2c_put_byte */
/* 0x0817: i2c_put_byte_next */
0xb60847f0,
0x54ff0142,
0x0076bb38,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b6071e, 0x64b6073a,
0x0f11f404, 0x3411f404,
0xb00076bb, 0xf40046b0,
0x1bf40136, 0x76bbd81b,
0x0132f406,
/* 0x0810: i2c_put_byte_done */
/* 0x0812: i2c_addr */
0x76bb00f8,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0xf550fc04, 0xf550fc04,
0xb6064e21, 0xb6077b21,
0x11f40464, 0x11f40464,
0x2ec3e729, 0x0076bb0f,
0x0134b601, 0xf40136b0,
0xbb0553fd, 0x32f4061b,
/* 0x086d: i2c_put_byte_done */
/* 0x086f: i2c_addr */
0xbb00f801,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x07b721f5, 0x06ab21f5,
/* 0x0857: i2c_addr_done */ 0xf40464b6,
0xf80464b6, 0xc3e72911,
/* 0x0859: i2c_acquire_addr */ 0x34b6012e,
0xf8cec700, 0x0553fd01,
0xb702e4b6,
0x980bfce0,
0x00f800ee,
/* 0x0868: i2c_acquire */
0x085921f5,
0xf00421f4,
0x21f403d9,
/* 0x0877: i2c_release */
0xf500f83f,
0xf4085921,
0xdaf00421,
0x3f21f403,
/* 0x0886: i2c_recv */
0x32f400f8,
0xf8c1c701,
0xb00214b6,
0x1ff52816,
0x13a0013a,
0x32980bd4,
0xac13a000,
0x0031980b,
0xf90231f4,
0xf9e0f9d0,
0x0067f1d0,
0x0063f100,
0x01679210,
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x6821f550, 0x1421f550,
0x0464b608, 0x0464b608,
0xd6b0d0fc, /* 0x08b4: i2c_addr_done */
0xb31bf500, /* 0x08b6: i2c_acquire_addr */
0x0057f000, 0xcec700f8,
0x02e4b6f8,
0x0bfce0b7,
0xf800ee98,
/* 0x08c5: i2c_acquire */
0xb621f500,
0x0421f408,
0xf403d9f0,
0x00f83f21,
/* 0x08d4: i2c_release */
0x08b621f5,
0xf00421f4,
0x21f403da,
/* 0x08e3: i2c_recv */
0xf400f83f,
0xc1c70132,
0x0214b6f8,
0xf52816b0,
0xa0013a1f,
0x980bd413,
0x13a00032,
0x31980bac,
0x0231f400,
0xe0f9d0f9,
0x67f1d0f9,
0x63f10000,
0x67921000,
0x0076bb01,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b608c5,
0xb0d0fc04,
0x1bf500d6,
0x57f000b3,
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b6086f,
0xd011f504,
0xe0c5c700,
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x1221f550, 0x1421f550,
0x0464b608, 0x0464b608,
0x00d011f5, 0x00ad11f5,
0xbbe0c5c7, 0xbb0157f0,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x07b721f5, 0x086f21f5,
0xf50464b6, 0xf50464b6,
0xf000ad11, 0xbb008a11,
0x76bb0157, 0x65b60076,
0x0465b600, 0x9450f904,
0x659450f9, 0x56bb0465,
0x0256bb04, 0xfd50bd02,
0x75fd50bd, 0x50fc0475,
0xf550fc04, 0x07c221f5,
0xb6081221, 0xf40464b6,
0x11f50464, 0x5bcb6a11,
0x76bb008a, 0x0076bbe0,
0x0465b600, 0xf90465b6,
0x659450f9, 0x04659450,
0x0256bb04, 0xbd0256bb,
0x75fd50bd, 0x0475fd50,
0xf550fc04, 0x21f550fc,
0xb6076521, 0x64b60707,
0x11f40464, 0x025bb904,
0xe05bcb6a, 0x0ef474bd,
0xb60076bb, /* 0x09e9: i2c_recv_not_rd08 */
0x50f90465, 0x01d6b043,
0xbb046594, 0xf03d1bf4,
0x50bd0256, 0x21f50057,
0xfc0475fd, 0x11f4086f,
0xaa21f550, 0xe0c5c733,
0x0464b606, 0x081421f5,
0xbd025bb9, 0xf02911f4,
0x430ef474, 0x21f50057,
/* 0x098c: i2c_recv_not_rd08 */ 0x11f4086f,
0xf401d6b0, 0xe0b5c71f,
0x57f03d1b, 0x081421f5,
0x1221f500, 0xf51511f4,
0x3311f408, 0xbd070721,
0xf5e0c5c7, 0x08c5c774,
0xf407b721, 0xf4091bf4,
0x57f02911, 0x0ef40232,
0x1221f500, /* 0x0a29: i2c_recv_not_wr08 */
0x1f11f408, /* 0x0a29: i2c_recv_done */
0xf5e0b5c7, 0xf8cec703,
0xf407b721, 0x08d421f5,
0x21f51511, 0xd0fce0fc,
0x74bd06aa, 0xb90a12f4,
0xf408c5c7, 0x21f5027c,
0x32f4091b, /* 0x0a3e: i2c_recv_exit */
0x030ef402, 0x00f80332,
/* 0x09cc: i2c_recv_not_wr08 */ /* 0x0a40: i2c_init */
/* 0x09cc: i2c_recv_done */ /* 0x0a42: test_recv */
0xf5f8cec7, 0x17f100f8,
0xfc087721, 0x14b605d8,
0xf4d0fce0, 0x0011cf06,
0x7cb90a12, 0xf10110b6,
0xd521f502, 0xb605d807,
/* 0x09e1: i2c_recv_exit */ 0x01d00604,
/* 0x09e3: i2c_init */ 0xf104bd00,
0xf1d900e7,
0xf5134fe3,
0xf8025221,
/* 0x0a69: test_init */
0x00e7f100,
0x5221f508,
/* 0x0a73: idle_recv */
0xf800f802, 0xf800f802,
/* 0x09e5: test_recv */ /* 0x0a75: idle */
0xd817f100, 0x0031f400,
0x0614b605, 0x05d417f1,
0xb60011cf, 0xcf0614b6,
0x07f10110, 0x10b60011,
0x04b605d8, 0xd407f101,
0x0001d006, 0x0604b605,
0xe7f104bd, 0xbd0001d0,
0xe3f1d900, /* 0x0a91: idle_loop */
0x21f5134f, 0x5817f004,
0x00f801f5, /* 0x0a97: idle_proc */
/* 0x0a0c: test_init */ /* 0x0a97: idle_proc_exec */
0x0800e7f1, 0xf90232f4,
0x01f521f5, 0x021eb910,
/* 0x0a16: idle_recv */ 0x033b21f5,
0x00f800f8, 0x11f410fc,
/* 0x0a18: idle */ 0x0231f409,
0xf10031f4, /* 0x0aab: idle_proc_next */
0xb605d417, 0xb6ef0ef4,
0x11cf0614, 0x1fb85810,
0x0110b600, 0xe61bf406,
0x05d407f1, 0xf4dd02f4,
0xd00604b6, 0x0ef40028,
0x04bd0001, 0x000000bb,
/* 0x0a34: idle_loop */
0xf45817f0,
/* 0x0a3a: idle_proc */
/* 0x0a3a: idle_proc_exec */
0x10f90232,
0xf5021eb9,
0xfc02de21,
0x0911f410,
0xf40231f4,
/* 0x0a4e: idle_proc_next */
0x10b6ef0e,
0x061fb858,
0xf4e61bf4,
0x28f4dd02,
0xbb0ef400,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
#define NVKM_PPWR_CHIPSET GF100 #define NVKM_PPWR_CHIPSET GF100
#define HW_TICKS_PER_US 203 // should be 202.5
//#define NVKM_FALCON_PC24 //#define NVKM_FALCON_PC24
//#define NVKM_FALCON_UNSHIFTED_IO //#define NVKM_FALCON_UNSHIFTED_IO
......
...@@ -24,8 +24,8 @@ uint32_t nvc0_pwr_data[] = { ...@@ -24,8 +24,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000, 0x00000000,
/* 0x0058: proc_list_head */ /* 0x0058: proc_list_head */
0x54534f48, 0x54534f48,
0x0000049d, 0x000004fa,
0x0000043a, 0x00000497,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -46,8 +46,8 @@ uint32_t nvc0_pwr_data[] = { ...@@ -46,8 +46,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x584d454d, 0x584d454d,
0x000005af, 0x0000060c,
0x000005a1, 0x000005fe,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -68,8 +68,8 @@ uint32_t nvc0_pwr_data[] = { ...@@ -68,8 +68,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x46524550, 0x46524550,
0x000005b3, 0x00000610,
0x000005b1, 0x0000060e,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -90,8 +90,8 @@ uint32_t nvc0_pwr_data[] = { ...@@ -90,8 +90,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x5f433249, 0x5f433249,
0x000009e3, 0x00000a40,
0x00000886, 0x000008e3,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -112,8 +112,8 @@ uint32_t nvc0_pwr_data[] = { ...@@ -112,8 +112,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x54534554, 0x54534554,
0x00000a0c, 0x00000a69,
0x000009e5, 0x00000a42,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -134,8 +134,8 @@ uint32_t nvc0_pwr_data[] = { ...@@ -134,8 +134,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x454c4449, 0x454c4449,
0x00000a18, 0x00000a75,
0x00000a16, 0x00000a73,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -229,20 +229,20 @@ uint32_t nvc0_pwr_data[] = { ...@@ -229,20 +229,20 @@ uint32_t nvc0_pwr_data[] = {
/* 0x0370: memx_func_head */ /* 0x0370: memx_func_head */
0x00010000, 0x00010000,
0x00000000, 0x00000000,
0x000004dc, 0x00000539,
/* 0x037c: memx_func_next */ /* 0x037c: memx_func_next */
0x00000001, 0x00000001,
0x00000000, 0x00000000,
0x00000503, 0x00000560,
0x00000002, 0x00000002,
0x00000002, 0x00000002,
0x00000524, 0x00000581,
0x00040003, 0x00040003,
0x00000000, 0x00000000,
0x00000540, 0x0000059d,
0x00010004, 0x00010004,
0x00000000, 0x00000000,
0x0000055d, 0x000005ba,
/* 0x03ac: memx_func_tail */ /* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */ /* 0x03ac: memx_data_head */
0x00000000, 0x00000000,
...@@ -849,7 +849,7 @@ uint32_t nvc0_pwr_data[] = { ...@@ -849,7 +849,7 @@ uint32_t nvc0_pwr_data[] = {
}; };
uint32_t nvc0_pwr_code[] = { uint32_t nvc0_pwr_code[] = {
0x03290ef5, 0x03860ef5,
/* 0x0004: rd32 */ /* 0x0004: rd32 */
0x07a007f1, 0x07a007f1,
0xd00604b6, 0xd00604b6,
...@@ -915,7 +915,7 @@ uint32_t nvc0_pwr_code[] = { ...@@ -915,7 +915,7 @@ uint32_t nvc0_pwr_code[] = {
0xbb9a0a98, 0xbb9a0a98,
0x1cf4029a, 0x1cf4029a,
0x01d7f00f, 0x01d7f00f,
0x027021f5, 0x02cd21f5,
0x0ef494bd, 0x0ef494bd,
/* 0x00e9: intr_watchdog_next_time */ /* 0x00e9: intr_watchdog_next_time */
0x9b0a9815, 0x9b0a9815,
...@@ -967,7 +967,7 @@ uint32_t nvc0_pwr_code[] = { ...@@ -967,7 +967,7 @@ uint32_t nvc0_pwr_code[] = {
0x48e7f1c0, 0x48e7f1c0,
0x53e3f14f, 0x53e3f14f,
0x00d7f054, 0x00d7f054,
0x02d521f5, 0x033221f5,
0x07f1c0fc, 0x07f1c0fc,
0x04b604c0, 0x04b604c0,
0x000cd006, 0x000cd006,
...@@ -993,648 +993,653 @@ uint32_t nvc0_pwr_code[] = { ...@@ -993,648 +993,653 @@ uint32_t nvc0_pwr_code[] = {
0x90fca0fc, 0x90fca0fc,
0x00fc80fc, 0x00fc80fc,
0xf80032f4, 0xf80032f4,
/* 0x01f5: timer */ /* 0x01f5: ticks_from_ns */
0xf990f901, 0xf9c0f901,
0x1032f480, 0xcbd7f1b0,
0xb003f898, 0x00d3f000,
0x1cf40086, 0x03fb21f5,
0xf084bd65, 0x03e8ccec,
0x04b63807, 0xf400b4b0,
0x0008d006, 0xeeec120b,
0x87f004bd, 0xd7f103e8,
0x0684b634, 0xd3f000cb,
0x980088cf, 0xfb21f500,
0x98bb9a09, /* 0x021d: ticks_from_ns_quit */
0x00e9bb02, 0x02ceb903,
0xf003fe80, 0xc0fcb0fc,
0x84b60887, /* 0x0226: ticks_from_us */
0x0088cf06, 0xc0f900f8,
0xf40284f0, 0xd7f1b0f9,
0x87f0261b, 0xd3f000cb,
0x0684b634, 0xfb21f500,
0xb80088cf, 0x02ceb903,
0x0bf406e0, 0xf400b4b0,
0x06e8b809, 0xe4bd050b,
/* 0x024b: timer_reset */ /* 0x0240: ticks_from_us_quit */
0xf0111cf4, 0xc0fcb0fc,
0x04b63407, /* 0x0246: ticks_to_us */
0x000ed006, 0xd7f100f8,
0x0e8004bd, 0xd3f000cb,
/* 0x0259: timer_enable */ 0xecedff00,
0x0187f09a, /* 0x0252: timer */
0x90f900f8,
0x32f480f9,
0x03f89810,
0xf40086b0,
0x84bd651c,
0xb63807f0, 0xb63807f0,
0x08d00604, 0x08d00604,
/* 0x0267: timer_done */
0xf404bd00,
0x80fc1031,
0x00f890fc,
/* 0x0270: send_proc */
0x90f980f9,
0x9805e898,
0x86f004e9,
0x0689b804,
0xc42a0bf4,
0x88940398,
0x1880b604,
0x98008ebb,
0x8a8000fa,
0x018d8000,
0x80028c80,
0x90b6038b,
0x0794f001,
0xf404e980,
/* 0x02aa: send_done */
0x90fc0231,
0x00f880fc,
/* 0x02b0: find */
0x87f080f9,
0x0131f458,
/* 0x02b8: find_loop */
0xb8008a98,
0x0bf406ae,
0x5880b610,
0x026886b1,
0xf4f01bf4,
/* 0x02ce: find_done */
0x8eb90132,
0xf880fc02,
/* 0x02d5: send */
0xb021f500,
0x9701f402,
/* 0x02de: recv */
0xe89800f8,
0x04e99805,
0xb80132f4,
0x0bf40689,
0x0389c43d,
0xf00180b6,
0xe8800784,
0x02ea9805,
0x8ffef0f9,
0xb9f0f901,
0x999402ef,
0x00e9bb04,
0x9818e0b6,
0xec9803eb,
0x01ed9802,
0xf900ee98,
0xfef0fca5,
0x31f400f8,
/* 0x0327: recv_done */
0xf8f0fc01,
/* 0x0329: init */
0x0817f100,
0x0614b601,
0xe70011cf,
0xb6010911,
0x14fe0814,
0xe017f100,
0x0013f000,
0xb61c07f0,
0x01d00604,
0xf004bd00, 0xf004bd00,
0x07f0ff17, 0x84b63487,
0x0604b614, 0x0088cf06,
0xbd0001d0, 0xbb9a0998,
0x0217f004, 0xe9bb0298,
0x080015f1, 0x03fe8000,
0xb61007f0, 0xb60887f0,
0x01d00604, 0x88cf0684,
0xf104bd00, 0x0284f000,
0xf0010a17, 0xf0261bf4,
0x10fe0013, 0x84b63487,
0x1031f400, 0x0088cf06,
0xf00117f0, 0xf406e0b8,
0x04b63807, 0xe8b8090b,
0x0001d006, 0x111cf406,
0xf7f004bd, /* 0x02a8: timer_reset */
/* 0x038d: init_proc */ 0xb63407f0,
0x01f19858, 0x0ed00604,
0xf40016b0, 0x8004bd00,
0x15f9fa0b, /* 0x02b6: timer_enable */
0xf458f0b6, 0x87f09a0e,
/* 0x039e: mulu32_32_64 */ 0x3807f001,
0x10f9f20e, 0xd00604b6,
0x30f920f9, 0x04bd0008,
0xe19540f9, /* 0x02c4: timer_done */
0x10d29510, 0xfc1031f4,
0xb4bdc4bd, 0xf890fc80,
0xffc0edff, /* 0x02cd: send_proc */
0x34b9301d, 0xf980f900,
0xff34f102, 0x05e89890,
0x1034b6ff, 0xf004e998,
0xbb1045b6, 0x89b80486,
0xb4bb00c3, 0x2a0bf406,
0x30e2ff01, 0x940398c4,
0xf10234b9, 0x80b60488,
0xb6ffff34, 0x008ebb18,
0x45b61034, 0x8000fa98,
0x00c3bb10, 0x8d80008a,
0xff01b4bb, 0x028c8001,
0xb3bb3012, 0xb6038b80,
0xfc40fc00, 0x94f00190,
0xfc20fc30, 0x04e98007,
/* 0x03ef: host_send */ /* 0x0307: send_done */
0xf100f810, 0xfc0231f4,
0xb604b017, 0xf880fc90,
0x11cf0614, /* 0x030d: find */
0xa027f100, 0xf080f900,
0x0624b604, 0x31f45887,
0xb80022cf, /* 0x0315: find_loop */
0x0bf40612, 0x008a9801,
0x071ec432, 0xf406aeb8,
0xb704ee94, 0x80b6100b,
0x980270e0, 0x6886b158,
0xec9803eb, 0xf01bf402,
0x01ed9802, /* 0x032b: find_done */
0xf500ee98, 0xb90132f4,
0xb602d521, 0x80fc028e,
0x1ec40110, /* 0x0332: send */
0xb007f10f, 0x21f500f8,
0x0604b604, 0x01f4030d,
0xbd000ed0, /* 0x033b: recv */
0xba0ef404, 0x9800f897,
/* 0x0438: host_send_done */ 0xe99805e8,
/* 0x043a: host_recv */ 0x0132f404,
0xf40689b8,
0x89c43d0b,
0x0180b603,
0x800784f0,
0xea9805e8,
0xfef0f902,
0xf0f9018f,
0x9402efb9,
0xe9bb0499,
0x18e0b600,
0x9803eb98,
0xed9802ec,
0x00ee9801,
0xf0fca5f9,
0xf400f8fe,
0xf0fc0131,
/* 0x0384: recv_done */
/* 0x0386: init */
0x17f100f8, 0x17f100f8,
0x13f14e49, 0x14b60108,
0xe1b85254, 0x0011cf06,
0xaa0bf406, 0x010911e7,
/* 0x0448: host_recv_wait */ 0xfe0814b6,
0x04cc17f1, 0x17f10014,
0x13f000e0,
0x1c07f000,
0xd00604b6,
0x04bd0001,
0xf0ff17f0,
0x04b61407,
0x0001d006,
0x17f004bd,
0x0015f102,
0x1007f008,
0xd00604b6,
0x04bd0001,
0x010a17f1,
0xfe0013f0,
0x31f40010,
0x0117f010,
0xb63807f0,
0x01d00604,
0xf004bd00,
/* 0x03ea: init_proc */
0xf19858f7,
0x0016b001,
0xf9fa0bf4,
0x58f0b615,
/* 0x03fb: mulu32_32_64 */
0xf9f20ef4,
0xf920f910,
0x9540f930,
0xd29510e1,
0xbdc4bd10,
0xc0edffb4,
0xb9301dff,
0x34f10234,
0x34b6ffff,
0x1045b610,
0xbb00c3bb,
0xe2ff01b4,
0x0234b930,
0xffff34f1,
0xb61034b6,
0xc3bb1045,
0x01b4bb00,
0xbb3012ff,
0x40fc00b3,
0x20fc30fc,
0x00f810fc,
/* 0x044c: host_send */
0x04b017f1,
0xcf0614b6, 0xcf0614b6,
0x27f10011, 0x27f10011,
0x24b604c8, 0x24b604a0,
0x0022cf06, 0x0022cf06,
0xb80816f0, 0xf40612b8,
0x0bf40612, 0x1ec4320b,
0x0723c4e6, 0x04ee9407,
0xb70434b6, 0x0270e0b7,
0x8002f030, 0x9803eb98,
0x3c80033b, 0xed9802ec,
0x013d8002, 0x00ee9801,
0xb6003e80, 0x033221f5,
0x24f00120, 0xc40110b6,
0xc807f10f, 0x07f10f1e,
0x04b604b0,
0x000ed006,
0x0ef404bd,
/* 0x0495: host_send_done */
/* 0x0497: host_recv */
0xf100f8ba,
0xf14e4917,
0xb8525413,
0x0bf406e1,
/* 0x04a5: host_recv_wait */
0xcc17f1aa,
0x0614b604,
0xf10011cf,
0xb604c827,
0x22cf0624,
0x0816f000,
0xf40612b8,
0x23c4e60b,
0x0434b607,
0x02f030b7,
0x80033b80,
0x3d80023c,
0x003e8001,
0xf00120b6,
0x07f10f24,
0x04b604c8,
0x0002d006,
0x27f004bd,
0x0007f040,
0xd00604b6,
0x04bd0002,
/* 0x04fa: host_init */
0x17f100f8,
0x14b60080,
0x7015f110,
0xd007f102,
0x0604b604, 0x0604b604,
0xbd0002d0, 0xbd0001d0,
0x4027f004, 0x8017f104,
0xb60007f0,
0x02d00604,
0xf804bd00,
/* 0x049d: host_init */
0x8017f100,
0x1014b600, 0x1014b600,
0x027015f1, 0x02f015f1,
0x04d007f1, 0x04dc07f1,
0xd00604b6, 0xd00604b6,
0x04bd0001, 0x04bd0001,
0x008017f1, 0xf10117f0,
0xf11014b6, 0xb604c407,
0xf102f015,
0xb604dc07,
0x01d00604, 0x01d00604,
0xf004bd00, 0xf804bd00,
0x07f10117, /* 0x0539: memx_func_enter */
0x04b604c4, 0x0467f000,
0x0001d006, 0x07e007f1,
0x00f804bd, 0xd00604b6,
/* 0x04dc: memx_func_enter */ 0x04bd0006,
/* 0x0548: memx_func_enter_wait */
0x07c067f1,
0xcf0664b6,
0x64f00066,
0xf30bf404,
0xb6001698,
0x00f80410,
/* 0x0560: memx_func_leave */
0xf10467f0, 0xf10467f0,
0xb607e007, 0xb607e407,
0x06d00604, 0x06d00604,
/* 0x04eb: memx_func_enter_wait */ /* 0x056f: memx_func_leave_wait */
0xf104bd00, 0xf104bd00,
0xb607c067, 0xb607c067,
0x66cf0664, 0x66cf0664,
0x0464f000, 0x0464f000,
0x98f30bf4, 0xf8f31bf4,
0x10b60016, /* 0x0581: memx_func_wr32 */
/* 0x0503: memx_func_leave */ 0x00169800,
0xf000f804, 0xb6011598,
0x07f10467, 0x60f90810,
0x04b607e4, 0xd0fc50f9,
0x0006d006, 0x21f4e0fc,
/* 0x0512: memx_func_leave_wait */ 0x0242b63f,
0x67f104bd, 0xf8e91bf4,
0x64b607c0, /* 0x059d: memx_func_wait */
0x0066cf06, 0x2c87f000,
0xf40464f0, 0xcf0684b6,
0x00f8f31b, 0x1e980088,
/* 0x0524: memx_func_wr32 */ 0x011d9800,
0x98001698, 0x98021c98,
0x10b60115, 0x10b6031b,
0xf960f908, 0x9c21f410,
0xfcd0fc50, /* 0x05ba: memx_func_delay */
0x3f21f4e0, 0x1e9800f8,
0xf40242b6,
0x00f8e91b,
/* 0x0540: memx_func_wait */
0xb62c87f0,
0x88cf0684,
0x001e9800,
0x98011d98,
0x1b98021c,
0x1010b603,
0xf89c21f4,
/* 0x055d: memx_func_delay */
0x001e9800,
0xf40410b6,
0x00f87f21,
/* 0x0568: memx_exec */
0xd0f9e0f9,
0xb902c1b9,
/* 0x0572: memx_exec_next */
0x139802b2,
0x0410b600, 0x0410b600,
0xf0103495, 0xf87f21f4,
0x35980c30, /* 0x05c5: memx_exec */
0xb855f9de, 0xf9e0f900,
0x1ef40612, 0x02c1b9d0,
0xfcd0fcec, /* 0x05cf: memx_exec_next */
0xd521f5e0, 0x9802b2b9,
/* 0x0593: memx_info */ 0x10b60013,
0xf100f802, 0x10349504,
0xf103acc7, 0x980c30f0,
0xf50800b7, 0x55f9de35,
0xf802d521, 0xf40612b8,
/* 0x05a1: memx_recv */ 0xd0fcec1e,
0x01d6b000, 0x21f5e0fc,
0xb0c40bf4, 0x00f80332,
0x0bf400d6, /* 0x05f0: memx_info */
/* 0x05af: memx_init */ 0x03acc7f1,
0xf800f8e9, 0x0800b7f1,
/* 0x05b1: perf_recv */ 0x033221f5,
/* 0x05b3: perf_init */ /* 0x05fe: memx_recv */
0xf800f800, 0xd6b000f8,
/* 0x05b5: i2c_drive_scl */ 0xc40bf401,
0x0036b000, 0xf400d6b0,
0xf1110bf4, 0x00f8e90b,
0xb607e007, /* 0x060c: memx_init */
0x01d00604, /* 0x060e: perf_recv */
0xf804bd00, 0x00f800f8,
/* 0x05c9: i2c_drive_scl_lo */ /* 0x0610: perf_init */
0xe407f100, /* 0x0612: i2c_drive_scl */
0x0604b607, 0x36b000f8,
0xbd0001d0, 0x110bf400,
/* 0x05d7: i2c_drive_sda */ 0x07e007f1,
0xb000f804, 0xd00604b6,
0x0bf40036, 0x04bd0001,
0xe007f111, /* 0x0626: i2c_drive_scl_lo */
0x0604b607, 0x07f100f8,
0xbd0002d0, 0x04b607e4,
/* 0x05eb: i2c_drive_sda_lo */ 0x0001d006,
0xf100f804, 0x00f804bd,
0xb607e407, /* 0x0634: i2c_drive_sda */
0x02d00604, 0xf40036b0,
0xf804bd00, 0x07f1110b,
/* 0x05f9: i2c_sense_scl */ 0x04b607e0,
0x0132f400, 0x0002d006,
0x07c437f1, 0x00f804bd,
0xcf0634b6, /* 0x0648: i2c_drive_sda_lo */
0x31fd0033, 0x07e407f1,
0x060bf404, 0xd00604b6,
/* 0x060f: i2c_sense_scl_done */ 0x04bd0002,
0xf80131f4, /* 0x0656: i2c_sense_scl */
/* 0x0611: i2c_sense_sda */ 0x32f400f8,
0x0132f400, 0xc437f101,
0x07c437f1, 0x0634b607,
0xcf0634b6, 0xfd0033cf,
0x32fd0033, 0x0bf40431,
0x060bf404, 0x0131f406,
/* 0x0627: i2c_sense_sda_done */ /* 0x066c: i2c_sense_scl_done */
0xf80131f4, /* 0x066e: i2c_sense_sda */
/* 0x0629: i2c_raise_scl */ 0x32f400f8,
0xf140f900, 0xc437f101,
0xf0089847, 0x0634b607,
0xfd0033cf,
0x0bf40432,
0x0131f406,
/* 0x0684: i2c_sense_sda_done */
/* 0x0686: i2c_raise_scl */
0x40f900f8,
0x089847f1,
0xf50137f0,
/* 0x0693: i2c_raise_scl_wait */
0xf1061221,
0xf403e8e7,
0x21f57f21,
0x01f40656,
0x0142b609,
/* 0x06a7: i2c_raise_scl_done */
0xfcef1bf4,
/* 0x06ab: i2c_start */
0xf500f840,
0xf4065621,
0x21f50d11,
0x11f4066e,
0x300ef406,
/* 0x06bc: i2c_start_rep */
0xf50037f0,
0xf0061221,
0x21f50137, 0x21f50137,
/* 0x0636: i2c_raise_scl_wait */ 0x76bb0634,
0xe7f105b5, 0x0465b600,
0x21f403e8, 0x659450f9,
0xf921f57f, 0x0256bb04,
0x0901f405, 0x75fd50bd,
0xf40142b6, 0xf550fc04,
/* 0x064a: i2c_raise_scl_done */ 0xb6068621,
0x40fcef1b, 0x11f40464,
/* 0x064e: i2c_start */ /* 0x06e9: i2c_start_send */
0x21f500f8, 0x0037f01f,
0x11f405f9, 0x063421f5,
0x1121f50d, 0x1388e7f1,
0x0611f406, 0xf07f21f4,
/* 0x065f: i2c_start_rep */
0xf0300ef4,
0x21f50037, 0x21f50037,
0x37f005b5, 0xe7f10612,
0xd721f501, 0x21f41388,
0x0076bb05, /* 0x0705: i2c_start_out */
/* 0x0707: i2c_stop */
0xf000f87f,
0x21f50037,
0x37f00612,
0x3421f500,
0xe8e7f106,
0x7f21f403,
0xf50137f0,
0xf1061221,
0xf41388e7,
0x37f07f21,
0x3421f501,
0x88e7f106,
0x7f21f413,
/* 0x073a: i2c_bitw */
0x21f500f8,
0xe7f10634,
0x21f403e8,
0x0076bb7f,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b60629, 0x64b60686,
0x1f11f404, 0x1811f404,
/* 0x068c: i2c_start_send */
0xf50037f0,
0xf105d721,
0xf41388e7,
0x37f07f21,
0xb521f500,
0x88e7f105,
0x7f21f413,
/* 0x06a8: i2c_start_out */
/* 0x06aa: i2c_stop */
0x37f000f8,
0xb521f500,
0x0037f005,
0x05d721f5,
0x03e8e7f1,
0xf07f21f4,
0x21f50137,
0xe7f105b5,
0x21f41388,
0x0137f07f,
0x05d721f5,
0x1388e7f1, 0x1388e7f1,
0xf87f21f4, 0xf07f21f4,
/* 0x06dd: i2c_bitw */
0xd721f500,
0xe8e7f105,
0x7f21f403,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
0x2921f550,
0x0464b606,
0xf11811f4,
0xf41388e7,
0x37f07f21,
0xb521f500,
0x88e7f105,
0x7f21f413,
/* 0x071c: i2c_bitw_out */
/* 0x071e: i2c_bitr */
0x37f000f8,
0xd721f501,
0xe8e7f105,
0x7f21f403,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
0x2921f550,
0x0464b606,
0xf51b11f4,
0xf0061121,
0x21f50037, 0x21f50037,
0xe7f105b5, 0xe7f10612,
0x21f41388, 0x21f41388,
0x013cf07f, /* 0x0779: i2c_bitw_out */
/* 0x0763: i2c_bitr_done */ /* 0x077b: i2c_bitr */
0xf80131f4, 0xf000f87f,
/* 0x0765: i2c_get_byte */ 0x21f50137,
0x0057f000, 0xe7f10634,
/* 0x076b: i2c_get_byte_next */ 0x21f403e8,
0xb60847f0, 0x0076bb7f,
0x76bb0154,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
0xb6071e21,
0x11f40464,
0x0553fd2b,
0xf40142b6,
0x37f0d81b,
0x0076bb01,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b606dd, 0x64b60686,
/* 0x07b5: i2c_get_byte_done */ 0x1b11f404,
/* 0x07b7: i2c_put_byte */ 0x066e21f5,
0xf000f804, 0xf50037f0,
/* 0x07ba: i2c_put_byte_next */ 0xf1061221,
0x42b60847, 0xf41388e7,
0x3854ff01, 0x3cf07f21,
0xb60076bb, 0x0131f401,
0x50f90465, /* 0x07c0: i2c_bitr_done */
0xbb046594, /* 0x07c2: i2c_get_byte */
0x50bd0256, 0x57f000f8,
0xfc0475fd, 0x0847f000,
0xdd21f550, /* 0x07c8: i2c_get_byte_next */
0x0464b606, 0xbb0154b6,
0xb03411f4, 0x65b60076,
0x1bf40046, 0x9450f904,
0x0076bbd8, 0x56bb0465,
0xfd50bd02,
0x50fc0475,
0x077b21f5,
0xf40464b6,
0x53fd2b11,
0x0142b605,
0xf0d81bf4,
0x76bb0137,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
0xb6073a21,
/* 0x0812: i2c_get_byte_done */
0x00f80464,
/* 0x0814: i2c_put_byte */
/* 0x0817: i2c_put_byte_next */
0xb60847f0,
0x54ff0142,
0x0076bb38,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b6071e, 0x64b6073a,
0x0f11f404, 0x3411f404,
0xb00076bb, 0xf40046b0,
0x1bf40136, 0x76bbd81b,
0x0132f406,
/* 0x0810: i2c_put_byte_done */
/* 0x0812: i2c_addr */
0x76bb00f8,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0xf550fc04, 0xf550fc04,
0xb6064e21, 0xb6077b21,
0x11f40464, 0x11f40464,
0x2ec3e729, 0x0076bb0f,
0x0134b601, 0xf40136b0,
0xbb0553fd, 0x32f4061b,
/* 0x086d: i2c_put_byte_done */
/* 0x086f: i2c_addr */
0xbb00f801,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x07b721f5, 0x06ab21f5,
/* 0x0857: i2c_addr_done */ 0xf40464b6,
0xf80464b6, 0xc3e72911,
/* 0x0859: i2c_acquire_addr */ 0x34b6012e,
0xf8cec700, 0x0553fd01,
0xb702e4b6,
0x980bfce0,
0x00f800ee,
/* 0x0868: i2c_acquire */
0x085921f5,
0xf00421f4,
0x21f403d9,
/* 0x0877: i2c_release */
0xf500f83f,
0xf4085921,
0xdaf00421,
0x3f21f403,
/* 0x0886: i2c_recv */
0x32f400f8,
0xf8c1c701,
0xb00214b6,
0x1ff52816,
0x13a0013a,
0x32980bd4,
0xac13a000,
0x0031980b,
0xf90231f4,
0xf9e0f9d0,
0x0067f1d0,
0x0063f100,
0x01679210,
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x6821f550, 0x1421f550,
0x0464b608, 0x0464b608,
0xd6b0d0fc, /* 0x08b4: i2c_addr_done */
0xb31bf500, /* 0x08b6: i2c_acquire_addr */
0x0057f000, 0xcec700f8,
0x02e4b6f8,
0x0bfce0b7,
0xf800ee98,
/* 0x08c5: i2c_acquire */
0xb621f500,
0x0421f408,
0xf403d9f0,
0x00f83f21,
/* 0x08d4: i2c_release */
0x08b621f5,
0xf00421f4,
0x21f403da,
/* 0x08e3: i2c_recv */
0xf400f83f,
0xc1c70132,
0x0214b6f8,
0xf52816b0,
0xa0013a1f,
0x980bd413,
0x13a00032,
0x31980bac,
0x0231f400,
0xe0f9d0f9,
0x67f1d0f9,
0x63f10000,
0x67921000,
0x0076bb01,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b608c5,
0xb0d0fc04,
0x1bf500d6,
0x57f000b3,
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b6086f,
0xd011f504,
0xe0c5c700,
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x1221f550, 0x1421f550,
0x0464b608, 0x0464b608,
0x00d011f5, 0x00ad11f5,
0xbbe0c5c7, 0xbb0157f0,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x07b721f5, 0x086f21f5,
0xf50464b6, 0xf50464b6,
0xf000ad11, 0xbb008a11,
0x76bb0157, 0x65b60076,
0x0465b600, 0x9450f904,
0x659450f9, 0x56bb0465,
0x0256bb04, 0xfd50bd02,
0x75fd50bd, 0x50fc0475,
0xf550fc04, 0x07c221f5,
0xb6081221, 0xf40464b6,
0x11f50464, 0x5bcb6a11,
0x76bb008a, 0x0076bbe0,
0x0465b600, 0xf90465b6,
0x659450f9, 0x04659450,
0x0256bb04, 0xbd0256bb,
0x75fd50bd, 0x0475fd50,
0xf550fc04, 0x21f550fc,
0xb6076521, 0x64b60707,
0x11f40464, 0x025bb904,
0xe05bcb6a, 0x0ef474bd,
0xb60076bb, /* 0x09e9: i2c_recv_not_rd08 */
0x50f90465, 0x01d6b043,
0xbb046594, 0xf03d1bf4,
0x50bd0256, 0x21f50057,
0xfc0475fd, 0x11f4086f,
0xaa21f550, 0xe0c5c733,
0x0464b606, 0x081421f5,
0xbd025bb9, 0xf02911f4,
0x430ef474, 0x21f50057,
/* 0x098c: i2c_recv_not_rd08 */ 0x11f4086f,
0xf401d6b0, 0xe0b5c71f,
0x57f03d1b, 0x081421f5,
0x1221f500, 0xf51511f4,
0x3311f408, 0xbd070721,
0xf5e0c5c7, 0x08c5c774,
0xf407b721, 0xf4091bf4,
0x57f02911, 0x0ef40232,
0x1221f500, /* 0x0a29: i2c_recv_not_wr08 */
0x1f11f408, /* 0x0a29: i2c_recv_done */
0xf5e0b5c7, 0xf8cec703,
0xf407b721, 0x08d421f5,
0x21f51511, 0xd0fce0fc,
0x74bd06aa, 0xb90a12f4,
0xf408c5c7, 0x21f5027c,
0x32f4091b, /* 0x0a3e: i2c_recv_exit */
0x030ef402, 0x00f80332,
/* 0x09cc: i2c_recv_not_wr08 */ /* 0x0a40: i2c_init */
/* 0x09cc: i2c_recv_done */ /* 0x0a42: test_recv */
0xf5f8cec7, 0x17f100f8,
0xfc087721, 0x14b605d8,
0xf4d0fce0, 0x0011cf06,
0x7cb90a12, 0xf10110b6,
0xd521f502, 0xb605d807,
/* 0x09e1: i2c_recv_exit */ 0x01d00604,
/* 0x09e3: i2c_init */ 0xf104bd00,
0xf1d900e7,
0xf5134fe3,
0xf8025221,
/* 0x0a69: test_init */
0x00e7f100,
0x5221f508,
/* 0x0a73: idle_recv */
0xf800f802, 0xf800f802,
/* 0x09e5: test_recv */ /* 0x0a75: idle */
0xd817f100, 0x0031f400,
0x0614b605, 0x05d417f1,
0xb60011cf, 0xcf0614b6,
0x07f10110, 0x10b60011,
0x04b605d8, 0xd407f101,
0x0001d006, 0x0604b605,
0xe7f104bd, 0xbd0001d0,
0xe3f1d900, /* 0x0a91: idle_loop */
0x21f5134f, 0x5817f004,
0x00f801f5, /* 0x0a97: idle_proc */
/* 0x0a0c: test_init */ /* 0x0a97: idle_proc_exec */
0x0800e7f1, 0xf90232f4,
0x01f521f5, 0x021eb910,
/* 0x0a16: idle_recv */ 0x033b21f5,
0x00f800f8, 0x11f410fc,
/* 0x0a18: idle */ 0x0231f409,
0xf10031f4, /* 0x0aab: idle_proc_next */
0xb605d417, 0xb6ef0ef4,
0x11cf0614, 0x1fb85810,
0x0110b600, 0xe61bf406,
0x05d407f1, 0xf4dd02f4,
0xd00604b6, 0x0ef40028,
0x04bd0001, 0x000000bb,
/* 0x0a34: idle_loop */
0xf45817f0,
/* 0x0a3a: idle_proc */
/* 0x0a3a: idle_proc_exec */
0x10f90232,
0xf5021eb9,
0xfc02de21,
0x0911f410,
0xf40231f4,
/* 0x0a4e: idle_proc_next */
0x10b6ef0e,
0x061fb858,
0xf4e61bf4,
0x28f4dd02,
0xbb0ef400,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
#define NVKM_PPWR_CHIPSET GF119 #define NVKM_PPWR_CHIPSET GF119
#define HW_TICKS_PER_US 324
//#define NVKM_FALCON_PC24 //#define NVKM_FALCON_PC24
#define NVKM_FALCON_UNSHIFTED_IO #define NVKM_FALCON_UNSHIFTED_IO
......
...@@ -24,8 +24,8 @@ uint32_t nvd0_pwr_data[] = { ...@@ -24,8 +24,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000, 0x00000000,
/* 0x0058: proc_list_head */ /* 0x0058: proc_list_head */
0x54534f48, 0x54534f48,
0x00000428, 0x00000485,
0x000003d1, 0x0000042e,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -46,8 +46,8 @@ uint32_t nvd0_pwr_data[] = { ...@@ -46,8 +46,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x584d454d, 0x584d454d,
0x00000522, 0x0000057f,
0x00000514, 0x00000571,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -68,8 +68,8 @@ uint32_t nvd0_pwr_data[] = { ...@@ -68,8 +68,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x46524550, 0x46524550,
0x00000526, 0x00000583,
0x00000524, 0x00000581,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -90,8 +90,8 @@ uint32_t nvd0_pwr_data[] = { ...@@ -90,8 +90,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x5f433249, 0x5f433249,
0x00000941, 0x0000099e,
0x000007e4, 0x00000841,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -112,8 +112,8 @@ uint32_t nvd0_pwr_data[] = { ...@@ -112,8 +112,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x54534554, 0x54534554,
0x00000964, 0x000009c1,
0x00000943, 0x000009a0,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -134,8 +134,8 @@ uint32_t nvd0_pwr_data[] = { ...@@ -134,8 +134,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x454c4449, 0x454c4449,
0x00000970, 0x000009cd,
0x0000096e, 0x000009cb,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
...@@ -229,20 +229,20 @@ uint32_t nvd0_pwr_data[] = { ...@@ -229,20 +229,20 @@ uint32_t nvd0_pwr_data[] = {
/* 0x0370: memx_func_head */ /* 0x0370: memx_func_head */
0x00010000, 0x00010000,
0x00000000, 0x00000000,
0x0000045e, 0x000004bb,
/* 0x037c: memx_func_next */ /* 0x037c: memx_func_next */
0x00000001, 0x00000001,
0x00000000, 0x00000000,
0x0000047f, 0x000004dc,
0x00000002, 0x00000002,
0x00000002, 0x00000002,
0x0000049a, 0x000004f7,
0x00040003, 0x00040003,
0x00000000, 0x00000000,
0x000004b6, 0x00000513,
0x00010004, 0x00010004,
0x00000000, 0x00000000,
0x000004d0, 0x0000052d,
/* 0x03ac: memx_func_tail */ /* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */ /* 0x03ac: memx_data_head */
0x00000000, 0x00000000,
...@@ -784,7 +784,7 @@ uint32_t nvd0_pwr_data[] = { ...@@ -784,7 +784,7 @@ uint32_t nvd0_pwr_data[] = {
}; };
uint32_t nvd0_pwr_code[] = { uint32_t nvd0_pwr_code[] = {
0x02d80ef5, 0x03350ef5,
/* 0x0004: rd32 */ /* 0x0004: rd32 */
0x07a007f1, 0x07a007f1,
0xbd000ed0, 0xbd000ed0,
...@@ -841,7 +841,7 @@ uint32_t nvd0_pwr_code[] = { ...@@ -841,7 +841,7 @@ uint32_t nvd0_pwr_code[] = {
0xbb9a0a98, 0xbb9a0a98,
0x1cf4029a, 0x1cf4029a,
0x01d7f00f, 0x01d7f00f,
0x021f21f5, 0x027c21f5,
0x0ef494bd, 0x0ef494bd,
/* 0x00c5: intr_watchdog_next_time */ /* 0x00c5: intr_watchdog_next_time */
0x9b0a9815, 0x9b0a9815,
...@@ -889,7 +889,7 @@ uint32_t nvd0_pwr_code[] = { ...@@ -889,7 +889,7 @@ uint32_t nvd0_pwr_code[] = {
0xf14f48e7, 0xf14f48e7,
0xf05453e3, 0xf05453e3,
0x21f500d7, 0x21f500d7,
0xc0fc0284, 0xc0fc02e1,
0x04c007f1, 0x04c007f1,
0xbd000cd0, 0xbd000cd0,
/* 0x0175: intr_subintr_skip_fifo */ /* 0x0175: intr_subintr_skip_fifo */
...@@ -912,597 +912,666 @@ uint32_t nvd0_pwr_code[] = { ...@@ -912,597 +912,666 @@ uint32_t nvd0_pwr_code[] = {
0xfca0fcb0, 0xfca0fcb0,
0xfc80fc90, 0xfc80fc90,
0x0032f400, 0x0032f400,
/* 0x01b6: timer */ /* 0x01b6: ticks_from_ns */
0x90f901f8, 0xc0f901f8,
0x32f480f9, 0xd7f1b0f9,
0x03f89810, 0xd3f00144,
0xf40086b0, 0x9b21f500,
0x84bd531c, 0xe8ccec03,
0xd03807f0, 0x00b4b003,
0x04bd0008, 0xec120bf4,
0xcf3487f0, 0xf103e8ee,
0x09980088, 0xf00144d7,
0x0298bb9a, 0x21f500d3,
0x8000e9bb, /* 0x01de: ticks_from_ns_quit */
0x87f003fe, 0xceb9039b,
0x0088cf08, 0xfcb0fc02,
0xf40284f0, /* 0x01e7: ticks_from_us */
0x87f0201b, 0xf900f8c0,
0x0088cf34, 0xf1b0f9c0,
0xf406e0b8, 0xf00144d7,
0xe8b8090b, 0x21f500d3,
0x0e1cf406, 0xceb9039b,
/* 0x0200: timer_reset */ 0x00b4b002,
0xd03407f0, 0xbd050bf4,
0x04bd000e, /* 0x0201: ticks_from_us_quit */
/* 0x020b: timer_enable */ 0xfcb0fce4,
0xf09a0e80, /* 0x0207: ticks_to_us */
0x07f00187, 0xf100f8c0,
0x0008d038, 0xf00144d7,
/* 0x0216: timer_done */ 0xedff00d3,
0x31f404bd, /* 0x0213: timer */
0xfc80fc10, 0xf900f8ec,
/* 0x021f: send_proc */ 0xf480f990,
0xf900f890, 0xf8981032,
0x9890f980, 0x0086b003,
0xe99805e8, 0xbd531cf4,
0x0486f004, 0x3807f084,
0xf40689b8, 0xbd0008d0,
0x98c42a0b, 0x3487f004,
0x04889403, 0x980088cf,
0xbb1880b6, 0x98bb9a09,
0xfa98008e, 0x00e9bb02,
0x008a8000, 0xf003fe80,
0x80018d80, 0x88cf0887,
0x8b80028c, 0x0284f000,
0x0190b603, 0xf0201bf4,
0x800794f0, 0x88cf3487,
0x31f404e9, 0x06e0b800,
/* 0x0259: send_done */ 0xb8090bf4,
0xfc90fc02, 0x1cf406e8,
/* 0x025f: find */ /* 0x025d: timer_reset */
0xf900f880, 0x3407f00e,
0x5887f080, 0xbd000ed0,
/* 0x0267: find_loop */ 0x9a0e8004,
0x980131f4, /* 0x0268: timer_enable */
0xaeb8008a, 0xf00187f0,
0x100bf406, 0x08d03807,
0xb15880b6, /* 0x0273: timer_done */
0xf4026886, 0xf404bd00,
0x32f4f01b, 0x80fc1031,
/* 0x027d: find_done */ 0x00f890fc,
0x028eb901, /* 0x027c: send_proc */
0x90f980f9,
0x9805e898,
0x86f004e9,
0x0689b804,
0xc42a0bf4,
0x88940398,
0x1880b604,
0x98008ebb,
0x8a8000fa,
0x018d8000,
0x80028c80,
0x90b6038b,
0x0794f001,
0xf404e980,
/* 0x02b6: send_done */
0x90fc0231,
0x00f880fc, 0x00f880fc,
/* 0x0284: send */ /* 0x02bc: find */
0x025f21f5, 0x87f080f9,
0xf89701f4, 0x0131f458,
/* 0x028d: recv */ /* 0x02c4: find_loop */
0x05e89800, 0xb8008a98,
0xf404e998, 0x0bf406ae,
0x89b80132, 0x5880b610,
0x3d0bf406, 0x026886b1,
0xb60389c4, 0xf4f01bf4,
0x84f00180, /* 0x02da: find_done */
0x05e88007, 0x8eb90132,
0xf902ea98, 0xf880fc02,
0x018ffef0, /* 0x02e1: send */
0xefb9f0f9, 0xbc21f500,
0x04999402, 0x9701f402,
0xb600e9bb, /* 0x02ea: recv */
0xeb9818e0, 0xe89800f8,
0x02ec9803, 0x04e99805,
0x9801ed98, 0xb80132f4,
0xa5f900ee, 0x0bf40689,
0xf8fef0fc, 0x0389c43d,
0x0131f400, 0xf00180b6,
/* 0x02d6: recv_done */ 0xe8800784,
0x00f8f0fc, 0x02ea9805,
/* 0x02d8: init */ 0x8ffef0f9,
0x010817f1, 0xb9f0f901,
0xe70011cf, 0x999402ef,
0xb6010911, 0x00e9bb04,
0x14fe0814, 0x9818e0b6,
0xe017f100, 0xec9803eb,
0x0013f000, 0x01ed9802,
0xd01c07f0, 0xf900ee98,
0xfef0fca5,
0x31f400f8,
/* 0x0333: recv_done */
0xf8f0fc01,
/* 0x0335: init */
0x0817f100,
0x0011cf01,
0x010911e7,
0xfe0814b6,
0x17f10014,
0x13f000e0,
0x1c07f000,
0xbd0001d0,
0xff17f004,
0xd01407f0,
0x04bd0001, 0x04bd0001,
0xf0ff17f0, 0xf10217f0,
0x01d01407, 0xf0080015,
0xf004bd00, 0x01d01007,
0x15f10217, 0xf104bd00,
0x07f00800, 0xf000e617,
0x0001d010, 0x10fe0013,
0x17f104bd, 0x1031f400,
0x13f000e6, 0xf00117f0,
0x0010fe00, 0x01d03807,
0xf01031f4,
0x07f00117,
0x0001d038,
0xf7f004bd,
/* 0x032d: init_proc */
0x01f19858,
0xf40016b0,
0x15f9fa0b,
0xf458f0b6,
/* 0x033e: mulu32_32_64 */
0x10f9f20e,
0x30f920f9,
0xe19540f9,
0x10d29510,
0xb4bdc4bd,
0xffc0edff,
0x34b9301d,
0xff34f102,
0x1034b6ff,
0xbb1045b6,
0xb4bb00c3,
0x30e2ff01,
0xf10234b9,
0xb6ffff34,
0x45b61034,
0x00c3bb10,
0xff01b4bb,
0xb3bb3012,
0xfc40fc00,
0xfc20fc30,
/* 0x038f: host_send */
0xf100f810,
0xcf04b017,
0x27f10011,
0x22cf04a0,
0x0612b800,
0xc42f0bf4,
0xee94071e,
0x70e0b704,
0x03eb9802,
0x9802ec98,
0xee9801ed,
0x8421f500,
0x0110b602,
0xf10f1ec4,
0xd004b007,
0x04bd000e,
/* 0x03cf: host_send_done */
0xf8c30ef4,
/* 0x03d1: host_recv */
0x4917f100,
0x5413f14e,
0x06e1b852,
/* 0x03df: host_recv_wait */
0xf1b30bf4,
0xcf04cc17,
0x27f10011,
0x22cf04c8,
0x0816f000,
0xf40612b8,
0x23c4ec0b,
0x0434b607,
0x02f030b7,
0x80033b80,
0x3d80023c,
0x003e8001,
0xf00120b6,
0x07f10f24,
0x02d004c8,
0xf004bd00, 0xf004bd00,
0x07f04027, /* 0x038a: init_proc */
0x0002d000, 0xf19858f7,
0x00f804bd, 0x0016b001,
/* 0x0428: host_init */ 0xf9fa0bf4,
0x008017f1, 0x58f0b615,
0xf11014b6, /* 0x039b: mulu32_32_64 */
0xf1027015, 0xf9f20ef4,
0xd004d007, 0xf920f910,
0x04bd0001, 0x9540f930,
0x008017f1, 0xd29510e1,
0xf11014b6, 0xbdc4bd10,
0xf102f015, 0xc0edffb4,
0xd004dc07, 0xb9301dff,
0x04bd0001, 0x34f10234,
0xf10117f0, 0x34b6ffff,
0xd004c407, 0x1045b610,
0x04bd0001, 0xbb00c3bb,
/* 0x045e: memx_func_enter */ 0xe2ff01b4,
0x67f000f8, 0x0234b930,
0xe007f104, 0xffff34f1,
0x0006d007, 0xb61034b6,
/* 0x046a: memx_func_enter_wait */ 0xc3bb1045,
0x67f104bd, 0x01b4bb00,
0x66cf07c0, 0xbb3012ff,
0x0464f000, 0x40fc00b3,
0x98f60bf4, 0x20fc30fc,
0x10b60016, 0x00f810fc,
/* 0x047f: memx_func_leave */ /* 0x03ec: host_send */
0x04b017f1,
0xf10011cf,
0xcf04a027,
0x12b80022,
0x2f0bf406,
0x94071ec4,
0xe0b704ee,
0xeb980270,
0x02ec9803,
0x9801ed98,
0x21f500ee,
0x10b602e1,
0x0f1ec401,
0x04b007f1,
0xbd000ed0,
0xc30ef404,
/* 0x042c: host_send_done */
/* 0x042e: host_recv */
0x17f100f8,
0x13f14e49,
0xe1b85254,
0xb30bf406,
/* 0x043c: host_recv_wait */
0x04cc17f1,
0xf10011cf,
0xcf04c827,
0x16f00022,
0x0612b808,
0xc4ec0bf4,
0x34b60723,
0xf030b704,
0x033b8002,
0x80023c80,
0x3e80013d,
0x0120b600,
0xf10f24f0,
0xd004c807,
0x04bd0002,
0xf04027f0,
0x02d00007,
0xf804bd00,
/* 0x0485: host_init */
0x8017f100,
0x1014b600,
0x027015f1,
0x04d007f1,
0xbd0001d0,
0x8017f104,
0x1014b600,
0x02f015f1,
0x04dc07f1,
0xbd0001d0,
0x0117f004,
0x04c407f1,
0xbd0001d0,
/* 0x04bb: memx_func_enter */
0xf000f804, 0xf000f804,
0x07f10467, 0x07f10467,
0x06d007e4, 0x06d007e0,
/* 0x048b: memx_func_leave_wait */ /* 0x04c7: memx_func_enter_wait */
0xf104bd00, 0xf104bd00,
0xcf07c067, 0xcf07c067,
0x64f00066, 0x64f00066,
0xf61bf404, 0xf60bf404,
/* 0x049a: memx_func_wr32 */ 0xb6001698,
0x169800f8, 0x00f80410,
0x01159800, /* 0x04dc: memx_func_leave */
0xf90810b6, 0xf10467f0,
0xfc50f960, 0xd007e407,
0xf4e0fcd0, 0x04bd0006,
0x42b63321, /* 0x04e8: memx_func_leave_wait */
0xe91bf402, 0x07c067f1,
/* 0x04b6: memx_func_wait */ 0xf00066cf,
0x87f000f8, 0x1bf40464,
0x0088cf2c, /* 0x04f7: memx_func_wr32 */
0x98001e98, 0x9800f8f6,
0x1c98011d, 0x15980016,
0x031b9802, 0x0810b601,
0xf41010b6, 0x50f960f9,
0x00f87e21,
/* 0x04d0: memx_func_delay */
0xb6001e98,
0x21f40410,
/* 0x04db: memx_exec */
0xf900f867,
0xb9d0f9e0,
0xb2b902c1,
/* 0x04e5: memx_exec_next */
0x00139802,
0x950410b6,
0x30f01034,
0xde35980c,
0x12b855f9,
0xec1ef406,
0xe0fcd0fc, 0xe0fcd0fc,
0x028421f5, 0xb63321f4,
/* 0x0506: memx_info */ 0x1bf40242,
0xc7f100f8, /* 0x0513: memx_func_wait */
0xb7f103ac, 0xf000f8e9,
0x21f50800, 0x88cf2c87,
0x00f80284, 0x001e9800,
/* 0x0514: memx_recv */ 0x98011d98,
0xf401d6b0, 0x1b98021c,
0xd6b0c40b, 0x1010b603,
0xe90bf400, 0xf87e21f4,
/* 0x0522: memx_init */ /* 0x052d: memx_func_delay */
0x00f800f8, 0x001e9800,
/* 0x0524: perf_recv */ 0xf40410b6,
/* 0x0526: perf_init */ 0x00f86721,
0x00f800f8, /* 0x0538: memx_exec */
/* 0x0528: i2c_drive_scl */ 0xd0f9e0f9,
0xf40036b0, 0xb902c1b9,
0x07f10e0b, /* 0x0542: memx_exec_next */
0x01d007e0, 0x139802b2,
0x0410b600,
0xf0103495,
0x35980c30,
0xb855f9de,
0x1ef40612,
0xfcd0fcec,
0xe121f5e0,
/* 0x0563: memx_info */
0xf100f802,
0xf103acc7,
0xf50800b7,
0xf802e121,
/* 0x0571: memx_recv */
0x01d6b000,
0xb0c40bf4,
0x0bf400d6,
/* 0x057f: memx_init */
0xf800f8e9,
/* 0x0581: perf_recv */
/* 0x0583: perf_init */
0xf800f800,
/* 0x0585: i2c_drive_scl */
0x0036b000,
0xf10e0bf4,
0xd007e007,
0x04bd0001,
/* 0x0596: i2c_drive_scl_lo */
0x07f100f8,
0x01d007e4,
0xf804bd00, 0xf804bd00,
/* 0x0539: i2c_drive_scl_lo */ /* 0x05a1: i2c_drive_sda */
0xe407f100, 0x0036b000,
0x0001d007, 0xf10e0bf4,
0x00f804bd, 0xd007e007,
/* 0x0544: i2c_drive_sda */ 0x04bd0002,
0xf40036b0, /* 0x05b2: i2c_drive_sda_lo */
0x07f10e0b, 0x07f100f8,
0x02d007e0, 0x02d007e4,
0xf804bd00, 0xf804bd00,
/* 0x0555: i2c_drive_sda_lo */ /* 0x05bd: i2c_sense_scl */
0xe407f100,
0x0002d007,
0x00f804bd,
/* 0x0560: i2c_sense_scl */
0xf10132f4,
0xcf07c437,
0x31fd0033,
0x060bf404,
/* 0x0573: i2c_sense_scl_done */
0xf80131f4,
/* 0x0575: i2c_sense_sda */
0x0132f400, 0x0132f400,
0x07c437f1, 0x07c437f1,
0xfd0033cf, 0xfd0033cf,
0x0bf40432, 0x0bf40431,
0x0131f406, 0x0131f406,
/* 0x0588: i2c_sense_sda_done */ /* 0x05d0: i2c_sense_scl_done */
/* 0x058a: i2c_raise_scl */ /* 0x05d2: i2c_sense_sda */
0x40f900f8, 0x32f400f8,
0x089847f1, 0xc437f101,
0x0033cf07,
0xf40432fd,
0x31f4060b,
/* 0x05e5: i2c_sense_sda_done */
/* 0x05e7: i2c_raise_scl */
0xf900f801,
0x9847f140,
0x0137f008,
0x058521f5,
/* 0x05f4: i2c_raise_scl_wait */
0x03e8e7f1,
0xf56721f4,
0xf405bd21,
0x42b60901,
0xef1bf401,
/* 0x0608: i2c_raise_scl_done */
0x00f840fc,
/* 0x060c: i2c_start */
0x05bd21f5,
0xf50d11f4,
0xf405d221,
0x0ef40611,
/* 0x061d: i2c_start_rep */
0x0037f030,
0x058521f5,
0xf50137f0, 0xf50137f0,
/* 0x0597: i2c_raise_scl_wait */ 0xbb05a121,
0xf1052821, 0x65b60076,
0xf403e8e7, 0x9450f904,
0x21f56721, 0x56bb0465,
0x01f40560, 0xfd50bd02,
0x0142b609, 0x50fc0475,
/* 0x05ab: i2c_raise_scl_done */ 0x05e721f5,
0xfcef1bf4, 0xf40464b6,
/* 0x05af: i2c_start */ /* 0x064a: i2c_start_send */
0xf500f840, 0x37f01f11,
0xf4056021, 0xa121f500,
0x21f50d11, 0x88e7f105,
0x11f40575, 0x6721f413,
0x300ef406,
/* 0x05c0: i2c_start_rep */
0xf50037f0, 0xf50037f0,
0xf0052821, 0xf1058521,
0xf41388e7,
/* 0x0666: i2c_start_out */
0x00f86721,
/* 0x0668: i2c_stop */
0xf50037f0,
0xf0058521,
0x21f50037,
0xe7f105a1,
0x21f403e8,
0x0137f067,
0x058521f5,
0x1388e7f1,
0xf06721f4,
0x21f50137, 0x21f50137,
0x76bb0544, 0xe7f105a1,
0x21f41388,
/* 0x069b: i2c_bitw */
0xf500f867,
0xf105a121,
0xf403e8e7,
0x76bb6721,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0xf550fc04, 0xf550fc04,
0xb6058a21, 0xb605e721,
0x11f40464, 0x11f40464,
/* 0x05ed: i2c_start_send */ 0x88e7f118,
0x0037f01f,
0x054421f5,
0x1388e7f1,
0xf06721f4,
0x21f50037,
0xe7f10528,
0x21f41388,
/* 0x0609: i2c_start_out */
/* 0x060b: i2c_stop */
0xf000f867,
0x21f50037,
0x37f00528,
0x4421f500,
0xe8e7f105,
0x6721f403,
0xf50137f0,
0xf1052821,
0xf41388e7,
0x37f06721,
0x4421f501,
0x88e7f105,
0x6721f413, 0x6721f413,
/* 0x063e: i2c_bitw */
0x21f500f8,
0xe7f10544,
0x21f403e8,
0x0076bb67,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b6058a,
0x1811f404,
0x1388e7f1,
0xf06721f4,
0x21f50037,
0xe7f10528,
0x21f41388,
/* 0x067d: i2c_bitw_out */
/* 0x067f: i2c_bitr */
0xf000f867,
0x21f50137,
0xe7f10544,
0x21f403e8,
0x0076bb67,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b6058a,
0x1b11f404,
0x057521f5,
0xf50037f0, 0xf50037f0,
0xf1052821, 0xf1058521,
0xf41388e7, 0xf41388e7,
0x3cf06721, /* 0x06da: i2c_bitw_out */
0x0131f401, 0x00f86721,
/* 0x06c4: i2c_bitr_done */ /* 0x06dc: i2c_bitr */
/* 0x06c6: i2c_get_byte */ 0xf50137f0,
0x57f000f8, 0xf105a121,
0x0847f000, 0xf403e8e7,
/* 0x06cc: i2c_get_byte_next */ 0x76bb6721,
0xbb0154b6,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
0x067f21f5,
0xf40464b6,
0x53fd2b11,
0x0142b605,
0xf0d81bf4,
0x76bb0137,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0xf550fc04, 0xf550fc04,
0xb6063e21, 0xb605e721,
/* 0x0716: i2c_get_byte_done */ 0x11f40464,
0x00f80464, 0xd221f51b,
/* 0x0718: i2c_put_byte */ 0x0037f005,
/* 0x071b: i2c_put_byte_next */ 0x058521f5,
0xb60847f0, 0x1388e7f1,
0x54ff0142, 0xf06721f4,
0x0076bb38, 0x31f4013c,
0xf90465b6, /* 0x0721: i2c_bitr_done */
0x04659450, /* 0x0723: i2c_get_byte */
0xbd0256bb, 0xf000f801,
0x0475fd50, 0x47f00057,
0x21f550fc, /* 0x0729: i2c_get_byte_next */
0x64b6063e, 0x0154b608,
0x3411f404, 0xb60076bb,
0xf40046b0, 0x50f90465,
0x76bbd81b, 0xbb046594,
0x50bd0256,
0xfc0475fd,
0xdc21f550,
0x0464b606,
0xfd2b11f4,
0x42b60553,
0xd81bf401,
0xbb0137f0,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
0x069b21f5,
/* 0x0773: i2c_get_byte_done */
0xf80464b6,
/* 0x0775: i2c_put_byte */
0x0847f000,
/* 0x0778: i2c_put_byte_next */
0xff0142b6,
0x76bb3854,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0xf550fc04, 0xf550fc04,
0xb6067f21, 0xb6069b21,
0x11f40464, 0x11f40464,
0x0076bb0f, 0x0046b034,
0xf40136b0, 0xbbd81bf4,
0x32f4061b,
/* 0x0771: i2c_put_byte_done */
/* 0x0773: i2c_addr */
0xbb00f801,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x05af21f5, 0x06dc21f5,
0xf40464b6, 0xf40464b6,
0xc3e72911, 0x76bb0f11,
0x34b6012e, 0x0136b000,
0x0553fd01, 0xf4061bf4,
/* 0x07ce: i2c_put_byte_done */
0x00f80132,
/* 0x07d0: i2c_addr */
0xb60076bb, 0xb60076bb,
0x50f90465, 0x50f90465,
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x1821f550, 0x0c21f550,
0x0464b607, 0x0464b606,
/* 0x07b8: i2c_addr_done */ 0xe72911f4,
/* 0x07ba: i2c_acquire_addr */ 0xb6012ec3,
0xcec700f8, 0x53fd0134,
0x05e4b6f8, 0x0076bb05,
0xd014e0b7, 0xf90465b6,
/* 0x07c6: i2c_acquire */ 0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
0x64b60775,
/* 0x0815: i2c_addr_done */
/* 0x0817: i2c_acquire_addr */
0xc700f804,
0xe4b6f8ce,
0x14e0b705,
/* 0x0823: i2c_acquire */
0xf500f8d0,
0xf4081721,
0xd9f00421,
0x3321f403,
/* 0x0832: i2c_release */
0x21f500f8, 0x21f500f8,
0x21f407ba, 0x21f40817,
0x03d9f004, 0x03daf004,
0xf83321f4, 0xf83321f4,
/* 0x07d5: i2c_release */ /* 0x0841: i2c_recv */
0xba21f500, 0x0132f400,
0x0421f407, 0xb6f8c1c7,
0xf403daf0, 0x16b00214,
0x00f83321, 0x3a1ff528,
/* 0x07e4: i2c_recv */ 0xd413a001,
0xc70132f4, 0x0032980b,
0x14b6f8c1, 0x0bac13a0,
0x2816b002, 0xf4003198,
0x013a1ff5, 0xd0f90231,
0x0bd413a0, 0xd0f9e0f9,
0xa0003298, 0x000067f1,
0x980bac13, 0x100063f1,
0x31f40031, 0xbb016792,
0xf9d0f902, 0x65b60076,
0xf1d0f9e0, 0x9450f904,
0xf1000067, 0x56bb0465,
0x92100063, 0xfd50bd02,
0x76bb0167, 0x50fc0475,
0x0465b600, 0x082321f5,
0x659450f9, 0xfc0464b6,
0x0256bb04, 0x00d6b0d0,
0x75fd50bd, 0x00b31bf5,
0xf550fc04, 0xbb0057f0,
0xb607c621, 0x65b60076,
0xd0fc0464, 0x9450f904,
0xf500d6b0, 0x56bb0465,
0xf000b31b, 0xfd50bd02,
0x76bb0057, 0x50fc0475,
0x07d021f5,
0xf50464b6,
0xc700d011,
0x76bbe0c5,
0x0465b600, 0x0465b600,
0x659450f9, 0x659450f9,
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0xf550fc04, 0xf550fc04,
0xb6077321, 0xb6077521,
0x11f50464, 0x11f50464,
0xc5c700d0, 0x57f000ad,
0x0076bbe0, 0x0076bb01,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x21f550fc, 0x21f550fc,
0x64b60718, 0x64b607d0,
0xad11f504, 0x8a11f504,
0x0157f000, 0x0076bb00,
0xb60076bb, 0xf90465b6,
0x50f90465, 0x04659450,
0xbb046594, 0xbd0256bb,
0x50bd0256, 0x0475fd50,
0xfc0475fd, 0x21f550fc,
0x7321f550, 0x64b60723,
0x0464b607, 0x6a11f404,
0x008a11f5, 0xbbe05bcb,
0xb60076bb, 0x65b60076,
0x50f90465, 0x9450f904,
0xbb046594, 0x56bb0465,
0x50bd0256, 0xfd50bd02,
0xfc0475fd, 0x50fc0475,
0xc621f550, 0x066821f5,
0x0464b606, 0xb90464b6,
0xcb6a11f4, 0x74bd025b,
0x76bbe05b, /* 0x0947: i2c_recv_not_rd08 */
0x0465b600, 0xb0430ef4,
0x659450f9, 0x1bf401d6,
0x0256bb04, 0x0057f03d,
0x75fd50bd, 0x07d021f5,
0xf550fc04, 0xc73311f4,
0xb6060b21, 0x21f5e0c5,
0x5bb90464, 0x11f40775,
0xf474bd02, 0x0057f029,
/* 0x08ea: i2c_recv_not_rd08 */ 0x07d021f5,
0xd6b0430e, 0xc71f11f4,
0x3d1bf401, 0x21f5e0b5,
0xf50057f0, 0x11f40775,
0xf4077321, 0x6821f515,
0xc5c73311, 0xc774bd06,
0x1821f5e0, 0x1bf408c5,
0x2911f407, 0x0232f409,
0xf50057f0, /* 0x0987: i2c_recv_not_wr08 */
0xf4077321, /* 0x0987: i2c_recv_done */
0xb5c71f11, 0xc7030ef4,
0x1821f5e0, 0x21f5f8ce,
0x1511f407, 0xe0fc0832,
0x060b21f5, 0x12f4d0fc,
0xc5c774bd, 0x027cb90a,
0x091bf408, 0x02e121f5,
0xf40232f4, /* 0x099c: i2c_recv_exit */
/* 0x092a: i2c_recv_not_wr08 */ /* 0x099e: i2c_init */
/* 0x092a: i2c_recv_done */
0xcec7030e,
0xd521f5f8,
0xfce0fc07,
0x0a12f4d0,
0xf5027cb9,
/* 0x093f: i2c_recv_exit */
0xf8028421,
/* 0x0941: i2c_init */
/* 0x0943: test_recv */
0xf100f800,
0xcf05d817,
0x10b60011,
0xd807f101,
0x0001d005,
0xe7f104bd,
0xe3f1d900,
0x21f5134f,
0x00f801b6,
/* 0x0964: test_init */
0x0800e7f1,
0x01b621f5,
/* 0x096e: idle_recv */
0x00f800f8, 0x00f800f8,
/* 0x0970: idle */ /* 0x09a0: test_recv */
0xf10031f4, 0x05d817f1,
0xcf05d417, 0xb60011cf,
0x10b60011, 0x07f10110,
0xd407f101, 0x01d005d8,
0x0001d005, 0xf104bd00,
/* 0x0986: idle_loop */ 0xf1d900e7,
0x17f004bd, 0xf5134fe3,
0x0232f458, 0xf8021321,
/* 0x098c: idle_proc */ /* 0x09c1: test_init */
/* 0x098c: idle_proc_exec */ 0x00e7f100,
0x1eb910f9, 0x1321f508,
0x8d21f502, /* 0x09cb: idle_recv */
0xf410fc02, 0xf800f802,
0x31f40911, /* 0x09cd: idle */
0xef0ef402, 0x0031f400,
/* 0x09a0: idle_proc_next */ 0x05d417f1,
0xb85810b6, 0xb60011cf,
0x1bf4061f, 0x07f10110,
0xdd02f4e6, 0x01d005d4,
0xf40028f4, /* 0x09e3: idle_loop */
0x0000c10e, 0xf004bd00,
0x32f45817,
/* 0x09e9: idle_proc */
/* 0x09e9: idle_proc_exec */
0xb910f902,
0x21f5021e,
0x10fc02ea,
0xf40911f4,
0x0ef40231,
/* 0x09fd: idle_proc_next */
0x5810b6ef,
0xf4061fb8,
0x02f4e61b,
0x0028f4dd,
0x00c10ef4,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment