From: Martin Peres Date: Sun, 17 Aug 2014 15:33:12 +0000 (+0200) Subject: drm/nouveau/pwr: add helpers for delay-to-ticks and ticks-to-delay X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=d5837df18c0700699dccdfd84f5eb94913b188c6;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git drm/nouveau/pwr: add helpers for delay-to-ticks and ticks-to-delay Signed-off-by: Martin Peres Signed-off-by: Ben Skeggs --- diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc index dd86439ec853..54276c9d0800 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/kernel.fuc @@ -242,6 +242,80 @@ intr: bclr $flags $p0 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 // // $r15 - current diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc index cdff6f649286..b439519ec866 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GK208 +#define HW_TICKS_PER_US 324 #define NVKM_FALCON_PC24 #define NVKM_FALCON_UNSHIFTED_IO diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h index ae8850c76466..fe8dd23f5e3b 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc.h @@ -24,8 +24,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, /* 0x0058: proc_list_head */ 0x54534f48, - 0x000003e0, - 0x00000391, + 0x0000043b, + 0x000003ec, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x000004cb, - 0x000004bd, + 0x00000526, + 0x00000518, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x000004cf, - 0x000004cd, + 0x0000052a, + 0x00000528, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x000008d3, - 0x0000077a, + 0x0000092e, + 0x000007d5, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x000008f4, - 0x000008d5, + 0x0000094f, + 0x00000930, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x000008ff, - 0x000008fd, + 0x0000095a, + 0x00000958, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x00000410, + 0x0000046b, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x0000042e, + 0x00000489, 0x00000002, 0x00000002, - 0x00000446, + 0x000004a1, 0x00040003, 0x00000000, - 0x00000463, + 0x000004be, 0x00010004, 0x00000000, - 0x0000047d, + 0x000004d8, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -784,7 +784,7 @@ uint32_t nv108_pwr_data[] = { }; uint32_t nv108_pwr_code[] = { - 0x02a90ef5, + 0x03040ef5, /* 0x0004: rd32 */ 0xf607a040, 0x04bd000e, @@ -836,7 +836,7 @@ uint32_t nv108_pwr_code[] = { 0x0a98280b, 0x029abb9a, 0x0d0e1cf4, - 0x01f67e01, + 0x02517e01, 0xf494bd00, /* 0x00b2: intr_watchdog_next_time */ 0x0a98140e, @@ -881,7 +881,7 @@ uint32_t nv108_pwr_code[] = { 0xc0f900cc, 0xf14f484e, 0x0d5453e3, - 0x02577e00, + 0x02b27e00, 0x40c0fc00, 0x0cf604c0, /* 0x0157: intr_subintr_skip_fifo */ @@ -904,598 +904,603 @@ uint32_t nv108_pwr_code[] = { 0xfca0fcb0, 0xfc80fc90, 0x0032f400, -/* 0x0196: timer */ - 0x90f901f8, - 0x32f480f9, - 0x03f89810, - 0xf40086b0, - 0x84bd4a1c, - 0x08f63800, - 0x0804bd00, - 0x0088cf34, - 0xbb9a0998, - 0xe9bb0298, - 0x03feb500, - 0x88cf0808, - 0x0284f000, - 0x081c1bf4, - 0x0088cf34, - 0x0bf4e0a6, - 0xf4e8a608, -/* 0x01da: timer_reset */ - 0x34000d1c, - 0xbd000ef6, - 0x9a0eb504, -/* 0x01e4: timer_enable */ - 0x38000108, - 0xbd0008f6, -/* 0x01ed: timer_done */ - 0x1031f404, - 0x90fc80fc, -/* 0x01f6: send_proc */ - 0x80f900f8, - 0xe89890f9, - 0x04e99805, - 0xa60486f0, - 0x2a0bf489, - 0x940398c4, - 0x80b60488, - 0x008ebb18, - 0xb500fa98, - 0x8db5008a, - 0x028cb501, - 0xb6038bb5, - 0x94f00190, - 0x04e9b507, -/* 0x022f: send_done */ - 0xfc0231f4, - 0xf880fc90, -/* 0x0235: find */ - 0x0880f900, - 0x0131f458, -/* 0x023c: find_loop */ - 0xa6008a98, - 0x100bf4ae, - 0xb15880b6, - 0xf4026886, - 0x32f4f11b, -/* 0x0251: find_done */ - 0xfc8eb201, -/* 0x0257: send */ - 0x7e00f880, - 0xf4000235, - 0x00f89b01, -/* 0x0260: recv */ - 0x9805e898, - 0x32f404e9, - 0xf489a601, - 0x89c43c0b, - 0x0180b603, - 0xb50784f0, - 0xea9805e8, - 0xfef0f902, - 0xf0f9018f, - 0x9994efb2, - 0x00e9bb04, - 0x9818e0b6, - 0xec9803eb, - 0x01ed9802, - 0xf900ee98, - 0xfef0fca5, - 0x31f400f8, -/* 0x02a7: recv_done */ - 0xf8f0fc01, -/* 0x02a9: init */ - 0x01084100, - 0xe70011cf, - 0xb6010911, - 0x14fe0814, - 0x00e04100, - 0x000013f0, - 0x0001f61c, - 0xff0104bd, - 0x01f61400, - 0x0104bd00, - 0x0015f102, - 0xf6100008, - 0x04bd0001, - 0xf000d241, - 0x10fe0013, - 0x1031f400, - 0x38000101, +/* 0x0196: ticks_from_ns */ + 0xc0f901f8, + 0xd7f1b0f9, + 0xd3f00144, + 0x5f21f500, + 0xe8ccec03, + 0x00b4b003, + 0xec120bf4, + 0xf103e8ee, + 0xf00144d7, + 0x21f500d3, +/* 0x01be: ticks_from_ns_quit */ + 0xceb2035f, + 0xc0fcb0fc, +/* 0x01c6: ticks_from_us */ + 0xc0f900f8, + 0xd7f1b0f9, + 0xd3f00144, + 0x5f21f500, + 0xb0ceb203, + 0x0bf400b4, +/* 0x01df: ticks_from_us_quit */ + 0xfce4bd05, + 0xf8c0fcb0, +/* 0x01e5: ticks_to_us */ + 0x44d7f100, + 0x00d3f001, + 0xf8ecedff, +/* 0x01f1: timer */ + 0xf990f900, + 0x1032f480, + 0xb003f898, + 0x1cf40086, + 0x0084bd4a, + 0x0008f638, + 0x340804bd, + 0x980088cf, + 0x98bb9a09, + 0x00e9bb02, + 0x0803feb5, + 0x0088cf08, + 0xf40284f0, + 0x34081c1b, + 0xa60088cf, + 0x080bf4e0, + 0x1cf4e8a6, +/* 0x0235: timer_reset */ + 0xf634000d, + 0x04bd000e, +/* 0x023f: timer_enable */ + 0x089a0eb5, + 0xf6380001, + 0x04bd0008, +/* 0x0248: timer_done */ + 0xfc1031f4, + 0xf890fc80, +/* 0x0251: send_proc */ + 0xf980f900, + 0x05e89890, + 0xf004e998, + 0x89a60486, + 0xc42a0bf4, + 0x88940398, + 0x1880b604, + 0x98008ebb, + 0x8ab500fa, + 0x018db500, + 0xb5028cb5, + 0x90b6038b, + 0x0794f001, + 0xf404e9b5, +/* 0x028a: send_done */ + 0x90fc0231, + 0x00f880fc, +/* 0x0290: find */ + 0x580880f9, +/* 0x0297: find_loop */ + 0x980131f4, + 0xaea6008a, + 0xb6100bf4, + 0x86b15880, + 0x1bf40268, + 0x0132f4f1, +/* 0x02ac: find_done */ + 0x80fc8eb2, +/* 0x02b2: send */ + 0x907e00f8, + 0x01f40002, +/* 0x02bb: recv */ + 0x9800f89b, + 0xe99805e8, + 0x0132f404, + 0x0bf489a6, + 0x0389c43c, + 0xf00180b6, + 0xe8b50784, + 0x02ea9805, + 0x8ffef0f9, + 0xb2f0f901, + 0x049994ef, + 0xb600e9bb, + 0xeb9818e0, + 0x02ec9803, + 0x9801ed98, + 0xa5f900ee, + 0xf8fef0fc, + 0x0131f400, +/* 0x0302: recv_done */ + 0x00f8f0fc, +/* 0x0304: init */ + 0xcf010841, + 0x11e70011, + 0x14b60109, + 0x0014fe08, + 0xf000e041, + 0x1c000013, 0xbd0001f6, -/* 0x02f3: init_proc */ - 0x98580f04, - 0x16b001f1, - 0xfa0bf400, - 0xf0b615f9, - 0xf20ef458, -/* 0x0304: mulu32_32_64 */ - 0x20f910f9, - 0x40f930f9, - 0x9510e195, - 0xc4bd10d2, - 0xedffb4bd, - 0x301dffc0, + 0x00ff0104, + 0x0001f614, + 0x020104bd, + 0x080015f1, + 0x01f61000, + 0x4104bd00, + 0x13f000d2, + 0x0010fe00, + 0x011031f4, + 0xf6380001, + 0x04bd0001, +/* 0x034e: init_proc */ + 0xf198580f, + 0x0016b001, + 0xf9fa0bf4, + 0x58f0b615, +/* 0x035f: mulu32_32_64 */ + 0xf9f20ef4, + 0xf920f910, + 0x9540f930, + 0xd29510e1, + 0xbdc4bd10, + 0xc0edffb4, + 0xb2301dff, + 0xff34f134, + 0x1034b6ff, + 0xbb1045b6, + 0xb4bb00c3, + 0x30e2ff01, 0x34f134b2, 0x34b6ffff, 0x1045b610, 0xbb00c3bb, - 0xe2ff01b4, - 0xf134b230, - 0xb6ffff34, - 0x45b61034, - 0x00c3bb10, - 0xff01b4bb, - 0xb3bb3012, - 0xfc40fc00, - 0xfc20fc30, -/* 0x0353: host_send */ - 0x4100f810, - 0x11cf04b0, - 0x04a04200, - 0xa60022cf, - 0x2e0bf412, - 0x94071ec4, - 0xe0b704ee, - 0xeb980270, - 0x02ec9803, - 0x9801ed98, - 0x577e00ee, - 0x10b60002, - 0x0f1ec401, - 0xf604b040, - 0x04bd000e, -/* 0x038f: host_send_done */ - 0xf8c70ef4, -/* 0x0391: host_recv */ - 0x4e494100, - 0x525413f1, - 0x0bf4e1a6, -/* 0x039d: host_recv_wait */ - 0x04cc41b9, - 0x420011cf, - 0x22cf04c8, - 0x0816f000, - 0x0bf412a6, - 0x0723c4ef, - 0xb70434b6, - 0xb502f030, - 0x3cb5033b, - 0x013db502, - 0xb6003eb5, - 0x24f00120, - 0x04c8400f, + 0x12ff01b4, + 0x00b3bb30, + 0x30fc40fc, + 0x10fc20fc, +/* 0x03ae: host_send */ + 0xb04100f8, + 0x0011cf04, + 0xcf04a042, + 0x12a60022, + 0xc42e0bf4, + 0xee94071e, + 0x70e0b704, + 0x03eb9802, + 0x9802ec98, + 0xee9801ed, + 0x02b27e00, + 0x0110b600, + 0x400f1ec4, + 0x0ef604b0, + 0xf404bd00, +/* 0x03ea: host_send_done */ + 0x00f8c70e, +/* 0x03ec: host_recv */ + 0xf14e4941, + 0xa6525413, + 0xb90bf4e1, +/* 0x03f8: host_recv_wait */ + 0xcf04cc41, + 0xc8420011, + 0x0022cf04, + 0xa60816f0, + 0xef0bf412, + 0xb60723c4, + 0x30b70434, + 0x3bb502f0, + 0x023cb503, + 0xb5013db5, + 0x20b6003e, + 0x0f24f001, + 0xf604c840, + 0x04bd0002, + 0x00004002, 0xbd0002f6, - 0x00400204, - 0x0002f600, +/* 0x043b: host_init */ + 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, -/* 0x03e0: host_init */ - 0xb6008041, - 0x15f11014, - 0xd0400270, - 0x0001f604, - 0x804104bd, - 0x1014b600, - 0x02f015f1, - 0xf604dc40, +/* 0x053c: i2c_drive_scl_lo */ + 0xf607e440, 0x04bd0001, - 0xc4400101, - 0x0001f604, +/* 0x0546: i2c_drive_sda */ + 0x36b000f8, + 0x0d0bf400, + 0xf607e040, + 0x04bd0002, +/* 0x0556: i2c_drive_sda_lo */ + 0xe44000f8, + 0x0002f607, 0x00f804bd, -/* 0x0410: memx_func_enter */ - 0xe0400406, - 0x0006f607, -/* 0x041a: memx_func_enter_wait */ - 0xc04604bd, - 0x0066cf07, - 0xf40464f0, - 0x1698f70b, - 0x0410b600, -/* 0x042e: memx_func_leave */ - 0x040600f8, - 0xf607e440, - 0x04bd0006, -/* 0x0438: memx_func_leave_wait */ - 0xcf07c046, - 0x64f00066, - 0xf71bf404, -/* 0x0446: memx_func_wr32 */ - 0x169800f8, - 0x01159800, - 0xf90810b6, - 0xfc50f960, - 0x7ee0fcd0, - 0xb600002e, - 0x1bf40242, -/* 0x0463: memx_func_wait */ - 0x0800f8e8, - 0x0088cf2c, - 0x98001e98, - 0x1c98011d, - 0x031b9802, - 0x7e1010b6, - 0xf8000071, -/* 0x047d: memx_func_delay */ - 0x001e9800, - 0x7e0410b6, - 0xf800005d, -/* 0x0489: memx_exec */ - 0xf9e0f900, - 0xb2c1b2d0, -/* 0x0491: memx_exec_next */ - 0x001398b2, - 0x950410b6, - 0x30f01034, - 0xde35980c, - 0x12a655f9, - 0xfced1ef4, - 0x7ee0fcd0, - 0xf8000257, -/* 0x04b1: memx_info */ - 0x03ac4c00, - 0x7e08004b, - 0xf8000257, -/* 0x04bd: memx_recv */ - 0x01d6b000, - 0xb0c90bf4, - 0x0bf400d6, -/* 0x04cb: memx_init */ - 0xf800f8eb, -/* 0x04cd: perf_recv */ -/* 0x04cf: perf_init */ - 0xf800f800, -/* 0x04d1: i2c_drive_scl */ - 0x0036b000, - 0x400d0bf4, - 0x01f607e0, - 0xf804bd00, -/* 0x04e1: i2c_drive_scl_lo */ - 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, +/* 0x0560: i2c_sense_scl */ + 0x430132f4, + 0x33cf07c4, + 0x0431fd00, + 0xf4060bf4, +/* 0x0572: i2c_sense_scl_done */ + 0x00f80131, +/* 0x0574: i2c_sense_sda */ + 0x430132f4, + 0x33cf07c4, + 0x0432fd00, + 0xf4060bf4, +/* 0x0586: i2c_sense_sda_done */ + 0x00f80131, +/* 0x0588: i2c_raise_scl */ + 0x984440f9, + 0x7e010308, +/* 0x0593: i2c_raise_scl_wait */ + 0x4e00052c, + 0x5d7e03e8, + 0x607e0000, + 0x01f40005, + 0x0142b609, +/* 0x05a7: i2c_raise_scl_done */ + 0xfcef1bf4, +/* 0x05ab: i2c_start */ + 0x7e00f840, + 0xf4000560, + 0x747e0d11, + 0x11f40005, + 0x2e0ef406, +/* 0x05bc: i2c_start_rep */ + 0x2c7e0003, + 0x01030005, + 0x0005467e, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x05887e50, + 0x0464b600, +/* 0x05e7: i2c_start_send */ + 0x031d11f4, + 0x05467e00, + 0x13884e00, + 0x00005d7e, + 0x2c7e0003, + 0x884e0005, + 0x005d7e13, +/* 0x0601: i2c_start_out */ +/* 0x0603: i2c_stop */ + 0x0300f800, + 0x052c7e00, + 0x7e000300, + 0x4e000546, + 0x5d7e03e8, + 0x01030000, + 0x00052c7e, + 0x7e13884e, + 0x0300005d, + 0x05467e01, + 0x13884e00, + 0x00005d7e, +/* 0x0632: i2c_bitw */ + 0x467e00f8, + 0xe84e0005, + 0x005d7e03, 0x0076bb00, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, - 0x2d7e50fc, + 0x887e50fc, 0x64b60005, - 0x1d11f404, -/* 0x058c: i2c_start_send */ - 0xeb7e0003, - 0x884e0004, - 0x005d7e13, - 0x7e000300, - 0x4e0004d1, - 0x5d7e1388, -/* 0x05a6: i2c_start_out */ - 0x00f80000, -/* 0x05a8: i2c_stop */ - 0xd17e0003, - 0x00030004, - 0x0004eb7e, - 0x7e03e84e, + 0x1711f404, + 0x7e13884e, 0x0300005d, - 0x04d17e01, + 0x052c7e00, 0x13884e00, 0x00005d7e, - 0xeb7e0103, - 0x884e0004, - 0x005d7e13, -/* 0x05d7: i2c_bitw */ - 0x7e00f800, - 0x4e0004eb, - 0x5d7e03e8, - 0x76bb0000, +/* 0x0670: i2c_bitw_out */ +/* 0x0672: i2c_bitr */ + 0x010300f8, + 0x0005467e, + 0x7e03e84e, + 0xbb00005d, + 0x65b60076, + 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, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, - 0xb600052d, + 0xb6000672, 0x11f40464, - 0x13884e17, - 0x00005d7e, - 0xd17e0003, - 0x884e0004, - 0x005d7e13, -/* 0x0615: i2c_bitw_out */ -/* 0x0617: i2c_bitr */ - 0x0300f800, - 0x04eb7e01, - 0x03e84e00, - 0x00005d7e, + 0x0553fd2a, + 0xf40142b6, + 0x0103d81b, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x052d7e50, + 0x06327e50, 0x0464b600, - 0x7e1a11f4, - 0x03000519, - 0x04d17e00, - 0x13884e00, - 0x00005d7e, - 0xf4013cf0, -/* 0x065a: i2c_bitr_done */ - 0x00f80131, -/* 0x065c: i2c_get_byte */ - 0x08040005, -/* 0x0660: i2c_get_byte_next */ - 0xbb0154b6, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 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, +/* 0x0704: i2c_get_byte_done */ +/* 0x0706: i2c_put_byte */ + 0x080400f8, +/* 0x0708: i2c_put_byte_next */ + 0xff0142b6, + 0x76bb3854, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0x7e50fc04, + 0xb6000632, + 0x11f40464, + 0x0046b034, + 0xbbd81bf4, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x0005d77e, + 0x0006727e, 0xf40464b6, - 0x46b03411, - 0xd81bf400, + 0x76bb0f11, + 0x0136b000, + 0xf4061bf4, +/* 0x075e: i2c_put_byte_done */ + 0x00f80132, +/* 0x0760: i2c_addr */ 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x06177e50, + 0x05ab7e50, 0x0464b600, - 0xbb0f11f4, - 0x36b00076, - 0x061bf401, -/* 0x0703: i2c_put_byte_done */ - 0xf80132f4, -/* 0x0705: i2c_addr */ - 0x0076bb00, + 0xe72911f4, + 0xb6012ec3, + 0x53fd0134, + 0x0076bb05, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, - 0x507e50fc, - 0x64b60005, - 0x2911f404, - 0x012ec3e7, - 0xfd0134b6, - 0x76bb0553, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0x7e50fc04, - 0xb60006ab, -/* 0x074a: i2c_addr_done */ - 0x00f80464, -/* 0x074c: i2c_acquire_addr */ - 0xb6f8cec7, - 0xe0b705e4, - 0x00f8d014, -/* 0x0758: i2c_acquire */ - 0x00074c7e, + 0x067e50fc, + 0x64b60007, +/* 0x07a5: i2c_addr_done */ +/* 0x07a7: i2c_acquire_addr */ + 0xc700f804, + 0xe4b6f8ce, + 0x14e0b705, +/* 0x07b3: i2c_acquire */ + 0x7e00f8d0, + 0x7e0007a7, + 0xf0000004, + 0x2e7e03d9, + 0x00f80000, +/* 0x07c4: i2c_release */ + 0x0007a77e, 0x0000047e, - 0x7e03d9f0, + 0x7e03daf0, 0xf800002e, -/* 0x0769: i2c_release */ - 0x074c7e00, - 0x00047e00, - 0x03daf000, - 0x00002e7e, -/* 0x077a: i2c_recv */ - 0x32f400f8, - 0xf8c1c701, - 0xb00214b6, - 0x1ff52816, - 0x13b80137, - 0x98000bd4, - 0x13b80032, - 0x98000bac, - 0x31f40031, - 0xf9d0f902, - 0xf1d0f9e0, - 0xf1000067, - 0x92100063, - 0x76bb0167, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0x7e50fc04, - 0xb6000758, - 0xd0fc0464, - 0xf500d6b0, - 0x0500b01b, - 0x0076bb00, +/* 0x07d5: i2c_recv */ + 0x0132f400, + 0xb6f8c1c7, + 0x16b00214, + 0x371ff528, + 0xd413b801, + 0x3298000b, + 0xac13b800, + 0x3198000b, + 0x0231f400, + 0xe0f9d0f9, + 0x67f1d0f9, + 0x63f10000, + 0x67921000, + 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, - 0x057e50fc, + 0xb37e50fc, 0x64b60007, - 0xcc11f504, - 0xe0c5c700, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0x06ab7e50, - 0x0464b600, - 0x00a911f5, - 0x76bb0105, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0x7e50fc04, - 0xb6000705, - 0x11f50464, - 0x76bb0087, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0x7e50fc04, - 0xb600065c, - 0x11f40464, - 0xe05bcb67, + 0xb0d0fc04, + 0x1bf500d6, + 0x000500b0, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x05a87e50, + 0x07607e50, 0x0464b600, - 0x74bd5bb2, -/* 0x087f: i2c_recv_not_rd08 */ - 0xb0410ef4, - 0x1bf401d6, - 0x7e00053b, - 0xf4000705, - 0xc5c73211, - 0x06ab7ee0, - 0x2811f400, - 0x057e0005, + 0x00cc11f5, + 0xbbe0c5c7, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x0007067e, + 0xf50464b6, + 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, - 0xe0b5c71f, - 0x0006ab7e, - 0x7e1511f4, - 0xbd0005a8, - 0x08c5c774, - 0xf4091bf4, - 0x0ef40232, -/* 0x08bd: i2c_recv_not_wr08 */ -/* 0x08bd: i2c_recv_done */ - 0xf8cec703, - 0x0007697e, - 0xd0fce0fc, - 0xb20912f4, - 0x02577e7c, -/* 0x08d1: i2c_recv_exit */ -/* 0x08d3: i2c_init */ - 0xf800f800, -/* 0x08d5: test_recv */ - 0x04584100, + 0xe0c5c732, + 0x0007067e, + 0x052811f4, + 0x07607e00, + 0x1f11f400, + 0x7ee0b5c7, + 0xf4000706, + 0x037e1511, + 0x74bd0006, + 0xf408c5c7, + 0x32f4091b, + 0x030ef402, +/* 0x0918: i2c_recv_not_wr08 */ +/* 0x0918: i2c_recv_done */ + 0x7ef8cec7, + 0xfc0007c4, + 0xf4d0fce0, + 0x7cb20912, + 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, - 0x58400110, + 0x54400110, 0x0001f604, - 0xe7f104bd, - 0xe3f1d900, - 0x967e134f, - 0x00f80001, -/* 0x08f4: test_init */ - 0x7e08004e, - 0xf8000196, -/* 0x08fd: idle_recv */ -/* 0x08ff: idle */ - 0xf400f800, - 0x54410031, - 0x0011cf04, - 0x400110b6, - 0x01f60454, -/* 0x0913: idle_loop */ - 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, +/* 0x096e: idle_loop */ + 0x580104bd, +/* 0x0973: idle_proc */ +/* 0x0973: idle_proc_exec */ + 0xf90232f4, + 0x7e1eb210, + 0xfc0002bb, + 0x0911f410, + 0xf40231f4, +/* 0x0986: idle_proc_next */ + 0x10b6f00e, + 0xf41fa658, + 0x02f4e81b, + 0x0028f4e0, + 0x00c60ef4, 0x00000000, 0x00000000, 0x00000000, diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc index 86a3ddae0099..daa06c1c655e 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GT215 +#define HW_TICKS_PER_US 203 // should be 202.5 //#define NVKM_FALCON_PC24 //#define NVKM_FALCON_UNSHIFTED_IO diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h index d0d82c20a38f..8e2ddd9ae9ff 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc.h @@ -24,8 +24,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, /* 0x0058: proc_list_head */ 0x54534f48, - 0x0000049d, - 0x0000043a, + 0x000004fa, + 0x00000497, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x000005af, - 0x000005a1, + 0x0000060c, + 0x000005fe, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x000005b3, - 0x000005b1, + 0x00000610, + 0x0000060e, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x000009e3, - 0x00000886, + 0x00000a40, + 0x000008e3, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x00000a0c, - 0x000009e5, + 0x00000a69, + 0x00000a42, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x00000a18, - 0x00000a16, + 0x00000a75, + 0x00000a73, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nva3_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x000004dc, + 0x00000539, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x00000503, + 0x00000560, 0x00000002, 0x00000002, - 0x00000524, + 0x00000581, 0x00040003, 0x00000000, - 0x00000540, + 0x0000059d, 0x00010004, 0x00000000, - 0x0000055d, + 0x000005ba, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -849,7 +849,7 @@ uint32_t nva3_pwr_data[] = { }; uint32_t nva3_pwr_code[] = { - 0x03290ef5, + 0x03860ef5, /* 0x0004: rd32 */ 0x07a007f1, 0xd00604b6, @@ -915,7 +915,7 @@ uint32_t nva3_pwr_code[] = { 0xbb9a0a98, 0x1cf4029a, 0x01d7f00f, - 0x027021f5, + 0x02cd21f5, 0x0ef494bd, /* 0x00e9: intr_watchdog_next_time */ 0x9b0a9815, @@ -967,7 +967,7 @@ uint32_t nva3_pwr_code[] = { 0x48e7f1c0, 0x53e3f14f, 0x00d7f054, - 0x02d521f5, + 0x033221f5, 0x07f1c0fc, 0x04b604c0, 0x000cd006, @@ -993,648 +993,653 @@ uint32_t nva3_pwr_code[] = { 0x90fca0fc, 0x00fc80fc, 0xf80032f4, -/* 0x01f5: timer */ - 0xf990f901, - 0x1032f480, - 0xb003f898, - 0x1cf40086, - 0xf084bd65, - 0x04b63807, - 0x0008d006, - 0x87f004bd, - 0x0684b634, - 0x980088cf, - 0x98bb9a09, - 0x00e9bb02, - 0xf003fe80, - 0x84b60887, - 0x0088cf06, - 0xf40284f0, - 0x87f0261b, - 0x0684b634, - 0xb80088cf, - 0x0bf406e0, - 0x06e8b809, -/* 0x024b: timer_reset */ - 0xf0111cf4, - 0x04b63407, - 0x000ed006, - 0x0e8004bd, -/* 0x0259: timer_enable */ - 0x0187f09a, +/* 0x01f5: ticks_from_ns */ + 0xf9c0f901, + 0xcbd7f1b0, + 0x00d3f000, + 0x03fb21f5, + 0x03e8ccec, + 0xf400b4b0, + 0xeeec120b, + 0xd7f103e8, + 0xd3f000cb, + 0xfb21f500, +/* 0x021d: ticks_from_ns_quit */ + 0x02ceb903, + 0xc0fcb0fc, +/* 0x0226: ticks_from_us */ + 0xc0f900f8, + 0xd7f1b0f9, + 0xd3f000cb, + 0xfb21f500, + 0x02ceb903, + 0xf400b4b0, + 0xe4bd050b, +/* 0x0240: ticks_from_us_quit */ + 0xc0fcb0fc, +/* 0x0246: ticks_to_us */ + 0xd7f100f8, + 0xd3f000cb, + 0xecedff00, +/* 0x0252: timer */ + 0x90f900f8, + 0x32f480f9, + 0x03f89810, + 0xf40086b0, + 0x84bd651c, 0xb63807f0, 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, - 0x07f0ff17, - 0x0604b614, - 0xbd0001d0, - 0x0217f004, - 0x080015f1, - 0xb61007f0, - 0x01d00604, - 0xf104bd00, - 0xf0010a17, - 0x10fe0013, - 0x1031f400, - 0xf00117f0, - 0x04b63807, - 0x0001d006, - 0xf7f004bd, -/* 0x038d: init_proc */ - 0x01f19858, - 0xf40016b0, - 0x15f9fa0b, - 0xf458f0b6, -/* 0x039e: mulu32_32_64 */ - 0x10f9f20e, - 0x30f920f9, - 0xe19540f9, - 0x10d29510, - 0xb4bdc4bd, - 0xffc0edff, - 0x34b9301d, - 0xff34f102, - 0x1034b6ff, - 0xbb1045b6, - 0xb4bb00c3, - 0x30e2ff01, - 0xf10234b9, - 0xb6ffff34, - 0x45b61034, - 0x00c3bb10, - 0xff01b4bb, - 0xb3bb3012, - 0xfc40fc00, - 0xfc20fc30, -/* 0x03ef: host_send */ - 0xf100f810, - 0xb604b017, - 0x11cf0614, - 0xa027f100, - 0x0624b604, - 0xb80022cf, - 0x0bf40612, - 0x071ec432, - 0xb704ee94, - 0x980270e0, - 0xec9803eb, - 0x01ed9802, - 0xf500ee98, - 0xb602d521, - 0x1ec40110, - 0xb007f10f, - 0x0604b604, - 0xbd000ed0, - 0xba0ef404, -/* 0x0438: host_send_done */ -/* 0x043a: host_recv */ + 0x84b63487, + 0x0088cf06, + 0xbb9a0998, + 0xe9bb0298, + 0x03fe8000, + 0xb60887f0, + 0x88cf0684, + 0x0284f000, + 0xf0261bf4, + 0x84b63487, + 0x0088cf06, + 0xf406e0b8, + 0xe8b8090b, + 0x111cf406, +/* 0x02a8: timer_reset */ + 0xb63407f0, + 0x0ed00604, + 0x8004bd00, +/* 0x02b6: timer_enable */ + 0x87f09a0e, + 0x3807f001, + 0xd00604b6, + 0x04bd0008, +/* 0x02c4: timer_done */ + 0xfc1031f4, + 0xf890fc80, +/* 0x02cd: send_proc */ + 0xf980f900, + 0x05e89890, + 0xf004e998, + 0x89b80486, + 0x2a0bf406, + 0x940398c4, + 0x80b60488, + 0x008ebb18, + 0x8000fa98, + 0x8d80008a, + 0x028c8001, + 0xb6038b80, + 0x94f00190, + 0x04e98007, +/* 0x0307: send_done */ + 0xfc0231f4, + 0xf880fc90, +/* 0x030d: find */ + 0xf080f900, + 0x31f45887, +/* 0x0315: find_loop */ + 0x008a9801, + 0xf406aeb8, + 0x80b6100b, + 0x6886b158, + 0xf01bf402, +/* 0x032b: find_done */ + 0xb90132f4, + 0x80fc028e, +/* 0x0332: send */ + 0x21f500f8, + 0x01f4030d, +/* 0x033b: recv */ + 0x9800f897, + 0xe99805e8, + 0x0132f404, + 0xf40689b8, + 0x89c43d0b, + 0x0180b603, + 0x800784f0, + 0xea9805e8, + 0xfef0f902, + 0xf0f9018f, + 0x9402efb9, + 0xe9bb0499, + 0x18e0b600, + 0x9803eb98, + 0xed9802ec, + 0x00ee9801, + 0xf0fca5f9, + 0xf400f8fe, + 0xf0fc0131, +/* 0x0384: recv_done */ +/* 0x0386: init */ 0x17f100f8, - 0x13f14e49, - 0xe1b85254, - 0xaa0bf406, -/* 0x0448: host_recv_wait */ - 0x04cc17f1, + 0x14b60108, + 0x0011cf06, + 0x010911e7, + 0xfe0814b6, + 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, 0x27f10011, - 0x24b604c8, + 0x24b604a0, 0x0022cf06, - 0xb80816f0, - 0x0bf40612, - 0x0723c4e6, - 0xb70434b6, - 0x8002f030, - 0x3c80033b, - 0x013d8002, - 0xb6003e80, - 0x24f00120, - 0xc807f10f, + 0xf40612b8, + 0x1ec4320b, + 0x04ee9407, + 0x0270e0b7, + 0x9803eb98, + 0xed9802ec, + 0x00ee9801, + 0x033221f5, + 0xc40110b6, + 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, - 0xbd0002d0, - 0x4027f004, - 0xb60007f0, - 0x02d00604, - 0xf804bd00, -/* 0x049d: host_init */ - 0x8017f100, + 0xbd0001d0, + 0x8017f104, 0x1014b600, - 0x027015f1, - 0x04d007f1, + 0x02f015f1, + 0x04dc07f1, 0xd00604b6, 0x04bd0001, - 0x008017f1, - 0xf11014b6, - 0xf102f015, - 0xb604dc07, + 0xf10117f0, + 0xb604c407, 0x01d00604, - 0xf004bd00, - 0x07f10117, - 0x04b604c4, - 0x0001d006, - 0x00f804bd, -/* 0x04dc: memx_func_enter */ + 0xf804bd00, +/* 0x0539: memx_func_enter */ + 0x0467f000, + 0x07e007f1, + 0xd00604b6, + 0x04bd0006, +/* 0x0548: memx_func_enter_wait */ + 0x07c067f1, + 0xcf0664b6, + 0x64f00066, + 0xf30bf404, + 0xb6001698, + 0x00f80410, +/* 0x0560: memx_func_leave */ 0xf10467f0, - 0xb607e007, + 0xb607e407, 0x06d00604, -/* 0x04eb: memx_func_enter_wait */ +/* 0x056f: memx_func_leave_wait */ 0xf104bd00, 0xb607c067, 0x66cf0664, 0x0464f000, - 0x98f30bf4, - 0x10b60016, -/* 0x0503: memx_func_leave */ - 0xf000f804, - 0x07f10467, - 0x04b607e4, - 0x0006d006, -/* 0x0512: memx_func_leave_wait */ - 0x67f104bd, - 0x64b607c0, - 0x0066cf06, - 0xf40464f0, - 0x00f8f31b, -/* 0x0524: memx_func_wr32 */ - 0x98001698, - 0x10b60115, - 0xf960f908, - 0xfcd0fc50, - 0x3f21f4e0, - 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, + 0xf8f31bf4, +/* 0x0581: memx_func_wr32 */ + 0x00169800, + 0xb6011598, + 0x60f90810, + 0xd0fc50f9, + 0x21f4e0fc, + 0x0242b63f, + 0xf8e91bf4, +/* 0x059d: memx_func_wait */ + 0x2c87f000, + 0xcf0684b6, + 0x1e980088, + 0x011d9800, + 0x98021c98, + 0x10b6031b, + 0x9c21f410, +/* 0x05ba: memx_func_delay */ + 0x1e9800f8, 0x0410b600, - 0xf0103495, - 0x35980c30, - 0xb855f9de, - 0x1ef40612, - 0xfcd0fcec, - 0xd521f5e0, -/* 0x0593: memx_info */ - 0xf100f802, - 0xf103acc7, - 0xf50800b7, - 0xf802d521, -/* 0x05a1: memx_recv */ - 0x01d6b000, - 0xb0c40bf4, - 0x0bf400d6, -/* 0x05af: memx_init */ - 0xf800f8e9, -/* 0x05b1: perf_recv */ -/* 0x05b3: perf_init */ - 0xf800f800, -/* 0x05b5: i2c_drive_scl */ - 0x0036b000, - 0xf1110bf4, - 0xb607e007, - 0x01d00604, - 0xf804bd00, -/* 0x05c9: i2c_drive_scl_lo */ - 0xe407f100, - 0x0604b607, - 0xbd0001d0, -/* 0x05d7: i2c_drive_sda */ - 0xb000f804, - 0x0bf40036, - 0xe007f111, - 0x0604b607, - 0xbd0002d0, -/* 0x05eb: i2c_drive_sda_lo */ - 0xf100f804, - 0xb607e407, - 0x02d00604, - 0xf804bd00, -/* 0x05f9: i2c_sense_scl */ - 0x0132f400, - 0x07c437f1, - 0xcf0634b6, - 0x31fd0033, - 0x060bf404, -/* 0x060f: i2c_sense_scl_done */ - 0xf80131f4, -/* 0x0611: i2c_sense_sda */ - 0x0132f400, - 0x07c437f1, - 0xcf0634b6, - 0x32fd0033, - 0x060bf404, -/* 0x0627: i2c_sense_sda_done */ - 0xf80131f4, -/* 0x0629: i2c_raise_scl */ - 0xf140f900, - 0xf0089847, + 0xf87f21f4, +/* 0x05c5: memx_exec */ + 0xf9e0f900, + 0x02c1b9d0, +/* 0x05cf: memx_exec_next */ + 0x9802b2b9, + 0x10b60013, + 0x10349504, + 0x980c30f0, + 0x55f9de35, + 0xf40612b8, + 0xd0fcec1e, + 0x21f5e0fc, + 0x00f80332, +/* 0x05f0: memx_info */ + 0x03acc7f1, + 0x0800b7f1, + 0x033221f5, +/* 0x05fe: memx_recv */ + 0xd6b000f8, + 0xc40bf401, + 0xf400d6b0, + 0x00f8e90b, +/* 0x060c: memx_init */ +/* 0x060e: perf_recv */ + 0x00f800f8, +/* 0x0610: perf_init */ +/* 0x0612: i2c_drive_scl */ + 0x36b000f8, + 0x110bf400, + 0x07e007f1, + 0xd00604b6, + 0x04bd0001, +/* 0x0626: i2c_drive_scl_lo */ + 0x07f100f8, + 0x04b607e4, + 0x0001d006, + 0x00f804bd, +/* 0x0634: i2c_drive_sda */ + 0xf40036b0, + 0x07f1110b, + 0x04b607e0, + 0x0002d006, + 0x00f804bd, +/* 0x0648: i2c_drive_sda_lo */ + 0x07e407f1, + 0xd00604b6, + 0x04bd0002, +/* 0x0656: i2c_sense_scl */ + 0x32f400f8, + 0xc437f101, + 0x0634b607, + 0xfd0033cf, + 0x0bf40431, + 0x0131f406, +/* 0x066c: i2c_sense_scl_done */ +/* 0x066e: i2c_sense_sda */ + 0x32f400f8, + 0xc437f101, + 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, -/* 0x0636: i2c_raise_scl_wait */ - 0xe7f105b5, - 0x21f403e8, - 0xf921f57f, - 0x0901f405, - 0xf40142b6, -/* 0x064a: i2c_raise_scl_done */ - 0x40fcef1b, -/* 0x064e: i2c_start */ - 0x21f500f8, - 0x11f405f9, - 0x1121f50d, - 0x0611f406, -/* 0x065f: i2c_start_rep */ - 0xf0300ef4, + 0x76bb0634, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0xf550fc04, + 0xb6068621, + 0x11f40464, +/* 0x06e9: i2c_start_send */ + 0x0037f01f, + 0x063421f5, + 0x1388e7f1, + 0xf07f21f4, 0x21f50037, - 0x37f005b5, - 0xd721f501, - 0x0076bb05, + 0xe7f10612, + 0x21f41388, +/* 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, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b60629, - 0x1f11f404, -/* 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, + 0x64b60686, + 0x1811f404, 0x1388e7f1, - 0xf87f21f4, -/* 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, + 0xf07f21f4, 0x21f50037, - 0xe7f105b5, + 0xe7f10612, 0x21f41388, - 0x013cf07f, -/* 0x0763: i2c_bitr_done */ - 0xf80131f4, -/* 0x0765: i2c_get_byte */ - 0x0057f000, -/* 0x076b: i2c_get_byte_next */ - 0xb60847f0, - 0x76bb0154, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6071e21, - 0x11f40464, - 0x0553fd2b, - 0xf40142b6, - 0x37f0d81b, - 0x0076bb01, +/* 0x0779: i2c_bitw_out */ +/* 0x077b: i2c_bitr */ + 0xf000f87f, + 0x21f50137, + 0xe7f10634, + 0x21f403e8, + 0x0076bb7f, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b606dd, -/* 0x07b5: i2c_get_byte_done */ -/* 0x07b7: i2c_put_byte */ - 0xf000f804, -/* 0x07ba: i2c_put_byte_next */ - 0x42b60847, - 0x3854ff01, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xdd21f550, - 0x0464b606, - 0xb03411f4, - 0x1bf40046, - 0x0076bbd8, + 0x64b60686, + 0x1b11f404, + 0x066e21f5, + 0xf50037f0, + 0xf1061221, + 0xf41388e7, + 0x3cf07f21, + 0x0131f401, +/* 0x07c0: i2c_bitr_done */ +/* 0x07c2: i2c_get_byte */ + 0x57f000f8, + 0x0847f000, +/* 0x07c8: i2c_get_byte_next */ + 0xbb0154b6, + 0x65b60076, + 0x9450f904, + 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, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b6071e, - 0x0f11f404, - 0xb00076bb, - 0x1bf40136, - 0x0132f406, -/* 0x0810: i2c_put_byte_done */ -/* 0x0812: i2c_addr */ - 0x76bb00f8, + 0x64b6073a, + 0x3411f404, + 0xf40046b0, + 0x76bbd81b, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6064e21, + 0xb6077b21, 0x11f40464, - 0x2ec3e729, - 0x0134b601, - 0xbb0553fd, + 0x0076bb0f, + 0xf40136b0, + 0x32f4061b, +/* 0x086d: i2c_put_byte_done */ +/* 0x086f: i2c_addr */ + 0xbb00f801, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x07b721f5, -/* 0x0857: i2c_addr_done */ - 0xf80464b6, -/* 0x0859: i2c_acquire_addr */ - 0xf8cec700, - 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, + 0x06ab21f5, + 0xf40464b6, + 0xc3e72911, + 0x34b6012e, + 0x0553fd01, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x6821f550, + 0x1421f550, 0x0464b608, - 0xd6b0d0fc, - 0xb31bf500, - 0x0057f000, +/* 0x08b4: i2c_addr_done */ +/* 0x08b6: i2c_acquire_addr */ + 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, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x1221f550, + 0x1421f550, 0x0464b608, - 0x00d011f5, - 0xbbe0c5c7, + 0x00ad11f5, + 0xbb0157f0, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x07b721f5, + 0x086f21f5, 0xf50464b6, - 0xf000ad11, - 0x76bb0157, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6081221, - 0x11f50464, - 0x76bb008a, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6076521, - 0x11f40464, - 0xe05bcb6a, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xaa21f550, - 0x0464b606, - 0xbd025bb9, - 0x430ef474, -/* 0x098c: i2c_recv_not_rd08 */ - 0xf401d6b0, - 0x57f03d1b, - 0x1221f500, - 0x3311f408, - 0xf5e0c5c7, - 0xf407b721, - 0x57f02911, - 0x1221f500, - 0x1f11f408, - 0xf5e0b5c7, - 0xf407b721, - 0x21f51511, - 0x74bd06aa, - 0xf408c5c7, - 0x32f4091b, - 0x030ef402, -/* 0x09cc: i2c_recv_not_wr08 */ -/* 0x09cc: i2c_recv_done */ - 0xf5f8cec7, - 0xfc087721, - 0xf4d0fce0, - 0x7cb90a12, - 0xd521f502, -/* 0x09e1: i2c_recv_exit */ -/* 0x09e3: i2c_init */ + 0xbb008a11, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x07c221f5, + 0xf40464b6, + 0x5bcb6a11, + 0x0076bbe0, + 0xf90465b6, + 0x04659450, + 0xbd0256bb, + 0x0475fd50, + 0x21f550fc, + 0x64b60707, + 0x025bb904, + 0x0ef474bd, +/* 0x09e9: i2c_recv_not_rd08 */ + 0x01d6b043, + 0xf03d1bf4, + 0x21f50057, + 0x11f4086f, + 0xe0c5c733, + 0x081421f5, + 0xf02911f4, + 0x21f50057, + 0x11f4086f, + 0xe0b5c71f, + 0x081421f5, + 0xf51511f4, + 0xbd070721, + 0x08c5c774, + 0xf4091bf4, + 0x0ef40232, +/* 0x0a29: i2c_recv_not_wr08 */ +/* 0x0a29: i2c_recv_done */ + 0xf8cec703, + 0x08d421f5, + 0xd0fce0fc, + 0xb90a12f4, + 0x21f5027c, +/* 0x0a3e: i2c_recv_exit */ + 0x00f80332, +/* 0x0a40: i2c_init */ +/* 0x0a42: test_recv */ + 0x17f100f8, + 0x14b605d8, + 0x0011cf06, + 0xf10110b6, + 0xb605d807, + 0x01d00604, + 0xf104bd00, + 0xf1d900e7, + 0xf5134fe3, + 0xf8025221, +/* 0x0a69: test_init */ + 0x00e7f100, + 0x5221f508, +/* 0x0a73: idle_recv */ 0xf800f802, -/* 0x09e5: test_recv */ - 0xd817f100, - 0x0614b605, - 0xb60011cf, - 0x07f10110, - 0x04b605d8, - 0x0001d006, - 0xe7f104bd, - 0xe3f1d900, - 0x21f5134f, - 0x00f801f5, -/* 0x0a0c: test_init */ - 0x0800e7f1, - 0x01f521f5, -/* 0x0a16: idle_recv */ - 0x00f800f8, -/* 0x0a18: idle */ - 0xf10031f4, - 0xb605d417, - 0x11cf0614, - 0x0110b600, - 0x05d407f1, - 0xd00604b6, - 0x04bd0001, -/* 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, +/* 0x0a75: idle */ + 0x0031f400, + 0x05d417f1, + 0xcf0614b6, + 0x10b60011, + 0xd407f101, + 0x0604b605, + 0xbd0001d0, +/* 0x0a91: idle_loop */ + 0x5817f004, +/* 0x0a97: idle_proc */ +/* 0x0a97: idle_proc_exec */ + 0xf90232f4, + 0x021eb910, + 0x033b21f5, + 0x11f410fc, + 0x0231f409, +/* 0x0aab: idle_proc_next */ + 0xb6ef0ef4, + 0x1fb85810, + 0xe61bf406, + 0xf4dd02f4, + 0x0ef40028, + 0x000000bb, 0x00000000, 0x00000000, 0x00000000, diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc index ddd72d65da02..21bf8cc7618f 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GF100 +#define HW_TICKS_PER_US 203 // should be 202.5 //#define NVKM_FALCON_PC24 //#define NVKM_FALCON_UNSHIFTED_IO diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h index 1e2ab16918e1..a0bd2c1b16b3 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc.h @@ -24,8 +24,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, /* 0x0058: proc_list_head */ 0x54534f48, - 0x0000049d, - 0x0000043a, + 0x000004fa, + 0x00000497, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x000005af, - 0x000005a1, + 0x0000060c, + 0x000005fe, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x000005b3, - 0x000005b1, + 0x00000610, + 0x0000060e, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x000009e3, - 0x00000886, + 0x00000a40, + 0x000008e3, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x00000a0c, - 0x000009e5, + 0x00000a69, + 0x00000a42, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x00000a18, - 0x00000a16, + 0x00000a75, + 0x00000a73, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nvc0_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x000004dc, + 0x00000539, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x00000503, + 0x00000560, 0x00000002, 0x00000002, - 0x00000524, + 0x00000581, 0x00040003, 0x00000000, - 0x00000540, + 0x0000059d, 0x00010004, 0x00000000, - 0x0000055d, + 0x000005ba, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -849,7 +849,7 @@ uint32_t nvc0_pwr_data[] = { }; uint32_t nvc0_pwr_code[] = { - 0x03290ef5, + 0x03860ef5, /* 0x0004: rd32 */ 0x07a007f1, 0xd00604b6, @@ -915,7 +915,7 @@ uint32_t nvc0_pwr_code[] = { 0xbb9a0a98, 0x1cf4029a, 0x01d7f00f, - 0x027021f5, + 0x02cd21f5, 0x0ef494bd, /* 0x00e9: intr_watchdog_next_time */ 0x9b0a9815, @@ -967,7 +967,7 @@ uint32_t nvc0_pwr_code[] = { 0x48e7f1c0, 0x53e3f14f, 0x00d7f054, - 0x02d521f5, + 0x033221f5, 0x07f1c0fc, 0x04b604c0, 0x000cd006, @@ -993,648 +993,653 @@ uint32_t nvc0_pwr_code[] = { 0x90fca0fc, 0x00fc80fc, 0xf80032f4, -/* 0x01f5: timer */ - 0xf990f901, - 0x1032f480, - 0xb003f898, - 0x1cf40086, - 0xf084bd65, - 0x04b63807, - 0x0008d006, - 0x87f004bd, - 0x0684b634, - 0x980088cf, - 0x98bb9a09, - 0x00e9bb02, - 0xf003fe80, - 0x84b60887, - 0x0088cf06, - 0xf40284f0, - 0x87f0261b, - 0x0684b634, - 0xb80088cf, - 0x0bf406e0, - 0x06e8b809, -/* 0x024b: timer_reset */ - 0xf0111cf4, - 0x04b63407, - 0x000ed006, - 0x0e8004bd, -/* 0x0259: timer_enable */ - 0x0187f09a, +/* 0x01f5: ticks_from_ns */ + 0xf9c0f901, + 0xcbd7f1b0, + 0x00d3f000, + 0x03fb21f5, + 0x03e8ccec, + 0xf400b4b0, + 0xeeec120b, + 0xd7f103e8, + 0xd3f000cb, + 0xfb21f500, +/* 0x021d: ticks_from_ns_quit */ + 0x02ceb903, + 0xc0fcb0fc, +/* 0x0226: ticks_from_us */ + 0xc0f900f8, + 0xd7f1b0f9, + 0xd3f000cb, + 0xfb21f500, + 0x02ceb903, + 0xf400b4b0, + 0xe4bd050b, +/* 0x0240: ticks_from_us_quit */ + 0xc0fcb0fc, +/* 0x0246: ticks_to_us */ + 0xd7f100f8, + 0xd3f000cb, + 0xecedff00, +/* 0x0252: timer */ + 0x90f900f8, + 0x32f480f9, + 0x03f89810, + 0xf40086b0, + 0x84bd651c, 0xb63807f0, 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, - 0x07f0ff17, - 0x0604b614, - 0xbd0001d0, - 0x0217f004, - 0x080015f1, - 0xb61007f0, - 0x01d00604, - 0xf104bd00, - 0xf0010a17, - 0x10fe0013, - 0x1031f400, - 0xf00117f0, - 0x04b63807, - 0x0001d006, - 0xf7f004bd, -/* 0x038d: init_proc */ - 0x01f19858, - 0xf40016b0, - 0x15f9fa0b, - 0xf458f0b6, -/* 0x039e: mulu32_32_64 */ - 0x10f9f20e, - 0x30f920f9, - 0xe19540f9, - 0x10d29510, - 0xb4bdc4bd, - 0xffc0edff, - 0x34b9301d, - 0xff34f102, - 0x1034b6ff, - 0xbb1045b6, - 0xb4bb00c3, - 0x30e2ff01, - 0xf10234b9, - 0xb6ffff34, - 0x45b61034, - 0x00c3bb10, - 0xff01b4bb, - 0xb3bb3012, - 0xfc40fc00, - 0xfc20fc30, -/* 0x03ef: host_send */ - 0xf100f810, - 0xb604b017, - 0x11cf0614, - 0xa027f100, - 0x0624b604, - 0xb80022cf, - 0x0bf40612, - 0x071ec432, - 0xb704ee94, - 0x980270e0, - 0xec9803eb, - 0x01ed9802, - 0xf500ee98, - 0xb602d521, - 0x1ec40110, - 0xb007f10f, - 0x0604b604, - 0xbd000ed0, - 0xba0ef404, -/* 0x0438: host_send_done */ -/* 0x043a: host_recv */ + 0x84b63487, + 0x0088cf06, + 0xbb9a0998, + 0xe9bb0298, + 0x03fe8000, + 0xb60887f0, + 0x88cf0684, + 0x0284f000, + 0xf0261bf4, + 0x84b63487, + 0x0088cf06, + 0xf406e0b8, + 0xe8b8090b, + 0x111cf406, +/* 0x02a8: timer_reset */ + 0xb63407f0, + 0x0ed00604, + 0x8004bd00, +/* 0x02b6: timer_enable */ + 0x87f09a0e, + 0x3807f001, + 0xd00604b6, + 0x04bd0008, +/* 0x02c4: timer_done */ + 0xfc1031f4, + 0xf890fc80, +/* 0x02cd: send_proc */ + 0xf980f900, + 0x05e89890, + 0xf004e998, + 0x89b80486, + 0x2a0bf406, + 0x940398c4, + 0x80b60488, + 0x008ebb18, + 0x8000fa98, + 0x8d80008a, + 0x028c8001, + 0xb6038b80, + 0x94f00190, + 0x04e98007, +/* 0x0307: send_done */ + 0xfc0231f4, + 0xf880fc90, +/* 0x030d: find */ + 0xf080f900, + 0x31f45887, +/* 0x0315: find_loop */ + 0x008a9801, + 0xf406aeb8, + 0x80b6100b, + 0x6886b158, + 0xf01bf402, +/* 0x032b: find_done */ + 0xb90132f4, + 0x80fc028e, +/* 0x0332: send */ + 0x21f500f8, + 0x01f4030d, +/* 0x033b: recv */ + 0x9800f897, + 0xe99805e8, + 0x0132f404, + 0xf40689b8, + 0x89c43d0b, + 0x0180b603, + 0x800784f0, + 0xea9805e8, + 0xfef0f902, + 0xf0f9018f, + 0x9402efb9, + 0xe9bb0499, + 0x18e0b600, + 0x9803eb98, + 0xed9802ec, + 0x00ee9801, + 0xf0fca5f9, + 0xf400f8fe, + 0xf0fc0131, +/* 0x0384: recv_done */ +/* 0x0386: init */ 0x17f100f8, - 0x13f14e49, - 0xe1b85254, - 0xaa0bf406, -/* 0x0448: host_recv_wait */ - 0x04cc17f1, + 0x14b60108, + 0x0011cf06, + 0x010911e7, + 0xfe0814b6, + 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, 0x27f10011, - 0x24b604c8, + 0x24b604a0, 0x0022cf06, - 0xb80816f0, - 0x0bf40612, - 0x0723c4e6, - 0xb70434b6, - 0x8002f030, - 0x3c80033b, - 0x013d8002, - 0xb6003e80, - 0x24f00120, - 0xc807f10f, + 0xf40612b8, + 0x1ec4320b, + 0x04ee9407, + 0x0270e0b7, + 0x9803eb98, + 0xed9802ec, + 0x00ee9801, + 0x033221f5, + 0xc40110b6, + 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, - 0xbd0002d0, - 0x4027f004, - 0xb60007f0, - 0x02d00604, - 0xf804bd00, -/* 0x049d: host_init */ - 0x8017f100, + 0xbd0001d0, + 0x8017f104, 0x1014b600, - 0x027015f1, - 0x04d007f1, + 0x02f015f1, + 0x04dc07f1, 0xd00604b6, 0x04bd0001, - 0x008017f1, - 0xf11014b6, - 0xf102f015, - 0xb604dc07, + 0xf10117f0, + 0xb604c407, 0x01d00604, - 0xf004bd00, - 0x07f10117, - 0x04b604c4, - 0x0001d006, - 0x00f804bd, -/* 0x04dc: memx_func_enter */ + 0xf804bd00, +/* 0x0539: memx_func_enter */ + 0x0467f000, + 0x07e007f1, + 0xd00604b6, + 0x04bd0006, +/* 0x0548: memx_func_enter_wait */ + 0x07c067f1, + 0xcf0664b6, + 0x64f00066, + 0xf30bf404, + 0xb6001698, + 0x00f80410, +/* 0x0560: memx_func_leave */ 0xf10467f0, - 0xb607e007, + 0xb607e407, 0x06d00604, -/* 0x04eb: memx_func_enter_wait */ +/* 0x056f: memx_func_leave_wait */ 0xf104bd00, 0xb607c067, 0x66cf0664, 0x0464f000, - 0x98f30bf4, - 0x10b60016, -/* 0x0503: memx_func_leave */ - 0xf000f804, - 0x07f10467, - 0x04b607e4, - 0x0006d006, -/* 0x0512: memx_func_leave_wait */ - 0x67f104bd, - 0x64b607c0, - 0x0066cf06, - 0xf40464f0, - 0x00f8f31b, -/* 0x0524: memx_func_wr32 */ - 0x98001698, - 0x10b60115, - 0xf960f908, - 0xfcd0fc50, - 0x3f21f4e0, - 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, + 0xf8f31bf4, +/* 0x0581: memx_func_wr32 */ + 0x00169800, + 0xb6011598, + 0x60f90810, + 0xd0fc50f9, + 0x21f4e0fc, + 0x0242b63f, + 0xf8e91bf4, +/* 0x059d: memx_func_wait */ + 0x2c87f000, + 0xcf0684b6, + 0x1e980088, + 0x011d9800, + 0x98021c98, + 0x10b6031b, + 0x9c21f410, +/* 0x05ba: memx_func_delay */ + 0x1e9800f8, 0x0410b600, - 0xf0103495, - 0x35980c30, - 0xb855f9de, - 0x1ef40612, - 0xfcd0fcec, - 0xd521f5e0, -/* 0x0593: memx_info */ - 0xf100f802, - 0xf103acc7, - 0xf50800b7, - 0xf802d521, -/* 0x05a1: memx_recv */ - 0x01d6b000, - 0xb0c40bf4, - 0x0bf400d6, -/* 0x05af: memx_init */ - 0xf800f8e9, -/* 0x05b1: perf_recv */ -/* 0x05b3: perf_init */ - 0xf800f800, -/* 0x05b5: i2c_drive_scl */ - 0x0036b000, - 0xf1110bf4, - 0xb607e007, - 0x01d00604, - 0xf804bd00, -/* 0x05c9: i2c_drive_scl_lo */ - 0xe407f100, - 0x0604b607, - 0xbd0001d0, -/* 0x05d7: i2c_drive_sda */ - 0xb000f804, - 0x0bf40036, - 0xe007f111, - 0x0604b607, - 0xbd0002d0, -/* 0x05eb: i2c_drive_sda_lo */ - 0xf100f804, - 0xb607e407, - 0x02d00604, - 0xf804bd00, -/* 0x05f9: i2c_sense_scl */ - 0x0132f400, - 0x07c437f1, - 0xcf0634b6, - 0x31fd0033, - 0x060bf404, -/* 0x060f: i2c_sense_scl_done */ - 0xf80131f4, -/* 0x0611: i2c_sense_sda */ - 0x0132f400, - 0x07c437f1, - 0xcf0634b6, - 0x32fd0033, - 0x060bf404, -/* 0x0627: i2c_sense_sda_done */ - 0xf80131f4, -/* 0x0629: i2c_raise_scl */ - 0xf140f900, - 0xf0089847, + 0xf87f21f4, +/* 0x05c5: memx_exec */ + 0xf9e0f900, + 0x02c1b9d0, +/* 0x05cf: memx_exec_next */ + 0x9802b2b9, + 0x10b60013, + 0x10349504, + 0x980c30f0, + 0x55f9de35, + 0xf40612b8, + 0xd0fcec1e, + 0x21f5e0fc, + 0x00f80332, +/* 0x05f0: memx_info */ + 0x03acc7f1, + 0x0800b7f1, + 0x033221f5, +/* 0x05fe: memx_recv */ + 0xd6b000f8, + 0xc40bf401, + 0xf400d6b0, + 0x00f8e90b, +/* 0x060c: memx_init */ +/* 0x060e: perf_recv */ + 0x00f800f8, +/* 0x0610: perf_init */ +/* 0x0612: i2c_drive_scl */ + 0x36b000f8, + 0x110bf400, + 0x07e007f1, + 0xd00604b6, + 0x04bd0001, +/* 0x0626: i2c_drive_scl_lo */ + 0x07f100f8, + 0x04b607e4, + 0x0001d006, + 0x00f804bd, +/* 0x0634: i2c_drive_sda */ + 0xf40036b0, + 0x07f1110b, + 0x04b607e0, + 0x0002d006, + 0x00f804bd, +/* 0x0648: i2c_drive_sda_lo */ + 0x07e407f1, + 0xd00604b6, + 0x04bd0002, +/* 0x0656: i2c_sense_scl */ + 0x32f400f8, + 0xc437f101, + 0x0634b607, + 0xfd0033cf, + 0x0bf40431, + 0x0131f406, +/* 0x066c: i2c_sense_scl_done */ +/* 0x066e: i2c_sense_sda */ + 0x32f400f8, + 0xc437f101, + 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, -/* 0x0636: i2c_raise_scl_wait */ - 0xe7f105b5, - 0x21f403e8, - 0xf921f57f, - 0x0901f405, - 0xf40142b6, -/* 0x064a: i2c_raise_scl_done */ - 0x40fcef1b, -/* 0x064e: i2c_start */ - 0x21f500f8, - 0x11f405f9, - 0x1121f50d, - 0x0611f406, -/* 0x065f: i2c_start_rep */ - 0xf0300ef4, + 0x76bb0634, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0xf550fc04, + 0xb6068621, + 0x11f40464, +/* 0x06e9: i2c_start_send */ + 0x0037f01f, + 0x063421f5, + 0x1388e7f1, + 0xf07f21f4, 0x21f50037, - 0x37f005b5, - 0xd721f501, - 0x0076bb05, + 0xe7f10612, + 0x21f41388, +/* 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, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b60629, - 0x1f11f404, -/* 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, + 0x64b60686, + 0x1811f404, 0x1388e7f1, - 0xf87f21f4, -/* 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, + 0xf07f21f4, 0x21f50037, - 0xe7f105b5, + 0xe7f10612, 0x21f41388, - 0x013cf07f, -/* 0x0763: i2c_bitr_done */ - 0xf80131f4, -/* 0x0765: i2c_get_byte */ - 0x0057f000, -/* 0x076b: i2c_get_byte_next */ - 0xb60847f0, - 0x76bb0154, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6071e21, - 0x11f40464, - 0x0553fd2b, - 0xf40142b6, - 0x37f0d81b, - 0x0076bb01, +/* 0x0779: i2c_bitw_out */ +/* 0x077b: i2c_bitr */ + 0xf000f87f, + 0x21f50137, + 0xe7f10634, + 0x21f403e8, + 0x0076bb7f, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b606dd, -/* 0x07b5: i2c_get_byte_done */ -/* 0x07b7: i2c_put_byte */ - 0xf000f804, -/* 0x07ba: i2c_put_byte_next */ - 0x42b60847, - 0x3854ff01, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xdd21f550, - 0x0464b606, - 0xb03411f4, - 0x1bf40046, - 0x0076bbd8, + 0x64b60686, + 0x1b11f404, + 0x066e21f5, + 0xf50037f0, + 0xf1061221, + 0xf41388e7, + 0x3cf07f21, + 0x0131f401, +/* 0x07c0: i2c_bitr_done */ +/* 0x07c2: i2c_get_byte */ + 0x57f000f8, + 0x0847f000, +/* 0x07c8: i2c_get_byte_next */ + 0xbb0154b6, + 0x65b60076, + 0x9450f904, + 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, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b6071e, - 0x0f11f404, - 0xb00076bb, - 0x1bf40136, - 0x0132f406, -/* 0x0810: i2c_put_byte_done */ -/* 0x0812: i2c_addr */ - 0x76bb00f8, + 0x64b6073a, + 0x3411f404, + 0xf40046b0, + 0x76bbd81b, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6064e21, + 0xb6077b21, 0x11f40464, - 0x2ec3e729, - 0x0134b601, - 0xbb0553fd, + 0x0076bb0f, + 0xf40136b0, + 0x32f4061b, +/* 0x086d: i2c_put_byte_done */ +/* 0x086f: i2c_addr */ + 0xbb00f801, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x07b721f5, -/* 0x0857: i2c_addr_done */ - 0xf80464b6, -/* 0x0859: i2c_acquire_addr */ - 0xf8cec700, - 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, + 0x06ab21f5, + 0xf40464b6, + 0xc3e72911, + 0x34b6012e, + 0x0553fd01, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x6821f550, + 0x1421f550, 0x0464b608, - 0xd6b0d0fc, - 0xb31bf500, - 0x0057f000, +/* 0x08b4: i2c_addr_done */ +/* 0x08b6: i2c_acquire_addr */ + 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, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x1221f550, + 0x1421f550, 0x0464b608, - 0x00d011f5, - 0xbbe0c5c7, + 0x00ad11f5, + 0xbb0157f0, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x07b721f5, + 0x086f21f5, 0xf50464b6, - 0xf000ad11, - 0x76bb0157, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6081221, - 0x11f50464, - 0x76bb008a, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6076521, - 0x11f40464, - 0xe05bcb6a, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xaa21f550, - 0x0464b606, - 0xbd025bb9, - 0x430ef474, -/* 0x098c: i2c_recv_not_rd08 */ - 0xf401d6b0, - 0x57f03d1b, - 0x1221f500, - 0x3311f408, - 0xf5e0c5c7, - 0xf407b721, - 0x57f02911, - 0x1221f500, - 0x1f11f408, - 0xf5e0b5c7, - 0xf407b721, - 0x21f51511, - 0x74bd06aa, - 0xf408c5c7, - 0x32f4091b, - 0x030ef402, -/* 0x09cc: i2c_recv_not_wr08 */ -/* 0x09cc: i2c_recv_done */ - 0xf5f8cec7, - 0xfc087721, - 0xf4d0fce0, - 0x7cb90a12, - 0xd521f502, -/* 0x09e1: i2c_recv_exit */ -/* 0x09e3: i2c_init */ + 0xbb008a11, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x07c221f5, + 0xf40464b6, + 0x5bcb6a11, + 0x0076bbe0, + 0xf90465b6, + 0x04659450, + 0xbd0256bb, + 0x0475fd50, + 0x21f550fc, + 0x64b60707, + 0x025bb904, + 0x0ef474bd, +/* 0x09e9: i2c_recv_not_rd08 */ + 0x01d6b043, + 0xf03d1bf4, + 0x21f50057, + 0x11f4086f, + 0xe0c5c733, + 0x081421f5, + 0xf02911f4, + 0x21f50057, + 0x11f4086f, + 0xe0b5c71f, + 0x081421f5, + 0xf51511f4, + 0xbd070721, + 0x08c5c774, + 0xf4091bf4, + 0x0ef40232, +/* 0x0a29: i2c_recv_not_wr08 */ +/* 0x0a29: i2c_recv_done */ + 0xf8cec703, + 0x08d421f5, + 0xd0fce0fc, + 0xb90a12f4, + 0x21f5027c, +/* 0x0a3e: i2c_recv_exit */ + 0x00f80332, +/* 0x0a40: i2c_init */ +/* 0x0a42: test_recv */ + 0x17f100f8, + 0x14b605d8, + 0x0011cf06, + 0xf10110b6, + 0xb605d807, + 0x01d00604, + 0xf104bd00, + 0xf1d900e7, + 0xf5134fe3, + 0xf8025221, +/* 0x0a69: test_init */ + 0x00e7f100, + 0x5221f508, +/* 0x0a73: idle_recv */ 0xf800f802, -/* 0x09e5: test_recv */ - 0xd817f100, - 0x0614b605, - 0xb60011cf, - 0x07f10110, - 0x04b605d8, - 0x0001d006, - 0xe7f104bd, - 0xe3f1d900, - 0x21f5134f, - 0x00f801f5, -/* 0x0a0c: test_init */ - 0x0800e7f1, - 0x01f521f5, -/* 0x0a16: idle_recv */ - 0x00f800f8, -/* 0x0a18: idle */ - 0xf10031f4, - 0xb605d417, - 0x11cf0614, - 0x0110b600, - 0x05d407f1, - 0xd00604b6, - 0x04bd0001, -/* 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, +/* 0x0a75: idle */ + 0x0031f400, + 0x05d417f1, + 0xcf0614b6, + 0x10b60011, + 0xd407f101, + 0x0604b605, + 0xbd0001d0, +/* 0x0a91: idle_loop */ + 0x5817f004, +/* 0x0a97: idle_proc */ +/* 0x0a97: idle_proc_exec */ + 0xf90232f4, + 0x021eb910, + 0x033b21f5, + 0x11f410fc, + 0x0231f409, +/* 0x0aab: idle_proc_next */ + 0xb6ef0ef4, + 0x1fb85810, + 0xe61bf406, + 0xf4dd02f4, + 0x0ef40028, + 0x000000bb, 0x00000000, 0x00000000, 0x00000000, diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc index 125439ed5d87..b85443261569 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc @@ -23,6 +23,7 @@ */ #define NVKM_PPWR_CHIPSET GF119 +#define HW_TICKS_PER_US 324 //#define NVKM_FALCON_PC24 #define NVKM_FALCON_UNSHIFTED_IO diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h index 21929dd7d2ee..1cf8473fcb48 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc.h @@ -24,8 +24,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, /* 0x0058: proc_list_head */ 0x54534f48, - 0x00000428, - 0x000003d1, + 0x00000485, + 0x0000042e, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x00000522, - 0x00000514, + 0x0000057f, + 0x00000571, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x00000526, - 0x00000524, + 0x00000583, + 0x00000581, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x00000941, - 0x000007e4, + 0x0000099e, + 0x00000841, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x00000964, - 0x00000943, + 0x000009c1, + 0x000009a0, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x00000970, - 0x0000096e, + 0x000009cd, + 0x000009cb, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nvd0_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x0000045e, + 0x000004bb, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x0000047f, + 0x000004dc, 0x00000002, 0x00000002, - 0x0000049a, + 0x000004f7, 0x00040003, 0x00000000, - 0x000004b6, + 0x00000513, 0x00010004, 0x00000000, - 0x000004d0, + 0x0000052d, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -784,7 +784,7 @@ uint32_t nvd0_pwr_data[] = { }; uint32_t nvd0_pwr_code[] = { - 0x02d80ef5, + 0x03350ef5, /* 0x0004: rd32 */ 0x07a007f1, 0xbd000ed0, @@ -841,7 +841,7 @@ uint32_t nvd0_pwr_code[] = { 0xbb9a0a98, 0x1cf4029a, 0x01d7f00f, - 0x021f21f5, + 0x027c21f5, 0x0ef494bd, /* 0x00c5: intr_watchdog_next_time */ 0x9b0a9815, @@ -889,7 +889,7 @@ uint32_t nvd0_pwr_code[] = { 0xf14f48e7, 0xf05453e3, 0x21f500d7, - 0xc0fc0284, + 0xc0fc02e1, 0x04c007f1, 0xbd000cd0, /* 0x0175: intr_subintr_skip_fifo */ @@ -912,597 +912,666 @@ uint32_t nvd0_pwr_code[] = { 0xfca0fcb0, 0xfc80fc90, 0x0032f400, -/* 0x01b6: timer */ - 0x90f901f8, - 0x32f480f9, - 0x03f89810, - 0xf40086b0, - 0x84bd531c, - 0xd03807f0, - 0x04bd0008, - 0xcf3487f0, - 0x09980088, - 0x0298bb9a, - 0x8000e9bb, - 0x87f003fe, - 0x0088cf08, - 0xf40284f0, - 0x87f0201b, - 0x0088cf34, - 0xf406e0b8, - 0xe8b8090b, - 0x0e1cf406, -/* 0x0200: timer_reset */ - 0xd03407f0, - 0x04bd000e, -/* 0x020b: timer_enable */ - 0xf09a0e80, - 0x07f00187, - 0x0008d038, -/* 0x0216: timer_done */ - 0x31f404bd, - 0xfc80fc10, -/* 0x021f: send_proc */ - 0xf900f890, - 0x9890f980, - 0xe99805e8, - 0x0486f004, - 0xf40689b8, - 0x98c42a0b, - 0x04889403, - 0xbb1880b6, - 0xfa98008e, - 0x008a8000, - 0x80018d80, - 0x8b80028c, - 0x0190b603, - 0x800794f0, - 0x31f404e9, -/* 0x0259: send_done */ - 0xfc90fc02, -/* 0x025f: find */ - 0xf900f880, - 0x5887f080, -/* 0x0267: find_loop */ - 0x980131f4, - 0xaeb8008a, - 0x100bf406, - 0xb15880b6, - 0xf4026886, - 0x32f4f01b, -/* 0x027d: find_done */ - 0x028eb901, +/* 0x01b6: ticks_from_ns */ + 0xc0f901f8, + 0xd7f1b0f9, + 0xd3f00144, + 0x9b21f500, + 0xe8ccec03, + 0x00b4b003, + 0xec120bf4, + 0xf103e8ee, + 0xf00144d7, + 0x21f500d3, +/* 0x01de: ticks_from_ns_quit */ + 0xceb9039b, + 0xfcb0fc02, +/* 0x01e7: ticks_from_us */ + 0xf900f8c0, + 0xf1b0f9c0, + 0xf00144d7, + 0x21f500d3, + 0xceb9039b, + 0x00b4b002, + 0xbd050bf4, +/* 0x0201: ticks_from_us_quit */ + 0xfcb0fce4, +/* 0x0207: ticks_to_us */ + 0xf100f8c0, + 0xf00144d7, + 0xedff00d3, +/* 0x0213: timer */ + 0xf900f8ec, + 0xf480f990, + 0xf8981032, + 0x0086b003, + 0xbd531cf4, + 0x3807f084, + 0xbd0008d0, + 0x3487f004, + 0x980088cf, + 0x98bb9a09, + 0x00e9bb02, + 0xf003fe80, + 0x88cf0887, + 0x0284f000, + 0xf0201bf4, + 0x88cf3487, + 0x06e0b800, + 0xb8090bf4, + 0x1cf406e8, +/* 0x025d: timer_reset */ + 0x3407f00e, + 0xbd000ed0, + 0x9a0e8004, +/* 0x0268: timer_enable */ + 0xf00187f0, + 0x08d03807, +/* 0x0273: timer_done */ + 0xf404bd00, + 0x80fc1031, + 0x00f890fc, +/* 0x027c: send_proc */ + 0x90f980f9, + 0x9805e898, + 0x86f004e9, + 0x0689b804, + 0xc42a0bf4, + 0x88940398, + 0x1880b604, + 0x98008ebb, + 0x8a8000fa, + 0x018d8000, + 0x80028c80, + 0x90b6038b, + 0x0794f001, + 0xf404e980, +/* 0x02b6: send_done */ + 0x90fc0231, 0x00f880fc, -/* 0x0284: send */ - 0x025f21f5, - 0xf89701f4, -/* 0x028d: recv */ - 0x05e89800, - 0xf404e998, - 0x89b80132, - 0x3d0bf406, - 0xb60389c4, - 0x84f00180, - 0x05e88007, - 0xf902ea98, - 0x018ffef0, - 0xefb9f0f9, - 0x04999402, - 0xb600e9bb, - 0xeb9818e0, - 0x02ec9803, - 0x9801ed98, - 0xa5f900ee, - 0xf8fef0fc, - 0x0131f400, -/* 0x02d6: recv_done */ - 0x00f8f0fc, -/* 0x02d8: init */ - 0x010817f1, - 0xe70011cf, - 0xb6010911, - 0x14fe0814, - 0xe017f100, - 0x0013f000, - 0xd01c07f0, +/* 0x02bc: find */ + 0x87f080f9, + 0x0131f458, +/* 0x02c4: find_loop */ + 0xb8008a98, + 0x0bf406ae, + 0x5880b610, + 0x026886b1, + 0xf4f01bf4, +/* 0x02da: find_done */ + 0x8eb90132, + 0xf880fc02, +/* 0x02e1: send */ + 0xbc21f500, + 0x9701f402, +/* 0x02ea: recv */ + 0xe89800f8, + 0x04e99805, + 0xb80132f4, + 0x0bf40689, + 0x0389c43d, + 0xf00180b6, + 0xe8800784, + 0x02ea9805, + 0x8ffef0f9, + 0xb9f0f901, + 0x999402ef, + 0x00e9bb04, + 0x9818e0b6, + 0xec9803eb, + 0x01ed9802, + 0xf900ee98, + 0xfef0fca5, + 0x31f400f8, +/* 0x0333: recv_done */ + 0xf8f0fc01, +/* 0x0335: init */ + 0x0817f100, + 0x0011cf01, + 0x010911e7, + 0xfe0814b6, + 0x17f10014, + 0x13f000e0, + 0x1c07f000, + 0xbd0001d0, + 0xff17f004, + 0xd01407f0, 0x04bd0001, - 0xf0ff17f0, - 0x01d01407, - 0xf004bd00, - 0x15f10217, - 0x07f00800, - 0x0001d010, - 0x17f104bd, - 0x13f000e6, - 0x0010fe00, - 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, + 0xf10217f0, + 0xf0080015, + 0x01d01007, + 0xf104bd00, + 0xf000e617, + 0x10fe0013, + 0x1031f400, + 0xf00117f0, + 0x01d03807, 0xf004bd00, - 0x07f04027, - 0x0002d000, - 0x00f804bd, -/* 0x0428: host_init */ - 0x008017f1, - 0xf11014b6, - 0xf1027015, - 0xd004d007, - 0x04bd0001, - 0x008017f1, - 0xf11014b6, - 0xf102f015, - 0xd004dc07, - 0x04bd0001, - 0xf10117f0, - 0xd004c407, - 0x04bd0001, -/* 0x045e: memx_func_enter */ - 0x67f000f8, - 0xe007f104, - 0x0006d007, -/* 0x046a: memx_func_enter_wait */ - 0x67f104bd, - 0x66cf07c0, - 0x0464f000, - 0x98f60bf4, - 0x10b60016, -/* 0x047f: memx_func_leave */ +/* 0x038a: init_proc */ + 0xf19858f7, + 0x0016b001, + 0xf9fa0bf4, + 0x58f0b615, +/* 0x039b: mulu32_32_64 */ + 0xf9f20ef4, + 0xf920f910, + 0x9540f930, + 0xd29510e1, + 0xbdc4bd10, + 0xc0edffb4, + 0xb9301dff, + 0x34f10234, + 0x34b6ffff, + 0x1045b610, + 0xbb00c3bb, + 0xe2ff01b4, + 0x0234b930, + 0xffff34f1, + 0xb61034b6, + 0xc3bb1045, + 0x01b4bb00, + 0xbb3012ff, + 0x40fc00b3, + 0x20fc30fc, + 0x00f810fc, +/* 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, 0x07f10467, - 0x06d007e4, -/* 0x048b: memx_func_leave_wait */ + 0x06d007e0, +/* 0x04c7: memx_func_enter_wait */ 0xf104bd00, 0xcf07c067, 0x64f00066, - 0xf61bf404, -/* 0x049a: memx_func_wr32 */ - 0x169800f8, - 0x01159800, - 0xf90810b6, - 0xfc50f960, - 0xf4e0fcd0, - 0x42b63321, - 0xe91bf402, -/* 0x04b6: memx_func_wait */ - 0x87f000f8, - 0x0088cf2c, - 0x98001e98, - 0x1c98011d, - 0x031b9802, - 0xf41010b6, - 0x00f87e21, -/* 0x04d0: memx_func_delay */ - 0xb6001e98, - 0x21f40410, -/* 0x04db: memx_exec */ - 0xf900f867, - 0xb9d0f9e0, - 0xb2b902c1, -/* 0x04e5: memx_exec_next */ - 0x00139802, - 0x950410b6, - 0x30f01034, - 0xde35980c, - 0x12b855f9, - 0xec1ef406, + 0xf60bf404, + 0xb6001698, + 0x00f80410, +/* 0x04dc: memx_func_leave */ + 0xf10467f0, + 0xd007e407, + 0x04bd0006, +/* 0x04e8: memx_func_leave_wait */ + 0x07c067f1, + 0xf00066cf, + 0x1bf40464, +/* 0x04f7: memx_func_wr32 */ + 0x9800f8f6, + 0x15980016, + 0x0810b601, + 0x50f960f9, 0xe0fcd0fc, - 0x028421f5, -/* 0x0506: memx_info */ - 0xc7f100f8, - 0xb7f103ac, - 0x21f50800, - 0x00f80284, -/* 0x0514: memx_recv */ - 0xf401d6b0, - 0xd6b0c40b, - 0xe90bf400, -/* 0x0522: memx_init */ - 0x00f800f8, -/* 0x0524: perf_recv */ -/* 0x0526: perf_init */ - 0x00f800f8, -/* 0x0528: i2c_drive_scl */ - 0xf40036b0, - 0x07f10e0b, - 0x01d007e0, + 0xb63321f4, + 0x1bf40242, +/* 0x0513: memx_func_wait */ + 0xf000f8e9, + 0x88cf2c87, + 0x001e9800, + 0x98011d98, + 0x1b98021c, + 0x1010b603, + 0xf87e21f4, +/* 0x052d: memx_func_delay */ + 0x001e9800, + 0xf40410b6, + 0x00f86721, +/* 0x0538: memx_exec */ + 0xd0f9e0f9, + 0xb902c1b9, +/* 0x0542: memx_exec_next */ + 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, -/* 0x0539: i2c_drive_scl_lo */ - 0xe407f100, - 0x0001d007, - 0x00f804bd, -/* 0x0544: i2c_drive_sda */ - 0xf40036b0, - 0x07f10e0b, - 0x02d007e0, +/* 0x05a1: i2c_drive_sda */ + 0x0036b000, + 0xf10e0bf4, + 0xd007e007, + 0x04bd0002, +/* 0x05b2: i2c_drive_sda_lo */ + 0x07f100f8, + 0x02d007e4, 0xf804bd00, -/* 0x0555: i2c_drive_sda_lo */ - 0xe407f100, - 0x0002d007, - 0x00f804bd, -/* 0x0560: i2c_sense_scl */ - 0xf10132f4, - 0xcf07c437, - 0x31fd0033, - 0x060bf404, -/* 0x0573: i2c_sense_scl_done */ - 0xf80131f4, -/* 0x0575: i2c_sense_sda */ +/* 0x05bd: i2c_sense_scl */ 0x0132f400, 0x07c437f1, 0xfd0033cf, - 0x0bf40432, + 0x0bf40431, 0x0131f406, -/* 0x0588: i2c_sense_sda_done */ -/* 0x058a: i2c_raise_scl */ - 0x40f900f8, - 0x089847f1, +/* 0x05d0: i2c_sense_scl_done */ +/* 0x05d2: i2c_sense_sda */ + 0x32f400f8, + 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, -/* 0x0597: i2c_raise_scl_wait */ - 0xf1052821, - 0xf403e8e7, - 0x21f56721, - 0x01f40560, - 0x0142b609, -/* 0x05ab: i2c_raise_scl_done */ - 0xfcef1bf4, -/* 0x05af: i2c_start */ - 0xf500f840, - 0xf4056021, - 0x21f50d11, - 0x11f40575, - 0x300ef406, -/* 0x05c0: i2c_start_rep */ + 0xbb05a121, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x05e721f5, + 0xf40464b6, +/* 0x064a: i2c_start_send */ + 0x37f01f11, + 0xa121f500, + 0x88e7f105, + 0x6721f413, 0xf50037f0, - 0xf0052821, + 0xf1058521, + 0xf41388e7, +/* 0x0666: i2c_start_out */ + 0x00f86721, +/* 0x0668: i2c_stop */ + 0xf50037f0, + 0xf0058521, + 0x21f50037, + 0xe7f105a1, + 0x21f403e8, + 0x0137f067, + 0x058521f5, + 0x1388e7f1, + 0xf06721f4, 0x21f50137, - 0x76bb0544, + 0xe7f105a1, + 0x21f41388, +/* 0x069b: i2c_bitw */ + 0xf500f867, + 0xf105a121, + 0xf403e8e7, + 0x76bb6721, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6058a21, + 0xb605e721, 0x11f40464, -/* 0x05ed: i2c_start_send */ - 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, + 0x88e7f118, 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, - 0xf1052821, + 0xf1058521, 0xf41388e7, - 0x3cf06721, - 0x0131f401, -/* 0x06c4: i2c_bitr_done */ -/* 0x06c6: i2c_get_byte */ - 0x57f000f8, - 0x0847f000, -/* 0x06cc: i2c_get_byte_next */ - 0xbb0154b6, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x067f21f5, - 0xf40464b6, - 0x53fd2b11, - 0x0142b605, - 0xf0d81bf4, - 0x76bb0137, +/* 0x06da: i2c_bitw_out */ + 0x00f86721, +/* 0x06dc: i2c_bitr */ + 0xf50137f0, + 0xf105a121, + 0xf403e8e7, + 0x76bb6721, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6063e21, -/* 0x0716: i2c_get_byte_done */ - 0x00f80464, -/* 0x0718: i2c_put_byte */ -/* 0x071b: i2c_put_byte_next */ - 0xb60847f0, - 0x54ff0142, - 0x0076bb38, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b6063e, - 0x3411f404, - 0xf40046b0, - 0x76bbd81b, + 0xb605e721, + 0x11f40464, + 0xd221f51b, + 0x0037f005, + 0x058521f5, + 0x1388e7f1, + 0xf06721f4, + 0x31f4013c, +/* 0x0721: i2c_bitr_done */ +/* 0x0723: i2c_get_byte */ + 0xf000f801, + 0x47f00057, +/* 0x0729: i2c_get_byte_next */ + 0x0154b608, + 0xb60076bb, + 0x50f90465, + 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, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6067f21, + 0xb6069b21, 0x11f40464, - 0x0076bb0f, - 0xf40136b0, - 0x32f4061b, -/* 0x0771: i2c_put_byte_done */ -/* 0x0773: i2c_addr */ - 0xbb00f801, + 0x0046b034, + 0xbbd81bf4, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x05af21f5, + 0x06dc21f5, 0xf40464b6, - 0xc3e72911, - 0x34b6012e, - 0x0553fd01, + 0x76bb0f11, + 0x0136b000, + 0xf4061bf4, +/* 0x07ce: i2c_put_byte_done */ + 0x00f80132, +/* 0x07d0: i2c_addr */ 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x1821f550, - 0x0464b607, -/* 0x07b8: i2c_addr_done */ -/* 0x07ba: i2c_acquire_addr */ - 0xcec700f8, - 0x05e4b6f8, - 0xd014e0b7, -/* 0x07c6: i2c_acquire */ + 0x0c21f550, + 0x0464b606, + 0xe72911f4, + 0xb6012ec3, + 0x53fd0134, + 0x0076bb05, + 0xf90465b6, + 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, - 0x21f407ba, - 0x03d9f004, + 0x21f40817, + 0x03daf004, 0xf83321f4, -/* 0x07d5: i2c_release */ - 0xba21f500, - 0x0421f407, - 0xf403daf0, - 0x00f83321, -/* 0x07e4: i2c_recv */ - 0xc70132f4, - 0x14b6f8c1, - 0x2816b002, - 0x013a1ff5, - 0x0bd413a0, - 0xa0003298, - 0x980bac13, - 0x31f40031, - 0xf9d0f902, - 0xf1d0f9e0, - 0xf1000067, - 0x92100063, - 0x76bb0167, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb607c621, - 0xd0fc0464, - 0xf500d6b0, - 0xf000b31b, - 0x76bb0057, +/* 0x0841: i2c_recv */ + 0x0132f400, + 0xb6f8c1c7, + 0x16b00214, + 0x3a1ff528, + 0xd413a001, + 0x0032980b, + 0x0bac13a0, + 0xf4003198, + 0xd0f90231, + 0xd0f9e0f9, + 0x000067f1, + 0x100063f1, + 0xbb016792, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x082321f5, + 0xfc0464b6, + 0x00d6b0d0, + 0x00b31bf5, + 0xbb0057f0, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x07d021f5, + 0xf50464b6, + 0xc700d011, + 0x76bbe0c5, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6077321, + 0xb6077521, 0x11f50464, - 0xc5c700d0, - 0x0076bbe0, + 0x57f000ad, + 0x0076bb01, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b60718, - 0xad11f504, - 0x0157f000, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0x7321f550, - 0x0464b607, - 0x008a11f5, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xc621f550, - 0x0464b606, - 0xcb6a11f4, - 0x76bbe05b, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6060b21, - 0x5bb90464, - 0xf474bd02, -/* 0x08ea: i2c_recv_not_rd08 */ - 0xd6b0430e, - 0x3d1bf401, - 0xf50057f0, - 0xf4077321, - 0xc5c73311, - 0x1821f5e0, - 0x2911f407, - 0xf50057f0, - 0xf4077321, - 0xb5c71f11, - 0x1821f5e0, - 0x1511f407, - 0x060b21f5, - 0xc5c774bd, - 0x091bf408, - 0xf40232f4, -/* 0x092a: i2c_recv_not_wr08 */ -/* 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 */ + 0x64b607d0, + 0x8a11f504, + 0x0076bb00, + 0xf90465b6, + 0x04659450, + 0xbd0256bb, + 0x0475fd50, + 0x21f550fc, + 0x64b60723, + 0x6a11f404, + 0xbbe05bcb, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x066821f5, + 0xb90464b6, + 0x74bd025b, +/* 0x0947: i2c_recv_not_rd08 */ + 0xb0430ef4, + 0x1bf401d6, + 0x0057f03d, + 0x07d021f5, + 0xc73311f4, + 0x21f5e0c5, + 0x11f40775, + 0x0057f029, + 0x07d021f5, + 0xc71f11f4, + 0x21f5e0b5, + 0x11f40775, + 0x6821f515, + 0xc774bd06, + 0x1bf408c5, + 0x0232f409, +/* 0x0987: i2c_recv_not_wr08 */ +/* 0x0987: i2c_recv_done */ + 0xc7030ef4, + 0x21f5f8ce, + 0xe0fc0832, + 0x12f4d0fc, + 0x027cb90a, + 0x02e121f5, +/* 0x099c: i2c_recv_exit */ +/* 0x099e: i2c_init */ 0x00f800f8, -/* 0x0970: idle */ - 0xf10031f4, - 0xcf05d417, - 0x10b60011, - 0xd407f101, - 0x0001d005, -/* 0x0986: idle_loop */ - 0x17f004bd, - 0x0232f458, -/* 0x098c: idle_proc */ -/* 0x098c: idle_proc_exec */ - 0x1eb910f9, - 0x8d21f502, - 0xf410fc02, - 0x31f40911, - 0xef0ef402, -/* 0x09a0: idle_proc_next */ - 0xb85810b6, - 0x1bf4061f, - 0xdd02f4e6, - 0xf40028f4, - 0x0000c10e, +/* 0x09a0: test_recv */ + 0x05d817f1, + 0xb60011cf, + 0x07f10110, + 0x01d005d8, + 0xf104bd00, + 0xf1d900e7, + 0xf5134fe3, + 0xf8021321, +/* 0x09c1: test_init */ + 0x00e7f100, + 0x1321f508, +/* 0x09cb: idle_recv */ + 0xf800f802, +/* 0x09cd: idle */ + 0x0031f400, + 0x05d417f1, + 0xb60011cf, + 0x07f10110, + 0x01d005d4, +/* 0x09e3: idle_loop */ + 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,