diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/arith.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/arith.fuc new file mode 100644 index 000000000000..214a6d9e088d --- /dev/null +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/arith.fuc @@ -0,0 +1,94 @@ +/* + * Copyright 2014 Martin Peres + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the folloing conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: Martin Peres + */ + +/****************************************************************************** + * arith data segment + *****************************************************************************/ +#ifdef INCLUDE_PROC +#endif + +#ifdef INCLUDE_DATA +#endif + +/****************************************************************************** + * arith code segment + *****************************************************************************/ +#ifdef INCLUDE_CODE + +// does a 32x32 -> 64 multiplication +// +// A * B = A_lo * B_lo +// + ( A_hi * B_lo ) << 16 +// + ( A_lo * B_hi ) << 16 +// + ( A_hi * B_hi ) << 32 +// +// $r15 - current +// $r14 - A +// $r13 - B +// $r12 - mul_lo (return) +// $r11 - mul_hi (return) +// $r0 - zero +mulu32_32_64: + push $r1 // A_hi + push $r2 // B_hi + push $r3 // tmp0 + push $r4 // tmp1 + + shr b32 $r1 $r14 16 + shr b32 $r2 $r13 16 + + clear b32 $r12 + clear b32 $r11 + + // A_lo * B_lo + mulu $r12 $r14 $r13 + + // ( A_hi * B_lo ) << 16 + mulu $r3 $r1 $r13 // tmp0 = A_hi * B_lo + mov b32 $r4 $r3 + and $r3 0xffff // tmp0 = tmp0_lo + shl b32 $r3 16 + shr b32 $r4 16 // tmp1 = tmp0_hi + add b32 $r12 $r3 + adc b32 $r11 $r4 + + // ( A_lo * B_hi ) << 16 + mulu $r3 $r14 $r2 // tmp0 = A_lo * B_hi + mov b32 $r4 $r3 + and $r3 0xffff // tmp0 = tmp0_lo + shl b32 $r3 16 + shr b32 $r4 16 // tmp1 = tmp0_hi + add b32 $r12 $r3 + adc b32 $r11 $r4 + + // ( A_hi * B_hi ) << 32 + mulu $r3 $r1 $r2 // tmp0 = A_hi * B_hi + add b32 $r11 $r3 + + pop $r4 + pop $r3 + pop $r2 + pop $r1 + ret +#endif diff --git a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc index 5668e045bac1..9707e3f4460e 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/macros.fuc @@ -250,3 +250,13 @@ */ st b32 D[$r0] reg /* */ clear b32 $r0 #endif + +// does a 64+64 -> 64 unsigned addition (C = A + B) +#define addu64(reg_a_c_hi, reg_a_c_lo, b_hi, b_lo) /* +*/ add b32 reg_a_c_lo b_lo /* +*/ adc b32 reg_a_c_hi b_hi + +// does a 64+64 -> 64 substraction (C = A - B) +#define subu64(reg_a_c_hi, reg_a_c_lo, b_hi, b_lo) /* +*/ sub b32 reg_a_c_lo b_lo /* +*/ sbb b32 reg_a_c_hi b_hi 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 17a8a383d91a..cdff6f649286 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nv108.fuc @@ -34,6 +34,7 @@ .section #nv108_pwr_data #define INCLUDE_PROC #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -44,6 +45,7 @@ #define INCLUDE_DATA #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -56,6 +58,7 @@ .section #nv108_pwr_code #define INCLUDE_CODE #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" 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 38b8ed41bee8..ae8850c76466 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, - 0x00000342, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x0000047c, - 0x0000046e, + 0x000004cb, + 0x000004bd, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x00000480, - 0x0000047e, + 0x000004cf, + 0x000004cd, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x00000884, - 0x0000072b, + 0x000008d3, + 0x0000077a, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x000008a5, - 0x00000886, + 0x000008f4, + 0x000008d5, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x000008b0, - 0x000008ae, + 0x000008ff, + 0x000008fd, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x000003c1, + 0x00000410, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x000003df, + 0x0000042e, 0x00000002, 0x00000002, - 0x000003f7, + 0x00000446, 0x00040003, 0x00000000, - 0x00000414, + 0x00000463, 0x00010004, 0x00000000, - 0x0000042e, + 0x0000047d, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -1010,449 +1010,514 @@ uint32_t nv108_pwr_code[] = { 0xfa0bf400, 0xf0b615f9, 0xf20ef458, -/* 0x0304: host_send */ - 0xcf04b041, - 0xa0420011, - 0x0022cf04, +/* 0x0304: mulu32_32_64 */ + 0x20f910f9, + 0x40f930f9, + 0x9510e195, + 0xc4bd10d2, + 0xedffb4bd, + 0x301dffc0, + 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, - 0x071ec42e, - 0xb704ee94, - 0x980270e0, - 0xec9803eb, - 0x01ed9802, - 0x7e00ee98, - 0xb6000257, - 0x1ec40110, - 0x04b0400f, - 0xbd000ef6, - 0xc70ef404, -/* 0x0340: host_send_done */ -/* 0x0342: host_recv */ - 0x494100f8, - 0x5413f14e, - 0xf4e1a652, -/* 0x034e: host_recv_wait */ - 0xcc41b90b, - 0x0011cf04, - 0xcf04c842, - 0x16f00022, - 0xf412a608, - 0x23c4ef0b, - 0x0434b607, - 0x02f030b7, - 0xb5033bb5, - 0x3db5023c, - 0x003eb501, - 0xf00120b6, - 0xc8400f24, - 0x0002f604, - 0x400204bd, - 0x02f60000, - 0xf804bd00, -/* 0x0391: host_init */ - 0x00804100, - 0xf11014b6, - 0x40027015, - 0x01f604d0, - 0x4104bd00, - 0x14b60080, - 0xf015f110, - 0x04dc4002, - 0xbd0001f6, - 0x40010104, - 0x01f604c4, - 0xf804bd00, -/* 0x03c1: memx_func_enter */ - 0x40040600, - 0x06f607e0, -/* 0x03cb: memx_func_enter_wait */ - 0x4604bd00, - 0x66cf07c0, - 0x0464f000, - 0x98f70bf4, - 0x10b60016, -/* 0x03df: memx_func_leave */ - 0x0600f804, - 0x07e44004, - 0xbd0006f6, -/* 0x03e9: memx_func_leave_wait */ - 0x07c04604, - 0xf00066cf, - 0x1bf40464, -/* 0x03f7: memx_func_wr32 */ - 0x9800f8f7, - 0x15980016, - 0x0810b601, - 0x50f960f9, - 0xe0fcd0fc, - 0x00002e7e, - 0xf40242b6, - 0x00f8e81b, -/* 0x0414: memx_func_wait */ - 0x88cf2c08, - 0x001e9800, - 0x98011d98, - 0x1b98021c, - 0x1010b603, - 0x0000717e, -/* 0x042e: memx_func_delay */ - 0x1e9800f8, - 0x0410b600, - 0x00005d7e, -/* 0x043a: memx_exec */ - 0xe0f900f8, - 0xc1b2d0f9, -/* 0x0442: memx_exec_next */ - 0x1398b2b2, - 0x0410b600, - 0xf0103495, - 0x35980c30, - 0xa655f9de, - 0xed1ef412, - 0xe0fcd0fc, - 0x0002577e, -/* 0x0462: memx_info */ - 0xac4c00f8, - 0x08004b03, - 0x0002577e, -/* 0x046e: memx_recv */ - 0xd6b000f8, - 0xc90bf401, - 0xf400d6b0, - 0x00f8eb0b, -/* 0x047c: memx_init */ -/* 0x047e: perf_recv */ - 0x00f800f8, -/* 0x0480: perf_init */ -/* 0x0482: i2c_drive_scl */ - 0x36b000f8, - 0x0d0bf400, - 0xf607e040, + 0x0723c4ef, + 0xb70434b6, + 0xb502f030, + 0x3cb5033b, + 0x013db502, + 0xb6003eb5, + 0x24f00120, + 0x04c8400f, + 0xbd0002f6, + 0x00400204, + 0x0002f600, + 0x00f804bd, +/* 0x03e0: host_init */ + 0xb6008041, + 0x15f11014, + 0xd0400270, + 0x0001f604, + 0x804104bd, + 0x1014b600, + 0x02f015f1, + 0xf604dc40, 0x04bd0001, -/* 0x0492: i2c_drive_scl_lo */ - 0xe44000f8, - 0x0001f607, + 0xc4400101, + 0x0001f604, 0x00f804bd, -/* 0x049c: i2c_drive_sda */ - 0xf40036b0, - 0xe0400d0b, - 0x0002f607, - 0x00f804bd, -/* 0x04ac: i2c_drive_sda_lo */ +/* 0x0410: memx_func_enter */ + 0xe0400406, + 0x0006f607, +/* 0x041a: memx_func_enter_wait */ + 0xc04604bd, + 0x0066cf07, + 0xf40464f0, + 0x1698f70b, + 0x0410b600, +/* 0x042e: memx_func_leave */ + 0x040600f8, 0xf607e440, - 0x04bd0002, -/* 0x04b6: i2c_sense_scl */ - 0x32f400f8, - 0x07c44301, - 0xfd0033cf, - 0x0bf40431, - 0x0131f406, -/* 0x04c8: i2c_sense_scl_done */ -/* 0x04ca: i2c_sense_sda */ - 0x32f400f8, - 0x07c44301, - 0xfd0033cf, - 0x0bf40432, - 0x0131f406, -/* 0x04dc: i2c_sense_sda_done */ -/* 0x04de: i2c_raise_scl */ - 0x40f900f8, - 0x03089844, - 0x04827e01, -/* 0x04e9: i2c_raise_scl_wait */ - 0x03e84e00, - 0x00005d7e, - 0x0004b67e, - 0xb60901f4, - 0x1bf40142, -/* 0x04fd: i2c_raise_scl_done */ - 0xf840fcef, -/* 0x0501: i2c_start */ - 0x04b67e00, - 0x0d11f400, - 0x0004ca7e, - 0xf40611f4, -/* 0x0512: i2c_start_rep */ - 0x00032e0e, - 0x0004827e, - 0x9c7e0103, - 0x76bb0004, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0x7e50fc04, - 0xb60004de, - 0x11f40464, -/* 0x053d: i2c_start_send */ - 0x7e00031d, - 0x4e00049c, - 0x5d7e1388, - 0x00030000, - 0x0004827e, - 0x7e13884e, -/* 0x0557: i2c_start_out */ + 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, -/* 0x0559: i2c_stop */ - 0x7e000300, - 0x03000482, - 0x049c7e00, - 0x03e84e00, - 0x00005d7e, - 0x827e0103, - 0x884e0004, - 0x005d7e13, - 0x7e010300, - 0x4e00049c, - 0x5d7e1388, - 0x00f80000, -/* 0x0588: i2c_bitw */ - 0x00049c7e, +/* 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, - 0xbb00005d, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x0004de7e, - 0xf40464b6, - 0x884e1711, - 0x005d7e13, - 0x7e000300, - 0x4e000482, - 0x5d7e1388, -/* 0x05c6: i2c_bitw_out */ - 0x00f80000, -/* 0x05c8: i2c_bitr */ - 0x9c7e0103, - 0xe84e0004, - 0x005d7e03, + 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, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, - 0xde7e50fc, - 0x64b60004, - 0x1a11f404, - 0x0004ca7e, - 0x827e0003, + 0x2d7e50fc, + 0x64b60005, + 0x1d11f404, +/* 0x058c: i2c_start_send */ + 0xeb7e0003, 0x884e0004, 0x005d7e13, - 0x013cf000, -/* 0x060b: i2c_bitr_done */ - 0xf80131f4, -/* 0x060d: i2c_get_byte */ - 0x04000500, -/* 0x0611: i2c_get_byte_next */ - 0x0154b608, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0x05c87e50, - 0x0464b600, - 0xfd2a11f4, - 0x42b60553, - 0xd81bf401, - 0x76bb0103, + 0x7e000300, + 0x4e0004d1, + 0x5d7e1388, +/* 0x05a6: i2c_start_out */ + 0x00f80000, +/* 0x05a8: i2c_stop */ + 0xd17e0003, + 0x00030004, + 0x0004eb7e, + 0x7e03e84e, + 0x0300005d, + 0x04d17e01, + 0x13884e00, + 0x00005d7e, + 0xeb7e0103, + 0x884e0004, + 0x005d7e13, +/* 0x05d7: i2c_bitw */ + 0x7e00f800, + 0x4e0004eb, + 0x5d7e03e8, + 0x76bb0000, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, - 0xb6000588, -/* 0x065a: i2c_get_byte_done */ - 0x00f80464, -/* 0x065c: i2c_put_byte */ -/* 0x065e: i2c_put_byte_next */ - 0x42b60804, - 0x3854ff01, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0x05887e50, - 0x0464b600, - 0xb03411f4, - 0x1bf40046, - 0x0076bbd8, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0xc87e50fc, - 0x64b60005, - 0x0f11f404, - 0xb00076bb, - 0x1bf40136, - 0x0132f406, -/* 0x06b4: i2c_put_byte_done */ -/* 0x06b6: i2c_addr */ - 0x76bb00f8, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0x7e50fc04, - 0xb6000501, + 0xb600052d, 0x11f40464, - 0x2ec3e729, - 0x0134b601, - 0xbb0553fd, + 0x13884e17, + 0x00005d7e, + 0xd17e0003, + 0x884e0004, + 0x005d7e13, +/* 0x0615: i2c_bitw_out */ +/* 0x0617: i2c_bitr */ + 0x0300f800, + 0x04eb7e01, + 0x03e84e00, + 0x00005d7e, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x052d7e50, + 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, - 0x00065c7e, -/* 0x06fb: i2c_addr_done */ - 0xf80464b6, -/* 0x06fd: i2c_acquire_addr */ - 0xf8cec700, - 0xb705e4b6, - 0xf8d014e0, -/* 0x0709: i2c_acquire */ - 0x06fd7e00, - 0x00047e00, - 0x03d9f000, - 0x00002e7e, -/* 0x071a: i2c_release */ - 0xfd7e00f8, - 0x047e0006, - 0xdaf00000, - 0x002e7e03, -/* 0x072b: i2c_recv */ - 0xf400f800, - 0xc1c70132, - 0x0214b6f8, - 0xf52816b0, - 0xb801371f, - 0x000bd413, - 0xb8003298, - 0x000bac13, - 0xf4003198, - 0xd0f90231, - 0xd0f9e0f9, - 0x000067f1, - 0x100063f1, - 0xbb016792, + 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, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x0007097e, - 0xfc0464b6, - 0x00d6b0d0, - 0x00b01bf5, - 0x76bb0005, + 0x0005d77e, + 0xf40464b6, + 0x46b03411, + 0xd81bf400, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x06177e50, + 0x0464b600, + 0xbb0f11f4, + 0x36b00076, + 0x061bf401, +/* 0x0703: i2c_put_byte_done */ + 0xf80132f4, +/* 0x0705: i2c_addr */ + 0x0076bb00, + 0xf90465b6, + 0x04659450, + 0xbd0256bb, + 0x0475fd50, + 0x507e50fc, + 0x64b60005, + 0x2911f404, + 0x012ec3e7, + 0xfd0134b6, + 0x76bb0553, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0x7e50fc04, - 0xb60006b6, + 0xb60006ab, +/* 0x074a: i2c_addr_done */ + 0x00f80464, +/* 0x074c: i2c_acquire_addr */ + 0xb6f8cec7, + 0xe0b705e4, + 0x00f8d014, +/* 0x0758: i2c_acquire */ + 0x00074c7e, + 0x0000047e, + 0x7e03d9f0, + 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, + 0xf90465b6, + 0x04659450, + 0xbd0256bb, + 0x0475fd50, + 0x057e50fc, + 0x64b60007, + 0xcc11f504, + 0xe0c5c700, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x06ab7e50, + 0x0464b600, + 0x00a911f5, + 0x76bb0105, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0x7e50fc04, + 0xb6000705, 0x11f50464, - 0xc5c700cc, - 0x0076bbe0, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x5c7e50fc, - 0x64b60006, - 0xa911f504, - 0xbb010500, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x0006b67e, - 0xf50464b6, - 0xbb008711, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x00060d7e, - 0xf40464b6, - 0x5bcb6711, - 0x0076bbe0, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x597e50fc, - 0x64b60005, - 0xbd5bb204, - 0x410ef474, -/* 0x0830: i2c_recv_not_rd08 */ - 0xf401d6b0, - 0x00053b1b, - 0x0006b67e, - 0xc73211f4, - 0x5c7ee0c5, - 0x11f40006, - 0x7e000528, - 0xf40006b6, - 0xb5c71f11, - 0x065c7ee0, - 0x1511f400, - 0x0005597e, - 0xc5c774bd, - 0x091bf408, - 0xf40232f4, -/* 0x086e: i2c_recv_not_wr08 */ -/* 0x086e: i2c_recv_done */ - 0xcec7030e, - 0x071a7ef8, - 0xfce0fc00, - 0x0912f4d0, - 0x577e7cb2, -/* 0x0882: i2c_recv_exit */ - 0x00f80002, -/* 0x0884: i2c_init */ -/* 0x0886: test_recv */ - 0x584100f8, + 0x76bb0087, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0x7e50fc04, + 0xb600065c, + 0x11f40464, + 0xe05bcb67, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x05a87e50, + 0x0464b600, + 0x74bd5bb2, +/* 0x087f: i2c_recv_not_rd08 */ + 0xb0410ef4, + 0x1bf401d6, + 0x7e00053b, + 0xf4000705, + 0xc5c73211, + 0x06ab7ee0, + 0x2811f400, + 0x057e0005, + 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, + 0xb60011cf, + 0x58400110, + 0x0001f604, + 0xe7f104bd, + 0xe3f1d900, + 0x967e134f, + 0x00f80001, +/* 0x08f4: test_init */ + 0x7e08004e, + 0xf8000196, +/* 0x08fd: idle_recv */ +/* 0x08ff: idle */ + 0xf400f800, + 0x54410031, 0x0011cf04, 0x400110b6, - 0x01f60458, - 0xf104bd00, - 0xf1d900e7, - 0x7e134fe3, - 0xf8000196, -/* 0x08a5: test_init */ - 0x08004e00, - 0x0001967e, -/* 0x08ae: idle_recv */ - 0x00f800f8, -/* 0x08b0: idle */ - 0x410031f4, - 0x11cf0454, - 0x0110b600, - 0xf6045440, - 0x04bd0001, -/* 0x08c4: idle_loop */ - 0x32f45801, -/* 0x08c9: idle_proc */ -/* 0x08c9: idle_proc_exec */ - 0xb210f902, - 0x02607e1e, - 0xf410fc00, - 0x31f40911, - 0xf00ef402, -/* 0x08dc: idle_proc_next */ - 0xa65810b6, - 0xe81bf41f, - 0xf4e002f4, - 0x0ef40028, - 0x000000c6, + 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, + 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, 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 6744fcc06151..86a3ddae0099 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nva3.fuc @@ -34,6 +34,7 @@ .section #nva3_pwr_data #define INCLUDE_PROC #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -44,6 +45,7 @@ #define INCLUDE_DATA #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -56,6 +58,7 @@ .section #nva3_pwr_code #define INCLUDE_CODE #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" 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 2f152b553621..d0d82c20a38f 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, - 0x0000044c, - 0x000003e9, + 0x0000049d, + 0x0000043a, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x0000055e, - 0x00000550, + 0x000005af, + 0x000005a1, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x00000562, - 0x00000560, + 0x000005b3, + 0x000005b1, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x00000992, - 0x00000835, + 0x000009e3, + 0x00000886, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x000009bb, - 0x00000994, + 0x00000a0c, + 0x000009e5, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nva3_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x000009c7, - 0x000009c5, + 0x00000a18, + 0x00000a16, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nva3_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x0000048b, + 0x000004dc, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x000004b2, + 0x00000503, 0x00000002, 0x00000002, - 0x000004d3, + 0x00000524, 0x00040003, 0x00000000, - 0x000004ef, + 0x00000540, 0x00010004, 0x00000000, - 0x0000050c, + 0x0000055d, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -1113,503 +1113,504 @@ uint32_t nva3_pwr_code[] = { 0xf40016b0, 0x15f9fa0b, 0xf458f0b6, -/* 0x039e: host_send */ - 0x17f1f20e, - 0x14b604b0, - 0x0011cf06, - 0x04a027f1, - 0xcf0624b6, - 0x12b80022, - 0x320bf406, - 0x94071ec4, - 0xe0b704ee, - 0xeb980270, - 0x02ec9803, - 0x9801ed98, - 0x21f500ee, - 0x10b602d5, - 0x0f1ec401, - 0x04b007f1, - 0xd00604b6, - 0x04bd000e, -/* 0x03e7: host_send_done */ - 0xf8ba0ef4, -/* 0x03e9: host_recv */ - 0x4917f100, - 0x5413f14e, - 0x06e1b852, -/* 0x03f7: host_recv_wait */ - 0xf1aa0bf4, - 0xb604cc17, +/* 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, - 0xc827f100, + 0xa027f100, 0x0624b604, - 0xf00022cf, - 0x12b80816, - 0xe60bf406, - 0xb60723c4, - 0x30b70434, - 0x3b8002f0, - 0x023c8003, - 0x80013d80, - 0x20b6003e, - 0x0f24f001, - 0x04c807f1, + 0xb80022cf, + 0x0bf40612, + 0x071ec432, + 0xb704ee94, + 0x980270e0, + 0xec9803eb, + 0x01ed9802, + 0xf500ee98, + 0xb602d521, + 0x1ec40110, + 0xb007f10f, + 0x0604b604, + 0xbd000ed0, + 0xba0ef404, +/* 0x0438: host_send_done */ +/* 0x043a: host_recv */ + 0x17f100f8, + 0x13f14e49, + 0xe1b85254, + 0xaa0bf406, +/* 0x0448: host_recv_wait */ + 0x04cc17f1, + 0xcf0614b6, + 0x27f10011, + 0x24b604c8, + 0x0022cf06, + 0xb80816f0, + 0x0bf40612, + 0x0723c4e6, + 0xb70434b6, + 0x8002f030, + 0x3c80033b, + 0x013d8002, + 0xb6003e80, + 0x24f00120, + 0xc807f10f, + 0x0604b604, + 0xbd0002d0, + 0x4027f004, + 0xb60007f0, + 0x02d00604, + 0xf804bd00, +/* 0x049d: host_init */ + 0x8017f100, + 0x1014b600, + 0x027015f1, + 0x04d007f1, 0xd00604b6, - 0x04bd0002, - 0xf04027f0, - 0x04b60007, - 0x0002d006, - 0x00f804bd, -/* 0x044c: host_init */ + 0x04bd0001, 0x008017f1, 0xf11014b6, - 0xf1027015, - 0xb604d007, + 0xf102f015, + 0xb604dc07, 0x01d00604, - 0xf104bd00, - 0xb6008017, - 0x15f11014, - 0x07f102f0, - 0x04b604dc, + 0xf004bd00, + 0x07f10117, + 0x04b604c4, 0x0001d006, - 0x17f004bd, - 0xc407f101, - 0x0604b604, - 0xbd0001d0, -/* 0x048b: memx_func_enter */ + 0x00f804bd, +/* 0x04dc: memx_func_enter */ + 0xf10467f0, + 0xb607e007, + 0x06d00604, +/* 0x04eb: memx_func_enter_wait */ + 0xf104bd00, + 0xb607c067, + 0x66cf0664, + 0x0464f000, + 0x98f30bf4, + 0x10b60016, +/* 0x0503: memx_func_leave */ 0xf000f804, 0x07f10467, - 0x04b607e0, + 0x04b607e4, 0x0006d006, -/* 0x049a: memx_func_enter_wait */ +/* 0x0512: memx_func_leave_wait */ 0x67f104bd, 0x64b607c0, 0x0066cf06, 0xf40464f0, - 0x1698f30b, + 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, 0x0410b600, -/* 0x04b2: memx_func_leave */ - 0x67f000f8, - 0xe407f104, + 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, - 0xbd0006d0, -/* 0x04c1: memx_func_leave_wait */ - 0xc067f104, - 0x0664b607, - 0xf00066cf, - 0x1bf40464, -/* 0x04d3: memx_func_wr32 */ - 0x9800f8f3, - 0x15980016, - 0x0810b601, - 0x50f960f9, - 0xe0fcd0fc, - 0xb63f21f4, - 0x1bf40242, -/* 0x04ef: memx_func_wait */ - 0xf000f8e9, - 0x84b62c87, - 0x0088cf06, - 0x98001e98, - 0x1c98011d, - 0x031b9802, - 0xf41010b6, - 0x00f89c21, -/* 0x050c: memx_func_delay */ - 0xb6001e98, - 0x21f40410, -/* 0x0517: memx_exec */ - 0xf900f87f, - 0xb9d0f9e0, - 0xb2b902c1, -/* 0x0521: memx_exec_next */ - 0x00139802, - 0x950410b6, - 0x30f01034, - 0xde35980c, - 0x12b855f9, - 0xec1ef406, - 0xe0fcd0fc, - 0x02d521f5, -/* 0x0542: memx_info */ - 0xc7f100f8, - 0xb7f103ac, - 0x21f50800, - 0x00f802d5, -/* 0x0550: memx_recv */ - 0xf401d6b0, - 0xd6b0c40b, - 0xe90bf400, -/* 0x055e: memx_init */ - 0x00f800f8, -/* 0x0560: perf_recv */ -/* 0x0562: perf_init */ - 0x00f800f8, -/* 0x0564: i2c_drive_scl */ - 0xf40036b0, - 0x07f1110b, - 0x04b607e0, - 0x0001d006, - 0x00f804bd, -/* 0x0578: i2c_drive_scl_lo */ - 0x07e407f1, - 0xd00604b6, - 0x04bd0001, -/* 0x0586: i2c_drive_sda */ - 0x36b000f8, - 0x110bf400, - 0x07e007f1, - 0xd00604b6, - 0x04bd0002, -/* 0x059a: i2c_drive_sda_lo */ - 0x07f100f8, - 0x04b607e4, - 0x0002d006, - 0x00f804bd, -/* 0x05a8: i2c_sense_scl */ - 0xf10132f4, - 0xb607c437, - 0x33cf0634, - 0x0431fd00, - 0xf4060bf4, -/* 0x05be: i2c_sense_scl_done */ - 0x00f80131, -/* 0x05c0: i2c_sense_sda */ - 0xf10132f4, - 0xb607c437, - 0x33cf0634, - 0x0432fd00, - 0xf4060bf4, -/* 0x05d6: i2c_sense_sda_done */ - 0x00f80131, -/* 0x05d8: i2c_raise_scl */ - 0x47f140f9, - 0x37f00898, - 0x6421f501, -/* 0x05e5: i2c_raise_scl_wait */ + 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, + 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, + 0x21f50037, + 0x37f005b5, + 0xd721f501, + 0x0076bb05, + 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, + 0x1388e7f1, + 0xf87f21f4, +/* 0x06dd: i2c_bitw */ + 0xd721f500, 0xe8e7f105, 0x7f21f403, - 0x05a821f5, - 0xb60901f4, - 0x1bf40142, -/* 0x05f9: i2c_raise_scl_done */ - 0xf840fcef, -/* 0x05fd: i2c_start */ - 0xa821f500, - 0x0d11f405, - 0x05c021f5, - 0xf40611f4, -/* 0x060e: i2c_start_rep */ - 0x37f0300e, - 0x6421f500, - 0x0137f005, - 0x058621f5, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0xd821f550, - 0x0464b605, -/* 0x063b: i2c_start_send */ - 0xf01f11f4, - 0x21f50037, - 0xe7f10586, - 0x21f41388, - 0x0037f07f, - 0x056421f5, - 0x1388e7f1, -/* 0x0657: i2c_start_out */ - 0xf87f21f4, -/* 0x0659: i2c_stop */ - 0x0037f000, - 0x056421f5, - 0xf50037f0, - 0xf1058621, - 0xf403e8e7, - 0x37f07f21, - 0x6421f501, - 0x88e7f105, - 0x7f21f413, - 0xf50137f0, - 0xf1058621, + 0x2921f550, + 0x0464b606, + 0xf11811f4, 0xf41388e7, - 0x00f87f21, -/* 0x068c: i2c_bitw */ - 0x058621f5, - 0x03e8e7f1, - 0xbb7f21f4, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x05d821f5, - 0xf40464b6, - 0xe7f11811, - 0x21f41388, - 0x0037f07f, - 0x056421f5, - 0x1388e7f1, -/* 0x06cb: i2c_bitw_out */ - 0xf87f21f4, -/* 0x06cd: i2c_bitr */ - 0x0137f000, - 0x058621f5, - 0x03e8e7f1, - 0xbb7f21f4, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x05d821f5, - 0xf40464b6, - 0x21f51b11, - 0x37f005c0, - 0x6421f500, + 0x37f07f21, + 0xb521f500, 0x88e7f105, 0x7f21f413, - 0xf4013cf0, -/* 0x0712: i2c_bitr_done */ - 0x00f80131, -/* 0x0714: i2c_get_byte */ - 0xf00057f0, -/* 0x071a: i2c_get_byte_next */ - 0x54b60847, +/* 0x071c: i2c_bitw_out */ +/* 0x071e: i2c_bitr */ + 0x37f000f8, + 0xd721f501, + 0xe8e7f105, + 0x7f21f403, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x2921f550, + 0x0464b606, + 0xf51b11f4, + 0xf0061121, + 0x21f50037, + 0xe7f105b5, + 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, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b606cd, - 0x2b11f404, - 0xb60553fd, - 0x1bf40142, - 0x0137f0d8, + 0x64b606dd, +/* 0x07b5: i2c_get_byte_done */ +/* 0x07b7: i2c_put_byte */ + 0xf000f804, +/* 0x07ba: i2c_put_byte_next */ + 0x42b60847, + 0x3854ff01, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x8c21f550, + 0xdd21f550, 0x0464b606, -/* 0x0764: i2c_get_byte_done */ -/* 0x0766: i2c_put_byte */ - 0x47f000f8, -/* 0x0769: i2c_put_byte_next */ - 0x0142b608, - 0xbb3854ff, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x068c21f5, - 0xf40464b6, - 0x46b03411, - 0xd81bf400, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xcd21f550, - 0x0464b606, - 0xbb0f11f4, - 0x36b00076, - 0x061bf401, -/* 0x07bf: i2c_put_byte_done */ - 0xf80132f4, -/* 0x07c1: i2c_addr */ - 0x0076bb00, + 0xb03411f4, + 0x1bf40046, + 0x0076bbd8, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b605fd, - 0x2911f404, - 0x012ec3e7, - 0xfd0134b6, - 0x76bb0553, + 0x64b6071e, + 0x0f11f404, + 0xb00076bb, + 0x1bf40136, + 0x0132f406, +/* 0x0810: i2c_put_byte_done */ +/* 0x0812: i2c_addr */ + 0x76bb00f8, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6076621, -/* 0x0806: i2c_addr_done */ - 0x00f80464, -/* 0x0808: i2c_acquire_addr */ - 0xb6f8cec7, - 0xe0b702e4, - 0xee980bfc, -/* 0x0817: i2c_acquire */ - 0xf500f800, - 0xf4080821, - 0xd9f00421, + 0xb6064e21, + 0x11f40464, + 0x2ec3e729, + 0x0134b601, + 0xbb0553fd, + 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, -/* 0x0826: i2c_release */ - 0x21f500f8, - 0x21f40808, - 0x03daf004, - 0xf83f21f4, -/* 0x0835: i2c_recv */ - 0x0132f400, - 0xb6f8c1c7, - 0x16b00214, - 0x3a1ff528, - 0xd413a001, - 0x0032980b, - 0x0bac13a0, - 0xf4003198, - 0xd0f90231, - 0xd0f9e0f9, - 0x000067f1, - 0x100063f1, - 0xbb016792, +/* 0x0886: i2c_recv */ + 0x32f400f8, + 0xf8c1c701, + 0xb00214b6, + 0x1ff52816, + 0x13a0013a, + 0x32980bd4, + 0xac13a000, + 0x0031980b, + 0xf90231f4, + 0xf9e0f9d0, + 0x0067f1d0, + 0x0063f100, + 0x01679210, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x6821f550, + 0x0464b608, + 0xd6b0d0fc, + 0xb31bf500, + 0x0057f000, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x1221f550, + 0x0464b608, + 0x00d011f5, + 0xbbe0c5c7, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x081721f5, - 0xfc0464b6, - 0x00d6b0d0, - 0x00b31bf5, - 0xbb0057f0, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x07c121f5, + 0x07b721f5, 0xf50464b6, - 0xc700d011, - 0x76bbe0c5, + 0xf000ad11, + 0x76bb0157, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6076621, + 0xb6081221, 0x11f50464, - 0x57f000ad, - 0x0076bb01, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b607c1, - 0x8a11f504, - 0x0076bb00, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b60714, - 0x6a11f404, - 0xbbe05bcb, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x065921f5, - 0xb90464b6, - 0x74bd025b, -/* 0x093b: i2c_recv_not_rd08 */ - 0xb0430ef4, - 0x1bf401d6, - 0x0057f03d, - 0x07c121f5, - 0xc73311f4, - 0x21f5e0c5, - 0x11f40766, - 0x0057f029, - 0x07c121f5, - 0xc71f11f4, - 0x21f5e0b5, - 0x11f40766, - 0x5921f515, - 0xc774bd06, - 0x1bf408c5, - 0x0232f409, -/* 0x097b: i2c_recv_not_wr08 */ -/* 0x097b: i2c_recv_done */ - 0xc7030ef4, - 0x21f5f8ce, - 0xe0fc0826, - 0x12f4d0fc, - 0x027cb90a, - 0x02d521f5, -/* 0x0990: i2c_recv_exit */ -/* 0x0992: i2c_init */ + 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 */ + 0xf800f802, +/* 0x09e5: test_recv */ + 0xd817f100, + 0x0614b605, + 0xb60011cf, + 0x07f10110, + 0x04b605d8, + 0x0001d006, + 0xe7f104bd, + 0xe3f1d900, + 0x21f5134f, + 0x00f801f5, +/* 0x0a0c: test_init */ + 0x0800e7f1, + 0x01f521f5, +/* 0x0a16: idle_recv */ 0x00f800f8, -/* 0x0994: test_recv */ - 0x05d817f1, - 0xcf0614b6, - 0x10b60011, - 0xd807f101, - 0x0604b605, - 0xbd0001d0, - 0x00e7f104, - 0x4fe3f1d9, - 0xf521f513, -/* 0x09bb: test_init */ - 0xf100f801, - 0xf50800e7, - 0xf801f521, -/* 0x09c5: idle_recv */ -/* 0x09c7: idle */ - 0xf400f800, - 0x17f10031, - 0x14b605d4, - 0x0011cf06, - 0xf10110b6, - 0xb605d407, - 0x01d00604, -/* 0x09e3: idle_loop */ - 0xf004bd00, - 0x32f45817, -/* 0x09e9: idle_proc */ -/* 0x09e9: idle_proc_exec */ - 0xb910f902, - 0x21f5021e, - 0x10fc02de, - 0xf40911f4, - 0x0ef40231, -/* 0x09fd: idle_proc_next */ - 0x5810b6ef, - 0xf4061fb8, - 0x02f4e61b, - 0x0028f4dd, - 0x00bb0ef4, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, +/* 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, 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 48f79434a449..ddd72d65da02 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvc0.fuc @@ -34,6 +34,7 @@ .section #nvc0_pwr_data #define INCLUDE_PROC #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -44,6 +45,7 @@ #define INCLUDE_DATA #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -56,6 +58,7 @@ .section #nvc0_pwr_code #define INCLUDE_CODE #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" 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 ca96a045059c..1e2ab16918e1 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, - 0x0000044c, - 0x000003e9, + 0x0000049d, + 0x0000043a, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x0000055e, - 0x00000550, + 0x000005af, + 0x000005a1, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x00000562, - 0x00000560, + 0x000005b3, + 0x000005b1, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x00000992, - 0x00000835, + 0x000009e3, + 0x00000886, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x000009bb, - 0x00000994, + 0x00000a0c, + 0x000009e5, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nvc0_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x000009c7, - 0x000009c5, + 0x00000a18, + 0x00000a16, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nvc0_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x0000048b, + 0x000004dc, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x000004b2, + 0x00000503, 0x00000002, 0x00000002, - 0x000004d3, + 0x00000524, 0x00040003, 0x00000000, - 0x000004ef, + 0x00000540, 0x00010004, 0x00000000, - 0x0000050c, + 0x0000055d, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -1113,503 +1113,504 @@ uint32_t nvc0_pwr_code[] = { 0xf40016b0, 0x15f9fa0b, 0xf458f0b6, -/* 0x039e: host_send */ - 0x17f1f20e, - 0x14b604b0, - 0x0011cf06, - 0x04a027f1, - 0xcf0624b6, - 0x12b80022, - 0x320bf406, - 0x94071ec4, - 0xe0b704ee, - 0xeb980270, - 0x02ec9803, - 0x9801ed98, - 0x21f500ee, - 0x10b602d5, - 0x0f1ec401, - 0x04b007f1, - 0xd00604b6, - 0x04bd000e, -/* 0x03e7: host_send_done */ - 0xf8ba0ef4, -/* 0x03e9: host_recv */ - 0x4917f100, - 0x5413f14e, - 0x06e1b852, -/* 0x03f7: host_recv_wait */ - 0xf1aa0bf4, - 0xb604cc17, +/* 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, - 0xc827f100, + 0xa027f100, 0x0624b604, - 0xf00022cf, - 0x12b80816, - 0xe60bf406, - 0xb60723c4, - 0x30b70434, - 0x3b8002f0, - 0x023c8003, - 0x80013d80, - 0x20b6003e, - 0x0f24f001, - 0x04c807f1, + 0xb80022cf, + 0x0bf40612, + 0x071ec432, + 0xb704ee94, + 0x980270e0, + 0xec9803eb, + 0x01ed9802, + 0xf500ee98, + 0xb602d521, + 0x1ec40110, + 0xb007f10f, + 0x0604b604, + 0xbd000ed0, + 0xba0ef404, +/* 0x0438: host_send_done */ +/* 0x043a: host_recv */ + 0x17f100f8, + 0x13f14e49, + 0xe1b85254, + 0xaa0bf406, +/* 0x0448: host_recv_wait */ + 0x04cc17f1, + 0xcf0614b6, + 0x27f10011, + 0x24b604c8, + 0x0022cf06, + 0xb80816f0, + 0x0bf40612, + 0x0723c4e6, + 0xb70434b6, + 0x8002f030, + 0x3c80033b, + 0x013d8002, + 0xb6003e80, + 0x24f00120, + 0xc807f10f, + 0x0604b604, + 0xbd0002d0, + 0x4027f004, + 0xb60007f0, + 0x02d00604, + 0xf804bd00, +/* 0x049d: host_init */ + 0x8017f100, + 0x1014b600, + 0x027015f1, + 0x04d007f1, 0xd00604b6, - 0x04bd0002, - 0xf04027f0, - 0x04b60007, - 0x0002d006, - 0x00f804bd, -/* 0x044c: host_init */ + 0x04bd0001, 0x008017f1, 0xf11014b6, - 0xf1027015, - 0xb604d007, + 0xf102f015, + 0xb604dc07, 0x01d00604, - 0xf104bd00, - 0xb6008017, - 0x15f11014, - 0x07f102f0, - 0x04b604dc, + 0xf004bd00, + 0x07f10117, + 0x04b604c4, 0x0001d006, - 0x17f004bd, - 0xc407f101, - 0x0604b604, - 0xbd0001d0, -/* 0x048b: memx_func_enter */ + 0x00f804bd, +/* 0x04dc: memx_func_enter */ + 0xf10467f0, + 0xb607e007, + 0x06d00604, +/* 0x04eb: memx_func_enter_wait */ + 0xf104bd00, + 0xb607c067, + 0x66cf0664, + 0x0464f000, + 0x98f30bf4, + 0x10b60016, +/* 0x0503: memx_func_leave */ 0xf000f804, 0x07f10467, - 0x04b607e0, + 0x04b607e4, 0x0006d006, -/* 0x049a: memx_func_enter_wait */ +/* 0x0512: memx_func_leave_wait */ 0x67f104bd, 0x64b607c0, 0x0066cf06, 0xf40464f0, - 0x1698f30b, + 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, 0x0410b600, -/* 0x04b2: memx_func_leave */ - 0x67f000f8, - 0xe407f104, + 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, - 0xbd0006d0, -/* 0x04c1: memx_func_leave_wait */ - 0xc067f104, - 0x0664b607, - 0xf00066cf, - 0x1bf40464, -/* 0x04d3: memx_func_wr32 */ - 0x9800f8f3, - 0x15980016, - 0x0810b601, - 0x50f960f9, - 0xe0fcd0fc, - 0xb63f21f4, - 0x1bf40242, -/* 0x04ef: memx_func_wait */ - 0xf000f8e9, - 0x84b62c87, - 0x0088cf06, - 0x98001e98, - 0x1c98011d, - 0x031b9802, - 0xf41010b6, - 0x00f89c21, -/* 0x050c: memx_func_delay */ - 0xb6001e98, - 0x21f40410, -/* 0x0517: memx_exec */ - 0xf900f87f, - 0xb9d0f9e0, - 0xb2b902c1, -/* 0x0521: memx_exec_next */ - 0x00139802, - 0x950410b6, - 0x30f01034, - 0xde35980c, - 0x12b855f9, - 0xec1ef406, - 0xe0fcd0fc, - 0x02d521f5, -/* 0x0542: memx_info */ - 0xc7f100f8, - 0xb7f103ac, - 0x21f50800, - 0x00f802d5, -/* 0x0550: memx_recv */ - 0xf401d6b0, - 0xd6b0c40b, - 0xe90bf400, -/* 0x055e: memx_init */ - 0x00f800f8, -/* 0x0560: perf_recv */ -/* 0x0562: perf_init */ - 0x00f800f8, -/* 0x0564: i2c_drive_scl */ - 0xf40036b0, - 0x07f1110b, - 0x04b607e0, - 0x0001d006, - 0x00f804bd, -/* 0x0578: i2c_drive_scl_lo */ - 0x07e407f1, - 0xd00604b6, - 0x04bd0001, -/* 0x0586: i2c_drive_sda */ - 0x36b000f8, - 0x110bf400, - 0x07e007f1, - 0xd00604b6, - 0x04bd0002, -/* 0x059a: i2c_drive_sda_lo */ - 0x07f100f8, - 0x04b607e4, - 0x0002d006, - 0x00f804bd, -/* 0x05a8: i2c_sense_scl */ - 0xf10132f4, - 0xb607c437, - 0x33cf0634, - 0x0431fd00, - 0xf4060bf4, -/* 0x05be: i2c_sense_scl_done */ - 0x00f80131, -/* 0x05c0: i2c_sense_sda */ - 0xf10132f4, - 0xb607c437, - 0x33cf0634, - 0x0432fd00, - 0xf4060bf4, -/* 0x05d6: i2c_sense_sda_done */ - 0x00f80131, -/* 0x05d8: i2c_raise_scl */ - 0x47f140f9, - 0x37f00898, - 0x6421f501, -/* 0x05e5: i2c_raise_scl_wait */ + 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, + 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, + 0x21f50037, + 0x37f005b5, + 0xd721f501, + 0x0076bb05, + 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, + 0x1388e7f1, + 0xf87f21f4, +/* 0x06dd: i2c_bitw */ + 0xd721f500, 0xe8e7f105, 0x7f21f403, - 0x05a821f5, - 0xb60901f4, - 0x1bf40142, -/* 0x05f9: i2c_raise_scl_done */ - 0xf840fcef, -/* 0x05fd: i2c_start */ - 0xa821f500, - 0x0d11f405, - 0x05c021f5, - 0xf40611f4, -/* 0x060e: i2c_start_rep */ - 0x37f0300e, - 0x6421f500, - 0x0137f005, - 0x058621f5, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0xd821f550, - 0x0464b605, -/* 0x063b: i2c_start_send */ - 0xf01f11f4, - 0x21f50037, - 0xe7f10586, - 0x21f41388, - 0x0037f07f, - 0x056421f5, - 0x1388e7f1, -/* 0x0657: i2c_start_out */ - 0xf87f21f4, -/* 0x0659: i2c_stop */ - 0x0037f000, - 0x056421f5, - 0xf50037f0, - 0xf1058621, - 0xf403e8e7, - 0x37f07f21, - 0x6421f501, - 0x88e7f105, - 0x7f21f413, - 0xf50137f0, - 0xf1058621, + 0x2921f550, + 0x0464b606, + 0xf11811f4, 0xf41388e7, - 0x00f87f21, -/* 0x068c: i2c_bitw */ - 0x058621f5, - 0x03e8e7f1, - 0xbb7f21f4, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x05d821f5, - 0xf40464b6, - 0xe7f11811, - 0x21f41388, - 0x0037f07f, - 0x056421f5, - 0x1388e7f1, -/* 0x06cb: i2c_bitw_out */ - 0xf87f21f4, -/* 0x06cd: i2c_bitr */ - 0x0137f000, - 0x058621f5, - 0x03e8e7f1, - 0xbb7f21f4, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x05d821f5, - 0xf40464b6, - 0x21f51b11, - 0x37f005c0, - 0x6421f500, + 0x37f07f21, + 0xb521f500, 0x88e7f105, 0x7f21f413, - 0xf4013cf0, -/* 0x0712: i2c_bitr_done */ - 0x00f80131, -/* 0x0714: i2c_get_byte */ - 0xf00057f0, -/* 0x071a: i2c_get_byte_next */ - 0x54b60847, +/* 0x071c: i2c_bitw_out */ +/* 0x071e: i2c_bitr */ + 0x37f000f8, + 0xd721f501, + 0xe8e7f105, + 0x7f21f403, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x2921f550, + 0x0464b606, + 0xf51b11f4, + 0xf0061121, + 0x21f50037, + 0xe7f105b5, + 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, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b606cd, - 0x2b11f404, - 0xb60553fd, - 0x1bf40142, - 0x0137f0d8, + 0x64b606dd, +/* 0x07b5: i2c_get_byte_done */ +/* 0x07b7: i2c_put_byte */ + 0xf000f804, +/* 0x07ba: i2c_put_byte_next */ + 0x42b60847, + 0x3854ff01, 0xb60076bb, 0x50f90465, 0xbb046594, 0x50bd0256, 0xfc0475fd, - 0x8c21f550, + 0xdd21f550, 0x0464b606, -/* 0x0764: i2c_get_byte_done */ -/* 0x0766: i2c_put_byte */ - 0x47f000f8, -/* 0x0769: i2c_put_byte_next */ - 0x0142b608, - 0xbb3854ff, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x068c21f5, - 0xf40464b6, - 0x46b03411, - 0xd81bf400, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xcd21f550, - 0x0464b606, - 0xbb0f11f4, - 0x36b00076, - 0x061bf401, -/* 0x07bf: i2c_put_byte_done */ - 0xf80132f4, -/* 0x07c1: i2c_addr */ - 0x0076bb00, + 0xb03411f4, + 0x1bf40046, + 0x0076bbd8, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b605fd, - 0x2911f404, - 0x012ec3e7, - 0xfd0134b6, - 0x76bb0553, + 0x64b6071e, + 0x0f11f404, + 0xb00076bb, + 0x1bf40136, + 0x0132f406, +/* 0x0810: i2c_put_byte_done */ +/* 0x0812: i2c_addr */ + 0x76bb00f8, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6076621, -/* 0x0806: i2c_addr_done */ - 0x00f80464, -/* 0x0808: i2c_acquire_addr */ - 0xb6f8cec7, - 0xe0b702e4, - 0xee980bfc, -/* 0x0817: i2c_acquire */ - 0xf500f800, - 0xf4080821, - 0xd9f00421, + 0xb6064e21, + 0x11f40464, + 0x2ec3e729, + 0x0134b601, + 0xbb0553fd, + 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, -/* 0x0826: i2c_release */ - 0x21f500f8, - 0x21f40808, - 0x03daf004, - 0xf83f21f4, -/* 0x0835: i2c_recv */ - 0x0132f400, - 0xb6f8c1c7, - 0x16b00214, - 0x3a1ff528, - 0xd413a001, - 0x0032980b, - 0x0bac13a0, - 0xf4003198, - 0xd0f90231, - 0xd0f9e0f9, - 0x000067f1, - 0x100063f1, - 0xbb016792, +/* 0x0886: i2c_recv */ + 0x32f400f8, + 0xf8c1c701, + 0xb00214b6, + 0x1ff52816, + 0x13a0013a, + 0x32980bd4, + 0xac13a000, + 0x0031980b, + 0xf90231f4, + 0xf9e0f9d0, + 0x0067f1d0, + 0x0063f100, + 0x01679210, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x6821f550, + 0x0464b608, + 0xd6b0d0fc, + 0xb31bf500, + 0x0057f000, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x1221f550, + 0x0464b608, + 0x00d011f5, + 0xbbe0c5c7, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x081721f5, - 0xfc0464b6, - 0x00d6b0d0, - 0x00b31bf5, - 0xbb0057f0, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x07c121f5, + 0x07b721f5, 0xf50464b6, - 0xc700d011, - 0x76bbe0c5, + 0xf000ad11, + 0x76bb0157, 0x0465b600, 0x659450f9, 0x0256bb04, 0x75fd50bd, 0xf550fc04, - 0xb6076621, + 0xb6081221, 0x11f50464, - 0x57f000ad, - 0x0076bb01, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b607c1, - 0x8a11f504, - 0x0076bb00, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b60714, - 0x6a11f404, - 0xbbe05bcb, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x065921f5, - 0xb90464b6, - 0x74bd025b, -/* 0x093b: i2c_recv_not_rd08 */ - 0xb0430ef4, - 0x1bf401d6, - 0x0057f03d, - 0x07c121f5, - 0xc73311f4, - 0x21f5e0c5, - 0x11f40766, - 0x0057f029, - 0x07c121f5, - 0xc71f11f4, - 0x21f5e0b5, - 0x11f40766, - 0x5921f515, - 0xc774bd06, - 0x1bf408c5, - 0x0232f409, -/* 0x097b: i2c_recv_not_wr08 */ -/* 0x097b: i2c_recv_done */ - 0xc7030ef4, - 0x21f5f8ce, - 0xe0fc0826, - 0x12f4d0fc, - 0x027cb90a, - 0x02d521f5, -/* 0x0990: i2c_recv_exit */ -/* 0x0992: i2c_init */ + 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 */ + 0xf800f802, +/* 0x09e5: test_recv */ + 0xd817f100, + 0x0614b605, + 0xb60011cf, + 0x07f10110, + 0x04b605d8, + 0x0001d006, + 0xe7f104bd, + 0xe3f1d900, + 0x21f5134f, + 0x00f801f5, +/* 0x0a0c: test_init */ + 0x0800e7f1, + 0x01f521f5, +/* 0x0a16: idle_recv */ 0x00f800f8, -/* 0x0994: test_recv */ - 0x05d817f1, - 0xcf0614b6, - 0x10b60011, - 0xd807f101, - 0x0604b605, - 0xbd0001d0, - 0x00e7f104, - 0x4fe3f1d9, - 0xf521f513, -/* 0x09bb: test_init */ - 0xf100f801, - 0xf50800e7, - 0xf801f521, -/* 0x09c5: idle_recv */ -/* 0x09c7: idle */ - 0xf400f800, - 0x17f10031, - 0x14b605d4, - 0x0011cf06, - 0xf10110b6, - 0xb605d407, - 0x01d00604, -/* 0x09e3: idle_loop */ - 0xf004bd00, - 0x32f45817, -/* 0x09e9: idle_proc */ -/* 0x09e9: idle_proc_exec */ - 0xb910f902, - 0x21f5021e, - 0x10fc02de, - 0xf40911f4, - 0x0ef40231, -/* 0x09fd: idle_proc_next */ - 0x5810b6ef, - 0xf4061fb8, - 0x02f4e61b, - 0x0028f4dd, - 0x00bb0ef4, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, +/* 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, 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 8a89dfe41ce1..125439ed5d87 100644 --- a/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc +++ b/drivers/gpu/drm/nouveau/core/subdev/pwr/fuc/nvd0.fuc @@ -34,6 +34,7 @@ .section #nvd0_pwr_data #define INCLUDE_PROC #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -44,6 +45,7 @@ #define INCLUDE_DATA #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" @@ -56,6 +58,7 @@ .section #nvd0_pwr_code #define INCLUDE_CODE #include "kernel.fuc" +#include "arith.fuc" #include "host.fuc" #include "memx.fuc" #include "perf.fuc" 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 5d81cbd093e2..21929dd7d2ee 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, - 0x000003d7, - 0x00000380, + 0x00000428, + 0x000003d1, 0x00000000, 0x00000000, 0x00000000, @@ -46,8 +46,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x584d454d, - 0x000004d1, - 0x000004c3, + 0x00000522, + 0x00000514, 0x00000000, 0x00000000, 0x00000000, @@ -68,8 +68,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x46524550, - 0x000004d5, - 0x000004d3, + 0x00000526, + 0x00000524, 0x00000000, 0x00000000, 0x00000000, @@ -90,8 +90,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x5f433249, - 0x000008f0, - 0x00000793, + 0x00000941, + 0x000007e4, 0x00000000, 0x00000000, 0x00000000, @@ -112,8 +112,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x54534554, - 0x00000913, - 0x000008f2, + 0x00000964, + 0x00000943, 0x00000000, 0x00000000, 0x00000000, @@ -134,8 +134,8 @@ uint32_t nvd0_pwr_data[] = { 0x00000000, 0x00000000, 0x454c4449, - 0x0000091f, - 0x0000091d, + 0x00000970, + 0x0000096e, 0x00000000, 0x00000000, 0x00000000, @@ -229,20 +229,20 @@ uint32_t nvd0_pwr_data[] = { /* 0x0370: memx_func_head */ 0x00010000, 0x00000000, - 0x0000040d, + 0x0000045e, /* 0x037c: memx_func_next */ 0x00000001, 0x00000000, - 0x0000042e, + 0x0000047f, 0x00000002, 0x00000002, - 0x00000449, + 0x0000049a, 0x00040003, 0x00000000, - 0x00000465, + 0x000004b6, 0x00010004, 0x00000000, - 0x0000047f, + 0x000004d0, /* 0x03ac: memx_func_tail */ /* 0x03ac: memx_data_head */ 0x00000000, @@ -1024,484 +1024,485 @@ uint32_t nvd0_pwr_code[] = { 0xf40016b0, 0x15f9fa0b, 0xf458f0b6, -/* 0x033e: host_send */ - 0x17f1f20e, - 0x11cf04b0, - 0xa027f100, - 0x0022cf04, +/* 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, - 0x1ec42f0b, - 0x04ee9407, - 0x0270e0b7, - 0x9803eb98, - 0xed9802ec, - 0x00ee9801, - 0x028421f5, - 0xc40110b6, - 0x07f10f1e, - 0x0ed004b0, - 0xf404bd00, -/* 0x037e: host_send_done */ - 0x00f8c30e, -/* 0x0380: host_recv */ - 0x4e4917f1, - 0x525413f1, - 0xf406e1b8, -/* 0x038e: host_recv_wait */ - 0x17f1b30b, - 0x11cf04cc, - 0xc827f100, - 0x0022cf04, - 0xb80816f0, - 0x0bf40612, - 0x0723c4ec, - 0xb70434b6, - 0x8002f030, - 0x3c80033b, - 0x013d8002, - 0xb6003e80, - 0x24f00120, - 0xc807f10f, - 0x0002d004, - 0x27f004bd, - 0x0007f040, - 0xbd0002d0, -/* 0x03d7: host_init */ - 0xf100f804, - 0xb6008017, - 0x15f11014, - 0x07f10270, - 0x01d004d0, - 0xf104bd00, - 0xb6008017, - 0x15f11014, - 0x07f102f0, - 0x01d004dc, + 0x23c4ec0b, + 0x0434b607, + 0x02f030b7, + 0x80033b80, + 0x3d80023c, + 0x003e8001, + 0xf00120b6, + 0x07f10f24, + 0x02d004c8, 0xf004bd00, - 0x07f10117, - 0x01d004c4, - 0xf804bd00, -/* 0x040d: memx_func_enter */ - 0x0467f000, - 0x07e007f1, - 0xbd0006d0, -/* 0x0419: memx_func_enter_wait */ - 0xc067f104, - 0x0066cf07, - 0xf40464f0, - 0x1698f60b, - 0x0410b600, -/* 0x042e: memx_func_leave */ + 0x07f04027, + 0x0002d000, + 0x00f804bd, +/* 0x0428: host_init */ + 0x008017f1, + 0xf11014b6, + 0xf1027015, + 0xd004d007, + 0x04bd0001, + 0x008017f1, + 0xf11014b6, + 0xf102f015, + 0xd004dc07, + 0x04bd0001, + 0xf10117f0, + 0xd004c407, + 0x04bd0001, +/* 0x045e: memx_func_enter */ 0x67f000f8, - 0xe407f104, + 0xe007f104, 0x0006d007, -/* 0x043a: memx_func_leave_wait */ +/* 0x046a: memx_func_enter_wait */ 0x67f104bd, 0x66cf07c0, 0x0464f000, - 0xf8f61bf4, -/* 0x0449: memx_func_wr32 */ - 0x00169800, - 0xb6011598, - 0x60f90810, - 0xd0fc50f9, - 0x21f4e0fc, - 0x0242b633, - 0xf8e91bf4, -/* 0x0465: memx_func_wait */ - 0x2c87f000, - 0x980088cf, - 0x1d98001e, - 0x021c9801, - 0xb6031b98, - 0x21f41010, -/* 0x047f: memx_func_delay */ - 0x9800f87e, - 0x10b6001e, - 0x6721f404, -/* 0x048a: memx_exec */ - 0xe0f900f8, - 0xc1b9d0f9, - 0x02b2b902, -/* 0x0494: memx_exec_next */ - 0xb6001398, - 0x34950410, - 0x0c30f010, - 0xf9de3598, - 0x0612b855, - 0xfcec1ef4, - 0xf5e0fcd0, - 0xf8028421, -/* 0x04b5: memx_info */ - 0xacc7f100, - 0x00b7f103, - 0x8421f508, -/* 0x04c3: memx_recv */ - 0xb000f802, - 0x0bf401d6, - 0x00d6b0c4, - 0xf8e90bf4, -/* 0x04d1: memx_init */ -/* 0x04d3: perf_recv */ - 0xf800f800, -/* 0x04d5: perf_init */ -/* 0x04d7: i2c_drive_scl */ - 0xb000f800, - 0x0bf40036, - 0xe007f10e, + 0x98f60bf4, + 0x10b60016, +/* 0x047f: memx_func_leave */ + 0xf000f804, + 0x07f10467, + 0x06d007e4, +/* 0x048b: memx_func_leave_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, + 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, + 0xf804bd00, +/* 0x0539: i2c_drive_scl_lo */ + 0xe407f100, 0x0001d007, 0x00f804bd, -/* 0x04e8: i2c_drive_scl_lo */ - 0x07e407f1, - 0xbd0001d0, -/* 0x04f3: i2c_drive_sda */ - 0xb000f804, - 0x0bf40036, - 0xe007f10e, +/* 0x0544: i2c_drive_sda */ + 0xf40036b0, + 0x07f10e0b, + 0x02d007e0, + 0xf804bd00, +/* 0x0555: i2c_drive_sda_lo */ + 0xe407f100, 0x0002d007, 0x00f804bd, -/* 0x0504: i2c_drive_sda_lo */ - 0x07e407f1, - 0xbd0002d0, -/* 0x050f: i2c_sense_scl */ - 0xf400f804, - 0x37f10132, - 0x33cf07c4, - 0x0431fd00, - 0xf4060bf4, -/* 0x0522: i2c_sense_scl_done */ - 0x00f80131, -/* 0x0524: i2c_sense_sda */ +/* 0x0560: i2c_sense_scl */ 0xf10132f4, 0xcf07c437, - 0x32fd0033, + 0x31fd0033, 0x060bf404, -/* 0x0537: i2c_sense_sda_done */ +/* 0x0573: i2c_sense_scl_done */ 0xf80131f4, -/* 0x0539: i2c_raise_scl */ - 0xf140f900, - 0xf0089847, - 0x21f50137, -/* 0x0546: i2c_raise_scl_wait */ - 0xe7f104d7, - 0x21f403e8, - 0x0f21f567, - 0x0901f405, - 0xf40142b6, -/* 0x055a: i2c_raise_scl_done */ - 0x40fcef1b, -/* 0x055e: i2c_start */ - 0x21f500f8, - 0x11f4050f, - 0x2421f50d, - 0x0611f405, -/* 0x056f: i2c_start_rep */ - 0xf0300ef4, - 0x21f50037, - 0x37f004d7, - 0xf321f501, - 0x0076bb04, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b60539, - 0x1f11f404, -/* 0x059c: i2c_start_send */ +/* 0x0575: i2c_sense_sda */ + 0x0132f400, + 0x07c437f1, + 0xfd0033cf, + 0x0bf40432, + 0x0131f406, +/* 0x0588: i2c_sense_sda_done */ +/* 0x058a: i2c_raise_scl */ + 0x40f900f8, + 0x089847f1, + 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 */ 0xf50037f0, - 0xf104f321, - 0xf41388e7, - 0x37f06721, - 0xd721f500, - 0x88e7f104, - 0x6721f413, -/* 0x05b8: i2c_start_out */ -/* 0x05ba: i2c_stop */ - 0x37f000f8, - 0xd721f500, - 0x0037f004, - 0x04f321f5, - 0x03e8e7f1, - 0xf06721f4, + 0xf0052821, 0x21f50137, - 0xe7f104d7, - 0x21f41388, - 0x0137f067, - 0x04f321f5, + 0x76bb0544, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0xf550fc04, + 0xb6058a21, + 0x11f40464, +/* 0x05ed: i2c_start_send */ + 0x0037f01f, + 0x054421f5, 0x1388e7f1, - 0xf86721f4, -/* 0x05ed: i2c_bitw */ - 0xf321f500, - 0xe8e7f104, + 0xf06721f4, + 0x21f50037, + 0xe7f10528, + 0x21f41388, +/* 0x0609: i2c_start_out */ +/* 0x060b: i2c_stop */ + 0xf000f867, + 0x21f50037, + 0x37f00528, + 0x4421f500, + 0xe8e7f105, 0x6721f403, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0x3921f550, - 0x0464b605, - 0xf11811f4, + 0xf50137f0, + 0xf1052821, 0xf41388e7, 0x37f06721, - 0xd721f500, - 0x88e7f104, + 0x4421f501, + 0x88e7f105, 0x6721f413, -/* 0x062c: i2c_bitw_out */ -/* 0x062e: i2c_bitr */ - 0x37f000f8, - 0xf321f501, - 0xe8e7f104, - 0x6721f403, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0x3921f550, - 0x0464b605, - 0xf51b11f4, - 0xf0052421, +/* 0x063e: i2c_bitw */ + 0x21f500f8, + 0xe7f10544, + 0x21f403e8, + 0x0076bb67, + 0xf90465b6, + 0x04659450, + 0xbd0256bb, + 0x0475fd50, + 0x21f550fc, + 0x64b6058a, + 0x1811f404, + 0x1388e7f1, + 0xf06721f4, 0x21f50037, - 0xe7f104d7, + 0xe7f10528, 0x21f41388, - 0x013cf067, -/* 0x0673: i2c_bitr_done */ - 0xf80131f4, -/* 0x0675: i2c_get_byte */ - 0x0057f000, -/* 0x067b: i2c_get_byte_next */ - 0xb60847f0, - 0x76bb0154, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6062e21, - 0x11f40464, - 0x0553fd2b, - 0xf40142b6, - 0x37f0d81b, - 0x0076bb01, +/* 0x067d: i2c_bitw_out */ +/* 0x067f: i2c_bitr */ + 0xf000f867, + 0x21f50137, + 0xe7f10544, + 0x21f403e8, + 0x0076bb67, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b605ed, -/* 0x06c5: i2c_get_byte_done */ -/* 0x06c7: i2c_put_byte */ - 0xf000f804, -/* 0x06ca: i2c_put_byte_next */ - 0x42b60847, - 0x3854ff01, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xed21f550, - 0x0464b605, - 0xb03411f4, - 0x1bf40046, - 0x0076bbd8, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b6062e, - 0x0f11f404, - 0xb00076bb, - 0x1bf40136, - 0x0132f406, -/* 0x0720: i2c_put_byte_done */ -/* 0x0722: i2c_addr */ - 0x76bb00f8, - 0x0465b600, - 0x659450f9, - 0x0256bb04, - 0x75fd50bd, - 0xf550fc04, - 0xb6055e21, - 0x11f40464, - 0x2ec3e729, - 0x0134b601, - 0xbb0553fd, + 0x64b6058a, + 0x1b11f404, + 0x057521f5, + 0xf50037f0, + 0xf1052821, + 0xf41388e7, + 0x3cf06721, + 0x0131f401, +/* 0x06c4: i2c_bitr_done */ +/* 0x06c6: i2c_get_byte */ + 0x57f000f8, + 0x0847f000, +/* 0x06cc: i2c_get_byte_next */ + 0xbb0154b6, 0x65b60076, 0x9450f904, 0x56bb0465, 0xfd50bd02, 0x50fc0475, - 0x06c721f5, -/* 0x0767: i2c_addr_done */ - 0xf80464b6, -/* 0x0769: i2c_acquire_addr */ - 0xf8cec700, - 0xb705e4b6, - 0xf8d014e0, -/* 0x0775: i2c_acquire */ - 0x6921f500, - 0x0421f407, - 0xf403d9f0, - 0x00f83321, -/* 0x0784: i2c_release */ - 0x076921f5, - 0xf00421f4, - 0x21f403da, -/* 0x0793: i2c_recv */ - 0xf400f833, - 0xc1c70132, - 0x0214b6f8, - 0xf52816b0, - 0xa0013a1f, - 0x980bd413, - 0x13a00032, - 0x31980bac, - 0x0231f400, - 0xe0f9d0f9, - 0x67f1d0f9, - 0x63f10000, - 0x67921000, - 0x0076bb01, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b60775, - 0xb0d0fc04, - 0x1bf500d6, - 0x57f000b3, - 0x0076bb00, - 0xf90465b6, - 0x04659450, - 0xbd0256bb, - 0x0475fd50, - 0x21f550fc, - 0x64b60722, - 0xd011f504, - 0xe0c5c700, - 0xb60076bb, - 0x50f90465, - 0xbb046594, - 0x50bd0256, - 0xfc0475fd, - 0xc721f550, - 0x0464b606, - 0x00ad11f5, - 0xbb0157f0, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x072221f5, - 0xf50464b6, - 0xbb008a11, - 0x65b60076, - 0x9450f904, - 0x56bb0465, - 0xfd50bd02, - 0x50fc0475, - 0x067521f5, + 0x067f21f5, 0xf40464b6, - 0x5bcb6a11, + 0x53fd2b11, + 0x0142b605, + 0xf0d81bf4, + 0x76bb0137, + 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, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0xf550fc04, + 0xb6067f21, + 0x11f40464, + 0x0076bb0f, + 0xf40136b0, + 0x32f4061b, +/* 0x0771: i2c_put_byte_done */ +/* 0x0773: i2c_addr */ + 0xbb00f801, + 0x65b60076, + 0x9450f904, + 0x56bb0465, + 0xfd50bd02, + 0x50fc0475, + 0x05af21f5, + 0xf40464b6, + 0xc3e72911, + 0x34b6012e, + 0x0553fd01, + 0xb60076bb, + 0x50f90465, + 0xbb046594, + 0x50bd0256, + 0xfc0475fd, + 0x1821f550, + 0x0464b607, +/* 0x07b8: i2c_addr_done */ +/* 0x07ba: i2c_acquire_addr */ + 0xcec700f8, + 0x05e4b6f8, + 0xd014e0b7, +/* 0x07c6: i2c_acquire */ + 0x21f500f8, + 0x21f407ba, + 0x03d9f004, + 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, + 0x0465b600, + 0x659450f9, + 0x0256bb04, + 0x75fd50bd, + 0xf550fc04, + 0xb6077321, + 0x11f50464, + 0xc5c700d0, 0x0076bbe0, 0xf90465b6, 0x04659450, 0xbd0256bb, 0x0475fd50, 0x21f550fc, - 0x64b605ba, - 0x025bb904, - 0x0ef474bd, -/* 0x0899: i2c_recv_not_rd08 */ - 0x01d6b043, - 0xf03d1bf4, - 0x21f50057, - 0x11f40722, - 0xe0c5c733, - 0x06c721f5, - 0xf02911f4, - 0x21f50057, - 0x11f40722, - 0xe0b5c71f, - 0x06c721f5, - 0xf51511f4, - 0xbd05ba21, - 0x08c5c774, - 0xf4091bf4, - 0x0ef40232, -/* 0x08d9: i2c_recv_not_wr08 */ -/* 0x08d9: i2c_recv_done */ - 0xf8cec703, - 0x078421f5, - 0xd0fce0fc, - 0xb90a12f4, - 0x21f5027c, -/* 0x08ee: i2c_recv_exit */ - 0x00f80284, -/* 0x08f0: i2c_init */ -/* 0x08f2: test_recv */ - 0x17f100f8, - 0x11cf05d8, - 0x0110b600, - 0x05d807f1, - 0xbd0001d0, - 0x00e7f104, - 0x4fe3f1d9, - 0xb621f513, -/* 0x0913: test_init */ - 0xf100f801, - 0xf50800e7, - 0xf801b621, -/* 0x091d: idle_recv */ -/* 0x091f: idle */ - 0xf400f800, - 0x17f10031, - 0x11cf05d4, - 0x0110b600, - 0x05d407f1, - 0xbd0001d0, -/* 0x0935: idle_loop */ - 0x5817f004, -/* 0x093b: idle_proc */ -/* 0x093b: idle_proc_exec */ - 0xf90232f4, - 0x021eb910, - 0x028d21f5, - 0x11f410fc, - 0x0231f409, -/* 0x094f: idle_proc_next */ - 0xb6ef0ef4, - 0x1fb85810, - 0xe61bf406, - 0xf4dd02f4, - 0x0ef40028, - 0x000000c1, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0x00000000, + 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 */ + 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, 0x00000000, 0x00000000, 0x00000000,