summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Peres <martin.peres@labri.fr>2014-04-14 02:46:30 +0200
committerMartin Peres <martin.peres@labri.fr>2014-06-15 21:35:51 +0200
commitb0bbe7dc6aefb68c7e305ca160f452db053633e7 (patch)
treef77e9da2dee724c37d2f0dc478f7c70f20e00449
parent6cf5acb21642a77c472c879374c99309627d2bcc (diff)
pwr: fix the timers implementation with concurent processes
The problem with the current implementation is that adding a timer improperly checked which process would time up first by not taking into account how much time elapsed since their timer got scheduled. Rework the re-scheduling decision t fix this. The catch with this fix is that we are limited to scheduling timers of up to 2^31 ticks to avoid any potential overflow. Since we are unlikely to need to wait for more than a second, this won't be a problem :) Another possible fix would be to decrement the timeouts of all processes but it would duplicate a lot of code and dealing with edge cases wasn't pretty last time I checked. Signed-off-by: Martin Peres <martin.peres@free.fr>
-rw-r--r--nvkm/subdev/pwr/fuc/kernel.fuc35
-rw-r--r--nvkm/subdev/pwr/fuc/nv108.fuc.h310
-rw-r--r--nvkm/subdev/pwr/fuc/nva3.fuc.h364
-rw-r--r--nvkm/subdev/pwr/fuc/nvc0.fuc.h364
-rw-r--r--nvkm/subdev/pwr/fuc/nvd0.fuc.h1058
5 files changed, 1137 insertions, 994 deletions
diff --git a/nvkm/subdev/pwr/fuc/kernel.fuc b/nvkm/subdev/pwr/fuc/kernel.fuc
index 8f29badd..dd86439e 100644
--- a/nvkm/subdev/pwr/fuc/kernel.fuc
+++ b/nvkm/subdev/pwr/fuc/kernel.fuc
@@ -245,9 +245,12 @@ intr:
// request the current process be sent a message after a timeout expires
//
// $r15 - current
-// $r14 - ticks
+// $r14 - ticks (make sure it is < 2^31 to avoid any possible overflow)
// $r0 - zero
timer:
+ push $r9
+ push $r8
+
// interrupts off to prevent racing with timer isr
bclr $flags ie0
@@ -255,13 +258,22 @@ timer:
ld b32 $r8 D[$r15 + #proc_time]
cmp b32 $r8 0
bra g #timer_done
- st b32 D[$r15 + #proc_time] $r14
- // halt watchdog timer temporarily and check for a pending
- // interrupt. if there's one already pending, we can just
- // bail since the timer isr will queue the next soonest
- // right after it's done
+ // halt watchdog timer temporarily
+ clear b32 $r8
nv_iowr(NV_PPWR_WATCHDOG_ENABLE, $r8)
+
+ // find out how much time elapsed since the last update
+ // of the watchdog and add this time to the wanted ticks
+ nv_iord($r8, NV_PPWR_WATCHDOG_TIME)
+ ld b32 $r9 D[$r0 + #time_prev]
+ sub b32 $r9 $r8
+ add b32 $r14 $r9
+ st b32 D[$r15 + #proc_time] $r14
+
+ // check for a pending interrupt. if there's one already
+ // pending, we can just bail since the timer isr will
+ // queue the next soonest right after it's done
nv_iord($r8, NV_PPWR_INTR)
and $r8 NV_PPWR_INTR_WATCHDOG
bra nz #timer_enable
@@ -272,10 +284,10 @@ timer:
cmp b32 $r14 $r0
bra e #timer_reset
cmp b32 $r14 $r8
- bra l #timer_done
- timer_reset:
- nv_iowr(NV_PPWR_WATCHDOG_TIME, $r14)
- st b32 D[$r0 + #time_prev] $r14
+ bra g #timer_enable
+ timer_reset:
+ nv_iowr(NV_PPWR_WATCHDOG_TIME, $r14)
+ st b32 D[$r0 + #time_prev] $r14
// re-enable the watchdog timer
timer_enable:
@@ -285,6 +297,9 @@ timer:
// interrupts back on
timer_done:
bset $flags ie0
+
+ pop $r8
+ pop $r9
ret
// send message to another process
diff --git a/nvkm/subdev/pwr/fuc/nv108.fuc.h b/nvkm/subdev/pwr/fuc/nv108.fuc.h
index 4bd43a99..35f6334f 100644
--- a/nvkm/subdev/pwr/fuc/nv108.fuc.h
+++ b/nvkm/subdev/pwr/fuc/nv108.fuc.h
@@ -24,8 +24,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
/* 0x0058: proc_list_head */
0x54534f48,
- 0x00000379,
- 0x0000032a,
+ 0x00000391,
+ 0x00000342,
0x00000000,
0x00000000,
0x00000000,
@@ -46,8 +46,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x0000046f,
- 0x00000461,
+ 0x00000487,
+ 0x00000479,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x00000473,
- 0x00000471,
+ 0x0000048b,
+ 0x00000489,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x00000877,
- 0x0000071e,
+ 0x0000088f,
+ 0x00000736,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x00000898,
- 0x00000879,
+ 0x000008b0,
+ 0x00000891,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nv108_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x000008a3,
- 0x000008a1,
+ 0x000008bb,
+ 0x000008b9,
0x00000000,
0x00000000,
0x00000000,
@@ -229,20 +229,20 @@ uint32_t nv108_pwr_data[] = {
/* 0x0370: memx_func_head */
0x00010000,
0x00000000,
- 0x000003a9,
+ 0x000003c1,
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x000003c7,
+ 0x000003df,
0x00000002,
0x00000002,
- 0x000003df,
+ 0x000003f7,
0x00040003,
0x00000000,
- 0x00000407,
+ 0x0000041f,
0x00010004,
0x00000000,
- 0x00000421,
+ 0x00000439,
/* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */
0x00000000,
@@ -784,7 +784,7 @@ uint32_t nv108_pwr_data[] = {
};
uint32_t nv108_pwr_code[] = {
- 0x02910ef5,
+ 0x02a90ef5,
/* 0x0004: rd32 */
0xf607a040,
0x04bd000e,
@@ -836,7 +836,7 @@ uint32_t nv108_pwr_code[] = {
0x0a98280b,
0x029abb9a,
0x0d0e1cf4,
- 0x01de7e01,
+ 0x01f67e01,
0xf494bd00,
/* 0x00b2: intr_watchdog_next_time */
0x0a98140e,
@@ -881,7 +881,7 @@ uint32_t nv108_pwr_code[] = {
0xc0f900cc,
0xf14f484e,
0x0d5453e3,
- 0x023f7e00,
+ 0x02577e00,
0x40c0fc00,
0x0cf604c0,
/* 0x0157: intr_subintr_skip_fifo */
@@ -905,28 +905,34 @@ uint32_t nv108_pwr_code[] = {
0xfc80fc90,
0x0032f400,
/* 0x0196: timer */
- 0x32f401f8,
+ 0x90f901f8,
+ 0x32f480f9,
0x03f89810,
0xf40086b0,
- 0xfeb53a1c,
- 0xf6380003,
- 0x04bd0008,
+ 0x84bd4a1c,
+ 0x08f63800,
+ 0x0804bd00,
+ 0x0088cf34,
+ 0xbb9a0998,
+ 0xe9bb0298,
+ 0x03feb500,
0x88cf0808,
0x0284f000,
0x081c1bf4,
0x0088cf34,
0x0bf4e0a6,
0xf4e8a608,
-/* 0x01c6: timer_reset */
- 0x3400161e,
+/* 0x01da: timer_reset */
+ 0x34000d1c,
0xbd000ef6,
0x9a0eb504,
-/* 0x01d0: timer_enable */
+/* 0x01e4: timer_enable */
0x38000108,
0xbd0008f6,
-/* 0x01d9: timer_done */
+/* 0x01ed: timer_done */
0x1031f404,
-/* 0x01de: send_proc */
+ 0x90fc80fc,
+/* 0x01f6: send_proc */
0x80f900f8,
0xe89890f9,
0x04e99805,
@@ -941,25 +947,25 @@ uint32_t nv108_pwr_code[] = {
0xb6038bb5,
0x94f00190,
0x04e9b507,
-/* 0x0217: send_done */
+/* 0x022f: send_done */
0xfc0231f4,
0xf880fc90,
-/* 0x021d: find */
+/* 0x0235: find */
0x0880f900,
0x0131f458,
-/* 0x0224: find_loop */
+/* 0x023c: find_loop */
0xa6008a98,
0x100bf4ae,
0xb15880b6,
0xf4026886,
0x32f4f11b,
-/* 0x0239: find_done */
+/* 0x0251: find_done */
0xfc8eb201,
-/* 0x023f: send */
+/* 0x0257: send */
0x7e00f880,
- 0xf400021d,
+ 0xf4000235,
0x00f89b01,
-/* 0x0248: recv */
+/* 0x0260: recv */
0x9805e898,
0x32f404e9,
0xf489a601,
@@ -977,9 +983,9 @@ uint32_t nv108_pwr_code[] = {
0xf900ee98,
0xfef0fca5,
0x31f400f8,
-/* 0x028f: recv_done */
+/* 0x02a7: recv_done */
0xf8f0fc01,
-/* 0x0291: init */
+/* 0x02a9: init */
0x01084100,
0xe70011cf,
0xb6010911,
@@ -998,13 +1004,13 @@ uint32_t nv108_pwr_code[] = {
0x1031f400,
0x38000101,
0xbd0001f6,
-/* 0x02db: init_proc */
+/* 0x02f3: init_proc */
0x98580f04,
0x16b001f1,
0xfa0bf400,
0xf0b615f9,
0xf20ef458,
-/* 0x02ec: host_send */
+/* 0x0304: host_send */
0xcf04b041,
0xa0420011,
0x0022cf04,
@@ -1015,17 +1021,17 @@ uint32_t nv108_pwr_code[] = {
0xec9803eb,
0x01ed9802,
0x7e00ee98,
- 0xb600023f,
+ 0xb6000257,
0x1ec40110,
0x04b0400f,
0xbd0001f6,
0xc70ef404,
-/* 0x0328: host_send_done */
-/* 0x032a: host_recv */
+/* 0x0340: host_send_done */
+/* 0x0342: host_recv */
0x494100f8,
0x5413f14e,
0xf4e1a652,
-/* 0x0336: host_recv_wait */
+/* 0x034e: host_recv_wait */
0xcc41b90b,
0x0011cf04,
0xcf04c842,
@@ -1043,7 +1049,7 @@ uint32_t nv108_pwr_code[] = {
0x400204bd,
0x02f60000,
0xf804bd00,
-/* 0x0379: host_init */
+/* 0x0391: host_init */
0x00804100,
0xf11014b6,
0x40027015,
@@ -1056,24 +1062,24 @@ uint32_t nv108_pwr_code[] = {
0x40010104,
0x01f604c4,
0xf804bd00,
-/* 0x03a9: memx_func_enter */
+/* 0x03c1: memx_func_enter */
0x40040600,
0x06f607e0,
-/* 0x03b3: memx_func_enter_wait */
+/* 0x03cb: memx_func_enter_wait */
0x4604bd00,
0x66cf07c0,
0x0464f000,
0x98f70bf4,
0x10b60016,
-/* 0x03c7: memx_func_leave */
+/* 0x03df: memx_func_leave */
0x0600f804,
0x07e44004,
0xbd0006f6,
-/* 0x03d1: memx_func_leave_wait */
+/* 0x03e9: memx_func_leave_wait */
0x07c04604,
0xf00066cf,
0x1bf40464,
-/* 0x03df: memx_func_wr32 */
+/* 0x03f7: memx_func_wr32 */
0x9800f8f7,
0x15980016,
0x0810b601,
@@ -1084,7 +1090,7 @@ uint32_t nv108_pwr_code[] = {
0xa00506fd,
0xb604bd05,
0x1bf40242,
-/* 0x0407: memx_func_wait */
+/* 0x041f: memx_func_wait */
0x0800f8dd,
0x0088cf2c,
0x98001e98,
@@ -1092,14 +1098,14 @@ uint32_t nv108_pwr_code[] = {
0x031b9802,
0x7e1010b6,
0xf8000071,
-/* 0x0421: memx_func_delay */
+/* 0x0439: memx_func_delay */
0x001e9800,
0x7e0410b6,
0xf800005d,
-/* 0x042d: memx_exec */
+/* 0x0445: memx_exec */
0xf9e0f900,
0xb2c1b2d0,
-/* 0x0435: memx_exec_next */
+/* 0x044d: memx_exec_next */
0x001398b2,
0x950410b6,
0x30f01034,
@@ -1107,104 +1113,104 @@ uint32_t nv108_pwr_code[] = {
0x12a655f9,
0xfced1ef4,
0x7ee0fcd0,
- 0xf800023f,
-/* 0x0455: memx_info */
+ 0xf8000257,
+/* 0x046d: memx_info */
0x03ac4c00,
0x7e08004b,
- 0xf800023f,
-/* 0x0461: memx_recv */
+ 0xf8000257,
+/* 0x0479: memx_recv */
0x01d6b000,
0xb0c90bf4,
0x0bf400d6,
-/* 0x046f: memx_init */
+/* 0x0487: memx_init */
0xf800f8eb,
-/* 0x0471: perf_recv */
-/* 0x0473: perf_init */
+/* 0x0489: perf_recv */
+/* 0x048b: perf_init */
0xf800f800,
-/* 0x0475: i2c_drive_scl */
+/* 0x048d: i2c_drive_scl */
0x0036b000,
0x400d0bf4,
0x01f607e0,
0xf804bd00,
-/* 0x0485: i2c_drive_scl_lo */
+/* 0x049d: i2c_drive_scl_lo */
0x07e44000,
0xbd0001f6,
-/* 0x048f: i2c_drive_sda */
+/* 0x04a7: i2c_drive_sda */
0xb000f804,
0x0bf40036,
0x07e0400d,
0xbd0002f6,
-/* 0x049f: i2c_drive_sda_lo */
+/* 0x04b7: i2c_drive_sda_lo */
0x4000f804,
0x02f607e4,
0xf804bd00,
-/* 0x04a9: i2c_sense_scl */
+/* 0x04c1: i2c_sense_scl */
0x0132f400,
0xcf07c443,
0x31fd0033,
0x060bf404,
-/* 0x04bb: i2c_sense_scl_done */
+/* 0x04d3: i2c_sense_scl_done */
0xf80131f4,
-/* 0x04bd: i2c_sense_sda */
+/* 0x04d5: i2c_sense_sda */
0x0132f400,
0xcf07c443,
0x32fd0033,
0x060bf404,
-/* 0x04cf: i2c_sense_sda_done */
+/* 0x04e7: i2c_sense_sda_done */
0xf80131f4,
-/* 0x04d1: i2c_raise_scl */
+/* 0x04e9: i2c_raise_scl */
0x4440f900,
0x01030898,
- 0x0004757e,
-/* 0x04dc: i2c_raise_scl_wait */
+ 0x00048d7e,
+/* 0x04f4: i2c_raise_scl_wait */
0x7e03e84e,
0x7e00005d,
- 0xf40004a9,
+ 0xf40004c1,
0x42b60901,
0xef1bf401,
-/* 0x04f0: i2c_raise_scl_done */
+/* 0x0508: i2c_raise_scl_done */
0x00f840fc,
-/* 0x04f4: i2c_start */
- 0x0004a97e,
+/* 0x050c: i2c_start */
+ 0x0004c17e,
0x7e0d11f4,
- 0xf40004bd,
+ 0xf40004d5,
0x0ef40611,
-/* 0x0505: i2c_start_rep */
+/* 0x051d: i2c_start_rep */
0x7e00032e,
- 0x03000475,
- 0x048f7e01,
+ 0x0300048d,
+ 0x04a77e01,
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
- 0xd17e50fc,
+ 0xe97e50fc,
0x64b60004,
0x1d11f404,
-/* 0x0530: i2c_start_send */
- 0x8f7e0003,
+/* 0x0548: i2c_start_send */
+ 0xa77e0003,
0x884e0004,
0x005d7e13,
0x7e000300,
- 0x4e000475,
+ 0x4e00048d,
0x5d7e1388,
-/* 0x054a: i2c_start_out */
+/* 0x0562: i2c_start_out */
0x00f80000,
-/* 0x054c: i2c_stop */
- 0x757e0003,
+/* 0x0564: i2c_stop */
+ 0x8d7e0003,
0x00030004,
- 0x00048f7e,
+ 0x0004a77e,
0x7e03e84e,
0x0300005d,
- 0x04757e01,
+ 0x048d7e01,
0x13884e00,
0x00005d7e,
- 0x8f7e0103,
+ 0xa77e0103,
0x884e0004,
0x005d7e13,
-/* 0x057b: i2c_bitw */
+/* 0x0593: i2c_bitw */
0x7e00f800,
- 0x4e00048f,
+ 0x4e0004a7,
0x5d7e03e8,
0x76bb0000,
0x0465b600,
@@ -1212,17 +1218,17 @@ uint32_t nv108_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb60004d1,
+ 0xb60004e9,
0x11f40464,
0x13884e17,
0x00005d7e,
- 0x757e0003,
+ 0x8d7e0003,
0x884e0004,
0x005d7e13,
-/* 0x05b9: i2c_bitw_out */
-/* 0x05bb: i2c_bitr */
+/* 0x05d1: i2c_bitw_out */
+/* 0x05d3: i2c_bitr */
0x0300f800,
- 0x048f7e01,
+ 0x04a77e01,
0x03e84e00,
0x00005d7e,
0xb60076bb,
@@ -1230,26 +1236,26 @@ uint32_t nv108_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x04d17e50,
+ 0x04e97e50,
0x0464b600,
0x7e1a11f4,
- 0x030004bd,
- 0x04757e00,
+ 0x030004d5,
+ 0x048d7e00,
0x13884e00,
0x00005d7e,
0xf4013cf0,
-/* 0x05fe: i2c_bitr_done */
+/* 0x0616: i2c_bitr_done */
0x00f80131,
-/* 0x0600: i2c_get_byte */
+/* 0x0618: i2c_get_byte */
0x08040005,
-/* 0x0604: i2c_get_byte_next */
+/* 0x061c: i2c_get_byte_next */
0xbb0154b6,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x0005bb7e,
+ 0x0005d37e,
0xf40464b6,
0x53fd2a11,
0x0142b605,
@@ -1259,12 +1265,12 @@ uint32_t nv108_pwr_code[] = {
0x04659450,
0xbd0256bb,
0x0475fd50,
- 0x7b7e50fc,
+ 0x937e50fc,
0x64b60005,
-/* 0x064d: i2c_get_byte_done */
-/* 0x064f: i2c_put_byte */
+/* 0x0665: i2c_get_byte_done */
+/* 0x0667: i2c_put_byte */
0x0400f804,
-/* 0x0651: i2c_put_byte_next */
+/* 0x0669: i2c_put_byte_next */
0x0142b608,
0xbb3854ff,
0x65b60076,
@@ -1272,7 +1278,7 @@ uint32_t nv108_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x00057b7e,
+ 0x0005937e,
0xf40464b6,
0x46b03411,
0xd81bf400,
@@ -1281,21 +1287,21 @@ uint32_t nv108_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x05bb7e50,
+ 0x05d37e50,
0x0464b600,
0xbb0f11f4,
0x36b00076,
0x061bf401,
-/* 0x06a7: i2c_put_byte_done */
+/* 0x06bf: i2c_put_byte_done */
0xf80132f4,
-/* 0x06a9: i2c_addr */
+/* 0x06c1: i2c_addr */
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
- 0xf47e50fc,
- 0x64b60004,
+ 0x0c7e50fc,
+ 0x64b60005,
0x2911f404,
0x012ec3e7,
0xfd0134b6,
@@ -1305,24 +1311,24 @@ uint32_t nv108_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb600064f,
-/* 0x06ee: i2c_addr_done */
+ 0xb6000667,
+/* 0x0706: i2c_addr_done */
0x00f80464,
-/* 0x06f0: i2c_acquire_addr */
+/* 0x0708: i2c_acquire_addr */
0xb6f8cec7,
0xe0b705e4,
0x00f8d014,
-/* 0x06fc: i2c_acquire */
- 0x0006f07e,
+/* 0x0714: i2c_acquire */
+ 0x0007087e,
0x0000047e,
0x7e03d9f0,
0xf800002e,
-/* 0x070d: i2c_release */
- 0x06f07e00,
+/* 0x0725: i2c_release */
+ 0x07087e00,
0x00047e00,
0x03daf000,
0x00002e7e,
-/* 0x071e: i2c_recv */
+/* 0x0736: i2c_recv */
0x32f400f8,
0xf8c1c701,
0xb00214b6,
@@ -1342,7 +1348,7 @@ uint32_t nv108_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb60006fc,
+ 0xb6000714,
0xd0fc0464,
0xf500d6b0,
0x0500b01b,
@@ -1351,7 +1357,7 @@ uint32_t nv108_pwr_code[] = {
0x04659450,
0xbd0256bb,
0x0475fd50,
- 0xa97e50fc,
+ 0xc17e50fc,
0x64b60006,
0xcc11f504,
0xe0c5c700,
@@ -1360,7 +1366,7 @@ uint32_t nv108_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x064f7e50,
+ 0x06677e50,
0x0464b600,
0x00a911f5,
0x76bb0105,
@@ -1369,7 +1375,7 @@ uint32_t nv108_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb60006a9,
+ 0xb60006c1,
0x11f50464,
0x76bb0087,
0x0465b600,
@@ -1377,7 +1383,7 @@ uint32_t nv108_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0x7e50fc04,
- 0xb6000600,
+ 0xb6000618,
0x11f40464,
0xe05bcb67,
0xb60076bb,
@@ -1385,37 +1391,37 @@ uint32_t nv108_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x054c7e50,
+ 0x05647e50,
0x0464b600,
0x74bd5bb2,
-/* 0x0823: i2c_recv_not_rd08 */
+/* 0x083b: i2c_recv_not_rd08 */
0xb0410ef4,
0x1bf401d6,
0x7e00053b,
- 0xf40006a9,
+ 0xf40006c1,
0xc5c73211,
- 0x064f7ee0,
+ 0x06677ee0,
0x2811f400,
- 0xa97e0005,
+ 0xc17e0005,
0x11f40006,
0xe0b5c71f,
- 0x00064f7e,
+ 0x0006677e,
0x7e1511f4,
- 0xbd00054c,
+ 0xbd000564,
0x08c5c774,
0xf4091bf4,
0x0ef40232,
-/* 0x0861: i2c_recv_not_wr08 */
-/* 0x0861: i2c_recv_done */
+/* 0x0879: i2c_recv_not_wr08 */
+/* 0x0879: i2c_recv_done */
0xf8cec703,
- 0x00070d7e,
+ 0x0007257e,
0xd0fce0fc,
0xb20912f4,
- 0x023f7e7c,
-/* 0x0875: i2c_recv_exit */
-/* 0x0877: i2c_init */
+ 0x02577e7c,
+/* 0x088d: i2c_recv_exit */
+/* 0x088f: i2c_init */
0xf800f800,
-/* 0x0879: test_recv */
+/* 0x0891: test_recv */
0x04584100,
0xb60011cf,
0x58400110,
@@ -1424,26 +1430,26 @@ uint32_t nv108_pwr_code[] = {
0xe3f1d900,
0x967e134f,
0x00f80001,
-/* 0x0898: test_init */
+/* 0x08b0: test_init */
0x7e08004e,
0xf8000196,
-/* 0x08a1: idle_recv */
-/* 0x08a3: idle */
+/* 0x08b9: idle_recv */
+/* 0x08bb: idle */
0xf400f800,
0x54410031,
0x0011cf04,
0x400110b6,
0x01f60454,
-/* 0x08b7: idle_loop */
+/* 0x08cf: idle_loop */
0x0104bd00,
0x0232f458,
-/* 0x08bc: idle_proc */
-/* 0x08bc: idle_proc_exec */
+/* 0x08d4: idle_proc */
+/* 0x08d4: idle_proc_exec */
0x1eb210f9,
- 0x0002487e,
+ 0x0002607e,
0x11f410fc,
0x0231f409,
-/* 0x08cf: idle_proc_next */
+/* 0x08e7: idle_proc_next */
0xb6f00ef4,
0x1fa65810,
0xf4e81bf4,
@@ -1451,10 +1457,4 @@ uint32_t nv108_pwr_code[] = {
0xc60ef400,
0x00000000,
0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
};
diff --git a/nvkm/subdev/pwr/fuc/nva3.fuc.h b/nvkm/subdev/pwr/fuc/nva3.fuc.h
index 5a73fa62..8e9e2439 100644
--- a/nvkm/subdev/pwr/fuc/nva3.fuc.h
+++ b/nvkm/subdev/pwr/fuc/nva3.fuc.h
@@ -24,8 +24,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
/* 0x0058: proc_list_head */
0x54534f48,
- 0x00000430,
- 0x000003cd,
+ 0x0000044c,
+ 0x000003e9,
0x00000000,
0x00000000,
0x00000000,
@@ -46,8 +46,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x0000054e,
- 0x00000540,
+ 0x0000056a,
+ 0x0000055c,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x00000552,
- 0x00000550,
+ 0x0000056e,
+ 0x0000056c,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x00000982,
- 0x00000825,
+ 0x0000099e,
+ 0x00000841,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x000009ab,
- 0x00000984,
+ 0x000009c7,
+ 0x000009a0,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nva3_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x000009b7,
- 0x000009b5,
+ 0x000009d3,
+ 0x000009d1,
0x00000000,
0x00000000,
0x00000000,
@@ -229,20 +229,20 @@ uint32_t nva3_pwr_data[] = {
/* 0x0370: memx_func_head */
0x00010000,
0x00000000,
- 0x0000046f,
+ 0x0000048b,
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x00000496,
+ 0x000004b2,
0x00000002,
0x00000002,
- 0x000004b7,
+ 0x000004d3,
0x00040003,
0x00000000,
- 0x000004df,
+ 0x000004fb,
0x00010004,
0x00000000,
- 0x000004fc,
+ 0x00000518,
/* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */
0x00000000,
@@ -849,7 +849,7 @@ uint32_t nva3_pwr_data[] = {
};
uint32_t nva3_pwr_code[] = {
- 0x030d0ef5,
+ 0x03290ef5,
/* 0x0004: rd32 */
0x07a007f1,
0xd00604b6,
@@ -915,7 +915,7 @@ uint32_t nva3_pwr_code[] = {
0xbb9a0a98,
0x1cf4029a,
0x01d7f00f,
- 0x025421f5,
+ 0x027021f5,
0x0ef494bd,
/* 0x00e9: intr_watchdog_next_time */
0x9b0a9815,
@@ -967,7 +967,7 @@ uint32_t nva3_pwr_code[] = {
0x48e7f1c0,
0x53e3f14f,
0x00d7f054,
- 0x02b921f5,
+ 0x02d521f5,
0x07f1c0fc,
0x04b604c0,
0x000cd006,
@@ -994,13 +994,19 @@ uint32_t nva3_pwr_code[] = {
0x00fc80fc,
0xf80032f4,
/* 0x01f5: timer */
- 0x1032f401,
+ 0xf990f901,
+ 0x1032f480,
0xb003f898,
0x1cf40086,
- 0x03fe8051,
- 0xb63807f0,
- 0x08d00604,
- 0xf004bd00,
+ 0xf084bd65,
+ 0x04b63807,
+ 0x0008d006,
+ 0x87f004bd,
+ 0x0684b634,
+ 0x980088cf,
+ 0x98bb9a09,
+ 0x00e9bb02,
+ 0xf003fe80,
0x84b60887,
0x0088cf06,
0xf40284f0,
@@ -1009,19 +1015,20 @@ uint32_t nva3_pwr_code[] = {
0xb80088cf,
0x0bf406e0,
0x06e8b809,
-/* 0x0233: timer_reset */
- 0xf01f1ef4,
+/* 0x024b: timer_reset */
+ 0xf0111cf4,
0x04b63407,
0x000ed006,
0x0e8004bd,
-/* 0x0241: timer_enable */
+/* 0x0259: timer_enable */
0x0187f09a,
0xb63807f0,
0x08d00604,
-/* 0x024f: timer_done */
+/* 0x0267: timer_done */
0xf404bd00,
- 0x00f81031,
-/* 0x0254: send_proc */
+ 0x80fc1031,
+ 0x00f890fc,
+/* 0x0270: send_proc */
0x90f980f9,
0x9805e898,
0x86f004e9,
@@ -1036,25 +1043,25 @@ uint32_t nva3_pwr_code[] = {
0x90b6038b,
0x0794f001,
0xf404e980,
-/* 0x028e: send_done */
+/* 0x02aa: send_done */
0x90fc0231,
0x00f880fc,
-/* 0x0294: find */
+/* 0x02b0: find */
0x87f080f9,
0x0131f458,
-/* 0x029c: find_loop */
+/* 0x02b8: find_loop */
0xb8008a98,
0x0bf406ae,
0x5880b610,
0x026886b1,
0xf4f01bf4,
-/* 0x02b2: find_done */
+/* 0x02ce: find_done */
0x8eb90132,
0xf880fc02,
-/* 0x02b9: send */
- 0x9421f500,
+/* 0x02d5: send */
+ 0xb021f500,
0x9701f402,
-/* 0x02c2: recv */
+/* 0x02de: recv */
0xe89800f8,
0x04e99805,
0xb80132f4,
@@ -1073,9 +1080,9 @@ uint32_t nva3_pwr_code[] = {
0xf900ee98,
0xfef0fca5,
0x31f400f8,
-/* 0x030b: recv_done */
+/* 0x0327: recv_done */
0xf8f0fc01,
-/* 0x030d: init */
+/* 0x0329: init */
0x0817f100,
0x0614b601,
0xe70011cf,
@@ -1101,12 +1108,12 @@ uint32_t nva3_pwr_code[] = {
0x04b63807,
0x0001d006,
0xf7f004bd,
-/* 0x0371: init_proc */
+/* 0x038d: init_proc */
0x01f19858,
0xf40016b0,
0x15f9fa0b,
0xf458f0b6,
-/* 0x0382: host_send */
+/* 0x039e: host_send */
0x17f1f20e,
0x14b604b0,
0x0011cf06,
@@ -1120,18 +1127,18 @@ uint32_t nva3_pwr_code[] = {
0x02ec9803,
0x9801ed98,
0x21f500ee,
- 0x10b602b9,
+ 0x10b602d5,
0x0f1ec401,
0x04b007f1,
0xd00604b6,
0x04bd0001,
-/* 0x03cb: host_send_done */
+/* 0x03e7: host_send_done */
0xf8ba0ef4,
-/* 0x03cd: host_recv */
+/* 0x03e9: host_recv */
0x4917f100,
0x5413f14e,
0x06e1b852,
-/* 0x03db: host_recv_wait */
+/* 0x03f7: host_recv_wait */
0xf1aa0bf4,
0xb604cc17,
0x11cf0614,
@@ -1154,7 +1161,7 @@ uint32_t nva3_pwr_code[] = {
0x04b60007,
0x0002d006,
0x00f804bd,
-/* 0x0430: host_init */
+/* 0x044c: host_init */
0x008017f1,
0xf11014b6,
0xf1027015,
@@ -1170,29 +1177,29 @@ uint32_t nva3_pwr_code[] = {
0xc407f101,
0x0604b604,
0xbd0001d0,
-/* 0x046f: memx_func_enter */
+/* 0x048b: memx_func_enter */
0xf000f804,
0x07f10467,
0x04b607e0,
0x0006d006,
-/* 0x047e: memx_func_enter_wait */
+/* 0x049a: memx_func_enter_wait */
0x67f104bd,
0x64b607c0,
0x0066cf06,
0xf40464f0,
0x1698f30b,
0x0410b600,
-/* 0x0496: memx_func_leave */
+/* 0x04b2: memx_func_leave */
0x67f000f8,
0xe407f104,
0x0604b607,
0xbd0006d0,
-/* 0x04a5: memx_func_leave_wait */
+/* 0x04c1: memx_func_leave_wait */
0xc067f104,
0x0664b607,
0xf00066cf,
0x1bf40464,
-/* 0x04b7: memx_func_wr32 */
+/* 0x04d3: memx_func_wr32 */
0x9800f8f3,
0x15980016,
0x0810b601,
@@ -1203,7 +1210,7 @@ uint32_t nva3_pwr_code[] = {
0x05800506,
0xb604bd00,
0x1bf40242,
-/* 0x04df: memx_func_wait */
+/* 0x04fb: memx_func_wait */
0xf000f8dd,
0x84b62c87,
0x0088cf06,
@@ -1212,14 +1219,14 @@ uint32_t nva3_pwr_code[] = {
0x031b9802,
0xf41010b6,
0x00f89c21,
-/* 0x04fc: memx_func_delay */
+/* 0x0518: memx_func_delay */
0xb6001e98,
0x21f40410,
-/* 0x0507: memx_exec */
+/* 0x0523: memx_exec */
0xf900f87f,
0xb9d0f9e0,
0xb2b902c1,
-/* 0x0511: memx_exec_next */
+/* 0x052d: memx_exec_next */
0x00139802,
0x950410b6,
0x30f01034,
@@ -1227,113 +1234,113 @@ uint32_t nva3_pwr_code[] = {
0x12b855f9,
0xec1ef406,
0xe0fcd0fc,
- 0x02b921f5,
-/* 0x0532: memx_info */
+ 0x02d521f5,
+/* 0x054e: memx_info */
0xc7f100f8,
0xb7f103ac,
0x21f50800,
- 0x00f802b9,
-/* 0x0540: memx_recv */
+ 0x00f802d5,
+/* 0x055c: memx_recv */
0xf401d6b0,
0xd6b0c40b,
0xe90bf400,
-/* 0x054e: memx_init */
+/* 0x056a: memx_init */
0x00f800f8,
-/* 0x0550: perf_recv */
-/* 0x0552: perf_init */
+/* 0x056c: perf_recv */
+/* 0x056e: perf_init */
0x00f800f8,
-/* 0x0554: i2c_drive_scl */
+/* 0x0570: i2c_drive_scl */
0xf40036b0,
0x07f1110b,
0x04b607e0,
0x0001d006,
0x00f804bd,
-/* 0x0568: i2c_drive_scl_lo */
+/* 0x0584: i2c_drive_scl_lo */
0x07e407f1,
0xd00604b6,
0x04bd0001,
-/* 0x0576: i2c_drive_sda */
+/* 0x0592: i2c_drive_sda */
0x36b000f8,
0x110bf400,
0x07e007f1,
0xd00604b6,
0x04bd0002,
-/* 0x058a: i2c_drive_sda_lo */
+/* 0x05a6: i2c_drive_sda_lo */
0x07f100f8,
0x04b607e4,
0x0002d006,
0x00f804bd,
-/* 0x0598: i2c_sense_scl */
+/* 0x05b4: i2c_sense_scl */
0xf10132f4,
0xb607c437,
0x33cf0634,
0x0431fd00,
0xf4060bf4,
-/* 0x05ae: i2c_sense_scl_done */
+/* 0x05ca: i2c_sense_scl_done */
0x00f80131,
-/* 0x05b0: i2c_sense_sda */
+/* 0x05cc: i2c_sense_sda */
0xf10132f4,
0xb607c437,
0x33cf0634,
0x0432fd00,
0xf4060bf4,
-/* 0x05c6: i2c_sense_sda_done */
+/* 0x05e2: i2c_sense_sda_done */
0x00f80131,
-/* 0x05c8: i2c_raise_scl */
+/* 0x05e4: i2c_raise_scl */
0x47f140f9,
0x37f00898,
- 0x5421f501,
-/* 0x05d5: i2c_raise_scl_wait */
+ 0x7021f501,
+/* 0x05f1: i2c_raise_scl_wait */
0xe8e7f105,
0x7f21f403,
- 0x059821f5,
+ 0x05b421f5,
0xb60901f4,
0x1bf40142,
-/* 0x05e9: i2c_raise_scl_done */
+/* 0x0605: i2c_raise_scl_done */
0xf840fcef,
-/* 0x05ed: i2c_start */
- 0x9821f500,
+/* 0x0609: i2c_start */
+ 0xb421f500,
0x0d11f405,
- 0x05b021f5,
+ 0x05cc21f5,
0xf40611f4,
-/* 0x05fe: i2c_start_rep */
+/* 0x061a: i2c_start_rep */
0x37f0300e,
- 0x5421f500,
+ 0x7021f500,
0x0137f005,
- 0x057621f5,
+ 0x059221f5,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0xc821f550,
+ 0xe421f550,
0x0464b605,
-/* 0x062b: i2c_start_send */
+/* 0x0647: i2c_start_send */
0xf01f11f4,
0x21f50037,
- 0xe7f10576,
+ 0xe7f10592,
0x21f41388,
0x0037f07f,
- 0x055421f5,
+ 0x057021f5,
0x1388e7f1,
-/* 0x0647: i2c_start_out */
+/* 0x0663: i2c_start_out */
0xf87f21f4,
-/* 0x0649: i2c_stop */
+/* 0x0665: i2c_stop */
0x0037f000,
- 0x055421f5,
+ 0x057021f5,
0xf50037f0,
- 0xf1057621,
+ 0xf1059221,
0xf403e8e7,
0x37f07f21,
- 0x5421f501,
+ 0x7021f501,
0x88e7f105,
0x7f21f413,
0xf50137f0,
- 0xf1057621,
+ 0xf1059221,
0xf41388e7,
0x00f87f21,
-/* 0x067c: i2c_bitw */
- 0x057621f5,
+/* 0x0698: i2c_bitw */
+ 0x059221f5,
0x03e8e7f1,
0xbb7f21f4,
0x65b60076,
@@ -1341,18 +1348,18 @@ uint32_t nva3_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x05c821f5,
+ 0x05e421f5,
0xf40464b6,
0xe7f11811,
0x21f41388,
0x0037f07f,
- 0x055421f5,
+ 0x057021f5,
0x1388e7f1,
-/* 0x06bb: i2c_bitw_out */
+/* 0x06d7: i2c_bitw_out */
0xf87f21f4,
-/* 0x06bd: i2c_bitr */
+/* 0x06d9: i2c_bitr */
0x0137f000,
- 0x057621f5,
+ 0x059221f5,
0x03e8e7f1,
0xbb7f21f4,
0x65b60076,
@@ -1360,19 +1367,19 @@ uint32_t nva3_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x05c821f5,
+ 0x05e421f5,
0xf40464b6,
0x21f51b11,
- 0x37f005b0,
- 0x5421f500,
+ 0x37f005cc,
+ 0x7021f500,
0x88e7f105,
0x7f21f413,
0xf4013cf0,
-/* 0x0702: i2c_bitr_done */
+/* 0x071e: i2c_bitr_done */
0x00f80131,
-/* 0x0704: i2c_get_byte */
+/* 0x0720: i2c_get_byte */
0xf00057f0,
-/* 0x070a: i2c_get_byte_next */
+/* 0x0726: i2c_get_byte_next */
0x54b60847,
0x0076bb01,
0xf90465b6,
@@ -1380,7 +1387,7 @@ uint32_t nva3_pwr_code[] = {
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b606bd,
+ 0x64b606d9,
0x2b11f404,
0xb60553fd,
0x1bf40142,
@@ -1390,12 +1397,12 @@ uint32_t nva3_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x7c21f550,
+ 0x9821f550,
0x0464b606,
-/* 0x0754: i2c_get_byte_done */
-/* 0x0756: i2c_put_byte */
+/* 0x0770: i2c_get_byte_done */
+/* 0x0772: i2c_put_byte */
0x47f000f8,
-/* 0x0759: i2c_put_byte_next */
+/* 0x0775: i2c_put_byte_next */
0x0142b608,
0xbb3854ff,
0x65b60076,
@@ -1403,7 +1410,7 @@ uint32_t nva3_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x067c21f5,
+ 0x069821f5,
0xf40464b6,
0x46b03411,
0xd81bf400,
@@ -1412,21 +1419,21 @@ uint32_t nva3_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0xbd21f550,
+ 0xd921f550,
0x0464b606,
0xbb0f11f4,
0x36b00076,
0x061bf401,
-/* 0x07af: i2c_put_byte_done */
+/* 0x07cb: i2c_put_byte_done */
0xf80132f4,
-/* 0x07b1: i2c_addr */
+/* 0x07cd: i2c_addr */
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b605ed,
+ 0x64b60609,
0x2911f404,
0x012ec3e7,
0xfd0134b6,
@@ -1436,24 +1443,24 @@ uint32_t nva3_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6075621,
-/* 0x07f6: i2c_addr_done */
+ 0xb6077221,
+/* 0x0812: i2c_addr_done */
0x00f80464,
-/* 0x07f8: i2c_acquire_addr */
+/* 0x0814: i2c_acquire_addr */
0xb6f8cec7,
0xe0b702e4,
0xee980bfc,
-/* 0x0807: i2c_acquire */
+/* 0x0823: i2c_acquire */
0xf500f800,
- 0xf407f821,
+ 0xf4081421,
0xd9f00421,
0x3f21f403,
-/* 0x0816: i2c_release */
+/* 0x0832: i2c_release */
0x21f500f8,
- 0x21f407f8,
+ 0x21f40814,
0x03daf004,
0xf83f21f4,
-/* 0x0825: i2c_recv */
+/* 0x0841: i2c_recv */
0x0132f400,
0xb6f8c1c7,
0x16b00214,
@@ -1472,7 +1479,7 @@ uint32_t nva3_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x080721f5,
+ 0x082321f5,
0xfc0464b6,
0x00d6b0d0,
0x00b31bf5,
@@ -1482,7 +1489,7 @@ uint32_t nva3_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x07b121f5,
+ 0x07cd21f5,
0xf50464b6,
0xc700d011,
0x76bbe0c5,
@@ -1491,7 +1498,7 @@ uint32_t nva3_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6075621,
+ 0xb6077221,
0x11f50464,
0x57f000ad,
0x0076bb01,
@@ -1500,7 +1507,7 @@ uint32_t nva3_pwr_code[] = {
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b607b1,
+ 0x64b607cd,
0x8a11f504,
0x0076bb00,
0xf90465b6,
@@ -1508,7 +1515,7 @@ uint32_t nva3_pwr_code[] = {
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b60704,
+ 0x64b60720,
0x6a11f404,
0xbbe05bcb,
0x65b60076,
@@ -1516,38 +1523,38 @@ uint32_t nva3_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x064921f5,
+ 0x066521f5,
0xb90464b6,
0x74bd025b,
-/* 0x092b: i2c_recv_not_rd08 */
+/* 0x0947: i2c_recv_not_rd08 */
0xb0430ef4,
0x1bf401d6,
0x0057f03d,
- 0x07b121f5,
+ 0x07cd21f5,
0xc73311f4,
0x21f5e0c5,
- 0x11f40756,
+ 0x11f40772,
0x0057f029,
- 0x07b121f5,
+ 0x07cd21f5,
0xc71f11f4,
0x21f5e0b5,
- 0x11f40756,
- 0x4921f515,
+ 0x11f40772,
+ 0x6521f515,
0xc774bd06,
0x1bf408c5,
0x0232f409,
-/* 0x096b: i2c_recv_not_wr08 */
-/* 0x096b: i2c_recv_done */
+/* 0x0987: i2c_recv_not_wr08 */
+/* 0x0987: i2c_recv_done */
0xc7030ef4,
0x21f5f8ce,
- 0xe0fc0816,
+ 0xe0fc0832,
0x12f4d0fc,
0x027cb90a,
- 0x02b921f5,
-/* 0x0980: i2c_recv_exit */
-/* 0x0982: i2c_init */
+ 0x02d521f5,
+/* 0x099c: i2c_recv_exit */
+/* 0x099e: i2c_init */
0x00f800f8,
-/* 0x0984: test_recv */
+/* 0x09a0: test_recv */
0x05d817f1,
0xcf0614b6,
0x10b60011,
@@ -1557,12 +1564,12 @@ uint32_t nva3_pwr_code[] = {
0x00e7f104,
0x4fe3f1d9,
0xf521f513,
-/* 0x09ab: test_init */
+/* 0x09c7: test_init */
0xf100f801,
0xf50800e7,
0xf801f521,
-/* 0x09b5: idle_recv */
-/* 0x09b7: idle */
+/* 0x09d1: idle_recv */
+/* 0x09d3: idle */
0xf400f800,
0x17f10031,
0x14b605d4,
@@ -1570,20 +1577,77 @@ uint32_t nva3_pwr_code[] = {
0xf10110b6,
0xb605d407,
0x01d00604,
-/* 0x09d3: idle_loop */
+/* 0x09ef: idle_loop */
0xf004bd00,
0x32f45817,
-/* 0x09d9: idle_proc */
-/* 0x09d9: idle_proc_exec */
+/* 0x09f5: idle_proc */
+/* 0x09f5: idle_proc_exec */
0xb910f902,
0x21f5021e,
- 0x10fc02c2,
+ 0x10fc02de,
0xf40911f4,
0x0ef40231,
-/* 0x09ed: idle_proc_next */
+/* 0x0a09: 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,
+ 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/nvkm/subdev/pwr/fuc/nvc0.fuc.h b/nvkm/subdev/pwr/fuc/nvc0.fuc.h
index 4dba00d2..1149307e 100644
--- a/nvkm/subdev/pwr/fuc/nvc0.fuc.h
+++ b/nvkm/subdev/pwr/fuc/nvc0.fuc.h
@@ -24,8 +24,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
/* 0x0058: proc_list_head */
0x54534f48,
- 0x00000430,
- 0x000003cd,
+ 0x0000044c,
+ 0x000003e9,
0x00000000,
0x00000000,
0x00000000,
@@ -46,8 +46,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x0000054e,
- 0x00000540,
+ 0x0000056a,
+ 0x0000055c,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x00000552,
- 0x00000550,
+ 0x0000056e,
+ 0x0000056c,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x00000982,
- 0x00000825,
+ 0x0000099e,
+ 0x00000841,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x000009ab,
- 0x00000984,
+ 0x000009c7,
+ 0x000009a0,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nvc0_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x000009b7,
- 0x000009b5,
+ 0x000009d3,
+ 0x000009d1,
0x00000000,
0x00000000,
0x00000000,
@@ -229,20 +229,20 @@ uint32_t nvc0_pwr_data[] = {
/* 0x0370: memx_func_head */
0x00010000,
0x00000000,
- 0x0000046f,
+ 0x0000048b,
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x00000496,
+ 0x000004b2,
0x00000002,
0x00000002,
- 0x000004b7,
+ 0x000004d3,
0x00040003,
0x00000000,
- 0x000004df,
+ 0x000004fb,
0x00010004,
0x00000000,
- 0x000004fc,
+ 0x00000518,
/* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */
0x00000000,
@@ -849,7 +849,7 @@ uint32_t nvc0_pwr_data[] = {
};
uint32_t nvc0_pwr_code[] = {
- 0x030d0ef5,
+ 0x03290ef5,
/* 0x0004: rd32 */
0x07a007f1,
0xd00604b6,
@@ -915,7 +915,7 @@ uint32_t nvc0_pwr_code[] = {
0xbb9a0a98,
0x1cf4029a,
0x01d7f00f,
- 0x025421f5,
+ 0x027021f5,
0x0ef494bd,
/* 0x00e9: intr_watchdog_next_time */
0x9b0a9815,
@@ -967,7 +967,7 @@ uint32_t nvc0_pwr_code[] = {
0x48e7f1c0,
0x53e3f14f,
0x00d7f054,
- 0x02b921f5,
+ 0x02d521f5,
0x07f1c0fc,
0x04b604c0,
0x000cd006,
@@ -994,13 +994,19 @@ uint32_t nvc0_pwr_code[] = {
0x00fc80fc,
0xf80032f4,
/* 0x01f5: timer */
- 0x1032f401,
+ 0xf990f901,
+ 0x1032f480,
0xb003f898,
0x1cf40086,
- 0x03fe8051,
- 0xb63807f0,
- 0x08d00604,
- 0xf004bd00,
+ 0xf084bd65,
+ 0x04b63807,
+ 0x0008d006,
+ 0x87f004bd,
+ 0x0684b634,
+ 0x980088cf,
+ 0x98bb9a09,
+ 0x00e9bb02,
+ 0xf003fe80,
0x84b60887,
0x0088cf06,
0xf40284f0,
@@ -1009,19 +1015,20 @@ uint32_t nvc0_pwr_code[] = {
0xb80088cf,
0x0bf406e0,
0x06e8b809,
-/* 0x0233: timer_reset */
- 0xf01f1ef4,
+/* 0x024b: timer_reset */
+ 0xf0111cf4,
0x04b63407,
0x000ed006,
0x0e8004bd,
-/* 0x0241: timer_enable */
+/* 0x0259: timer_enable */
0x0187f09a,
0xb63807f0,
0x08d00604,
-/* 0x024f: timer_done */
+/* 0x0267: timer_done */
0xf404bd00,
- 0x00f81031,
-/* 0x0254: send_proc */
+ 0x80fc1031,
+ 0x00f890fc,
+/* 0x0270: send_proc */
0x90f980f9,
0x9805e898,
0x86f004e9,
@@ -1036,25 +1043,25 @@ uint32_t nvc0_pwr_code[] = {
0x90b6038b,
0x0794f001,
0xf404e980,
-/* 0x028e: send_done */
+/* 0x02aa: send_done */
0x90fc0231,
0x00f880fc,
-/* 0x0294: find */
+/* 0x02b0: find */
0x87f080f9,
0x0131f458,
-/* 0x029c: find_loop */
+/* 0x02b8: find_loop */
0xb8008a98,
0x0bf406ae,
0x5880b610,
0x026886b1,
0xf4f01bf4,
-/* 0x02b2: find_done */
+/* 0x02ce: find_done */
0x8eb90132,
0xf880fc02,
-/* 0x02b9: send */
- 0x9421f500,
+/* 0x02d5: send */
+ 0xb021f500,
0x9701f402,
-/* 0x02c2: recv */
+/* 0x02de: recv */
0xe89800f8,
0x04e99805,
0xb80132f4,
@@ -1073,9 +1080,9 @@ uint32_t nvc0_pwr_code[] = {
0xf900ee98,
0xfef0fca5,
0x31f400f8,
-/* 0x030b: recv_done */
+/* 0x0327: recv_done */
0xf8f0fc01,
-/* 0x030d: init */
+/* 0x0329: init */
0x0817f100,
0x0614b601,
0xe70011cf,
@@ -1101,12 +1108,12 @@ uint32_t nvc0_pwr_code[] = {
0x04b63807,
0x0001d006,
0xf7f004bd,
-/* 0x0371: init_proc */
+/* 0x038d: init_proc */
0x01f19858,
0xf40016b0,
0x15f9fa0b,
0xf458f0b6,
-/* 0x0382: host_send */
+/* 0x039e: host_send */
0x17f1f20e,
0x14b604b0,
0x0011cf06,
@@ -1120,18 +1127,18 @@ uint32_t nvc0_pwr_code[] = {
0x02ec9803,
0x9801ed98,
0x21f500ee,
- 0x10b602b9,
+ 0x10b602d5,
0x0f1ec401,
0x04b007f1,
0xd00604b6,
0x04bd0001,
-/* 0x03cb: host_send_done */
+/* 0x03e7: host_send_done */
0xf8ba0ef4,
-/* 0x03cd: host_recv */
+/* 0x03e9: host_recv */
0x4917f100,
0x5413f14e,
0x06e1b852,
-/* 0x03db: host_recv_wait */
+/* 0x03f7: host_recv_wait */
0xf1aa0bf4,
0xb604cc17,
0x11cf0614,
@@ -1154,7 +1161,7 @@ uint32_t nvc0_pwr_code[] = {
0x04b60007,
0x0002d006,
0x00f804bd,
-/* 0x0430: host_init */
+/* 0x044c: host_init */
0x008017f1,
0xf11014b6,
0xf1027015,
@@ -1170,29 +1177,29 @@ uint32_t nvc0_pwr_code[] = {
0xc407f101,
0x0604b604,
0xbd0001d0,
-/* 0x046f: memx_func_enter */
+/* 0x048b: memx_func_enter */
0xf000f804,
0x07f10467,
0x04b607e0,
0x0006d006,
-/* 0x047e: memx_func_enter_wait */
+/* 0x049a: memx_func_enter_wait */
0x67f104bd,
0x64b607c0,
0x0066cf06,
0xf40464f0,
0x1698f30b,
0x0410b600,
-/* 0x0496: memx_func_leave */
+/* 0x04b2: memx_func_leave */
0x67f000f8,
0xe407f104,
0x0604b607,
0xbd0006d0,
-/* 0x04a5: memx_func_leave_wait */
+/* 0x04c1: memx_func_leave_wait */
0xc067f104,
0x0664b607,
0xf00066cf,
0x1bf40464,
-/* 0x04b7: memx_func_wr32 */
+/* 0x04d3: memx_func_wr32 */
0x9800f8f3,
0x15980016,
0x0810b601,
@@ -1203,7 +1210,7 @@ uint32_t nvc0_pwr_code[] = {
0x05800506,
0xb604bd00,
0x1bf40242,
-/* 0x04df: memx_func_wait */
+/* 0x04fb: memx_func_wait */
0xf000f8dd,
0x84b62c87,
0x0088cf06,
@@ -1212,14 +1219,14 @@ uint32_t nvc0_pwr_code[] = {
0x031b9802,
0xf41010b6,
0x00f89c21,
-/* 0x04fc: memx_func_delay */
+/* 0x0518: memx_func_delay */
0xb6001e98,
0x21f40410,
-/* 0x0507: memx_exec */
+/* 0x0523: memx_exec */
0xf900f87f,
0xb9d0f9e0,
0xb2b902c1,
-/* 0x0511: memx_exec_next */
+/* 0x052d: memx_exec_next */
0x00139802,
0x950410b6,
0x30f01034,
@@ -1227,113 +1234,113 @@ uint32_t nvc0_pwr_code[] = {
0x12b855f9,
0xec1ef406,
0xe0fcd0fc,
- 0x02b921f5,
-/* 0x0532: memx_info */
+ 0x02d521f5,
+/* 0x054e: memx_info */
0xc7f100f8,
0xb7f103ac,
0x21f50800,
- 0x00f802b9,
-/* 0x0540: memx_recv */
+ 0x00f802d5,
+/* 0x055c: memx_recv */
0xf401d6b0,
0xd6b0c40b,
0xe90bf400,
-/* 0x054e: memx_init */
+/* 0x056a: memx_init */
0x00f800f8,
-/* 0x0550: perf_recv */
-/* 0x0552: perf_init */
+/* 0x056c: perf_recv */
+/* 0x056e: perf_init */
0x00f800f8,
-/* 0x0554: i2c_drive_scl */
+/* 0x0570: i2c_drive_scl */
0xf40036b0,
0x07f1110b,
0x04b607e0,
0x0001d006,
0x00f804bd,
-/* 0x0568: i2c_drive_scl_lo */
+/* 0x0584: i2c_drive_scl_lo */
0x07e407f1,
0xd00604b6,
0x04bd0001,
-/* 0x0576: i2c_drive_sda */
+/* 0x0592: i2c_drive_sda */
0x36b000f8,
0x110bf400,
0x07e007f1,
0xd00604b6,
0x04bd0002,
-/* 0x058a: i2c_drive_sda_lo */
+/* 0x05a6: i2c_drive_sda_lo */
0x07f100f8,
0x04b607e4,
0x0002d006,
0x00f804bd,
-/* 0x0598: i2c_sense_scl */
+/* 0x05b4: i2c_sense_scl */
0xf10132f4,
0xb607c437,
0x33cf0634,
0x0431fd00,
0xf4060bf4,
-/* 0x05ae: i2c_sense_scl_done */
+/* 0x05ca: i2c_sense_scl_done */
0x00f80131,
-/* 0x05b0: i2c_sense_sda */
+/* 0x05cc: i2c_sense_sda */
0xf10132f4,
0xb607c437,
0x33cf0634,
0x0432fd00,
0xf4060bf4,
-/* 0x05c6: i2c_sense_sda_done */
+/* 0x05e2: i2c_sense_sda_done */
0x00f80131,
-/* 0x05c8: i2c_raise_scl */
+/* 0x05e4: i2c_raise_scl */
0x47f140f9,
0x37f00898,
- 0x5421f501,
-/* 0x05d5: i2c_raise_scl_wait */
+ 0x7021f501,
+/* 0x05f1: i2c_raise_scl_wait */
0xe8e7f105,
0x7f21f403,
- 0x059821f5,
+ 0x05b421f5,
0xb60901f4,
0x1bf40142,
-/* 0x05e9: i2c_raise_scl_done */
+/* 0x0605: i2c_raise_scl_done */
0xf840fcef,
-/* 0x05ed: i2c_start */
- 0x9821f500,
+/* 0x0609: i2c_start */
+ 0xb421f500,
0x0d11f405,
- 0x05b021f5,
+ 0x05cc21f5,
0xf40611f4,
-/* 0x05fe: i2c_start_rep */
+/* 0x061a: i2c_start_rep */
0x37f0300e,
- 0x5421f500,
+ 0x7021f500,
0x0137f005,
- 0x057621f5,
+ 0x059221f5,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0xc821f550,
+ 0xe421f550,
0x0464b605,
-/* 0x062b: i2c_start_send */
+/* 0x0647: i2c_start_send */
0xf01f11f4,
0x21f50037,
- 0xe7f10576,
+ 0xe7f10592,
0x21f41388,
0x0037f07f,
- 0x055421f5,
+ 0x057021f5,
0x1388e7f1,
-/* 0x0647: i2c_start_out */
+/* 0x0663: i2c_start_out */
0xf87f21f4,
-/* 0x0649: i2c_stop */
+/* 0x0665: i2c_stop */
0x0037f000,
- 0x055421f5,
+ 0x057021f5,
0xf50037f0,
- 0xf1057621,
+ 0xf1059221,
0xf403e8e7,
0x37f07f21,
- 0x5421f501,
+ 0x7021f501,
0x88e7f105,
0x7f21f413,
0xf50137f0,
- 0xf1057621,
+ 0xf1059221,
0xf41388e7,
0x00f87f21,
-/* 0x067c: i2c_bitw */
- 0x057621f5,
+/* 0x0698: i2c_bitw */
+ 0x059221f5,
0x03e8e7f1,
0xbb7f21f4,
0x65b60076,
@@ -1341,18 +1348,18 @@ uint32_t nvc0_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x05c821f5,
+ 0x05e421f5,
0xf40464b6,
0xe7f11811,
0x21f41388,
0x0037f07f,
- 0x055421f5,
+ 0x057021f5,
0x1388e7f1,
-/* 0x06bb: i2c_bitw_out */
+/* 0x06d7: i2c_bitw_out */
0xf87f21f4,
-/* 0x06bd: i2c_bitr */
+/* 0x06d9: i2c_bitr */
0x0137f000,
- 0x057621f5,
+ 0x059221f5,
0x03e8e7f1,
0xbb7f21f4,
0x65b60076,
@@ -1360,19 +1367,19 @@ uint32_t nvc0_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x05c821f5,
+ 0x05e421f5,
0xf40464b6,
0x21f51b11,
- 0x37f005b0,
- 0x5421f500,
+ 0x37f005cc,
+ 0x7021f500,
0x88e7f105,
0x7f21f413,
0xf4013cf0,
-/* 0x0702: i2c_bitr_done */
+/* 0x071e: i2c_bitr_done */
0x00f80131,
-/* 0x0704: i2c_get_byte */
+/* 0x0720: i2c_get_byte */
0xf00057f0,
-/* 0x070a: i2c_get_byte_next */
+/* 0x0726: i2c_get_byte_next */
0x54b60847,
0x0076bb01,
0xf90465b6,
@@ -1380,7 +1387,7 @@ uint32_t nvc0_pwr_code[] = {
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b606bd,
+ 0x64b606d9,
0x2b11f404,
0xb60553fd,
0x1bf40142,
@@ -1390,12 +1397,12 @@ uint32_t nvc0_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x7c21f550,
+ 0x9821f550,
0x0464b606,
-/* 0x0754: i2c_get_byte_done */
-/* 0x0756: i2c_put_byte */
+/* 0x0770: i2c_get_byte_done */
+/* 0x0772: i2c_put_byte */
0x47f000f8,
-/* 0x0759: i2c_put_byte_next */
+/* 0x0775: i2c_put_byte_next */
0x0142b608,
0xbb3854ff,
0x65b60076,
@@ -1403,7 +1410,7 @@ uint32_t nvc0_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x067c21f5,
+ 0x069821f5,
0xf40464b6,
0x46b03411,
0xd81bf400,
@@ -1412,21 +1419,21 @@ uint32_t nvc0_pwr_code[] = {
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0xbd21f550,
+ 0xd921f550,
0x0464b606,
0xbb0f11f4,
0x36b00076,
0x061bf401,
-/* 0x07af: i2c_put_byte_done */
+/* 0x07cb: i2c_put_byte_done */
0xf80132f4,
-/* 0x07b1: i2c_addr */
+/* 0x07cd: i2c_addr */
0x0076bb00,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b605ed,
+ 0x64b60609,
0x2911f404,
0x012ec3e7,
0xfd0134b6,
@@ -1436,24 +1443,24 @@ uint32_t nvc0_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6075621,
-/* 0x07f6: i2c_addr_done */
+ 0xb6077221,
+/* 0x0812: i2c_addr_done */
0x00f80464,
-/* 0x07f8: i2c_acquire_addr */
+/* 0x0814: i2c_acquire_addr */
0xb6f8cec7,
0xe0b702e4,
0xee980bfc,
-/* 0x0807: i2c_acquire */
+/* 0x0823: i2c_acquire */
0xf500f800,
- 0xf407f821,
+ 0xf4081421,
0xd9f00421,
0x3f21f403,
-/* 0x0816: i2c_release */
+/* 0x0832: i2c_release */
0x21f500f8,
- 0x21f407f8,
+ 0x21f40814,
0x03daf004,
0xf83f21f4,
-/* 0x0825: i2c_recv */
+/* 0x0841: i2c_recv */
0x0132f400,
0xb6f8c1c7,
0x16b00214,
@@ -1472,7 +1479,7 @@ uint32_t nvc0_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x080721f5,
+ 0x082321f5,
0xfc0464b6,
0x00d6b0d0,
0x00b31bf5,
@@ -1482,7 +1489,7 @@ uint32_t nvc0_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x07b121f5,
+ 0x07cd21f5,
0xf50464b6,
0xc700d011,
0x76bbe0c5,
@@ -1491,7 +1498,7 @@ uint32_t nvc0_pwr_code[] = {
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb6075621,
+ 0xb6077221,
0x11f50464,
0x57f000ad,
0x0076bb01,
@@ -1500,7 +1507,7 @@ uint32_t nvc0_pwr_code[] = {
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b607b1,
+ 0x64b607cd,
0x8a11f504,
0x0076bb00,
0xf90465b6,
@@ -1508,7 +1515,7 @@ uint32_t nvc0_pwr_code[] = {
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b60704,
+ 0x64b60720,
0x6a11f404,
0xbbe05bcb,
0x65b60076,
@@ -1516,38 +1523,38 @@ uint32_t nvc0_pwr_code[] = {
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x064921f5,
+ 0x066521f5,
0xb90464b6,
0x74bd025b,
-/* 0x092b: i2c_recv_not_rd08 */
+/* 0x0947: i2c_recv_not_rd08 */
0xb0430ef4,
0x1bf401d6,
0x0057f03d,
- 0x07b121f5,
+ 0x07cd21f5,
0xc73311f4,
0x21f5e0c5,
- 0x11f40756,
+ 0x11f40772,
0x0057f029,
- 0x07b121f5,
+ 0x07cd21f5,
0xc71f11f4,
0x21f5e0b5,
- 0x11f40756,
- 0x4921f515,
+ 0x11f40772,
+ 0x6521f515,
0xc774bd06,
0x1bf408c5,
0x0232f409,
-/* 0x096b: i2c_recv_not_wr08 */
-/* 0x096b: i2c_recv_done */
+/* 0x0987: i2c_recv_not_wr08 */
+/* 0x0987: i2c_recv_done */
0xc7030ef4,
0x21f5f8ce,
- 0xe0fc0816,
+ 0xe0fc0832,
0x12f4d0fc,
0x027cb90a,
- 0x02b921f5,
-/* 0x0980: i2c_recv_exit */
-/* 0x0982: i2c_init */
+ 0x02d521f5,
+/* 0x099c: i2c_recv_exit */
+/* 0x099e: i2c_init */
0x00f800f8,
-/* 0x0984: test_recv */
+/* 0x09a0: test_recv */
0x05d817f1,
0xcf0614b6,
0x10b60011,
@@ -1557,12 +1564,12 @@ uint32_t nvc0_pwr_code[] = {
0x00e7f104,
0x4fe3f1d9,
0xf521f513,
-/* 0x09ab: test_init */
+/* 0x09c7: test_init */
0xf100f801,
0xf50800e7,
0xf801f521,
-/* 0x09b5: idle_recv */
-/* 0x09b7: idle */
+/* 0x09d1: idle_recv */
+/* 0x09d3: idle */
0xf400f800,
0x17f10031,
0x14b605d4,
@@ -1570,20 +1577,77 @@ uint32_t nvc0_pwr_code[] = {
0xf10110b6,
0xb605d407,
0x01d00604,
-/* 0x09d3: idle_loop */
+/* 0x09ef: idle_loop */
0xf004bd00,
0x32f45817,
-/* 0x09d9: idle_proc */
-/* 0x09d9: idle_proc_exec */
+/* 0x09f5: idle_proc */
+/* 0x09f5: idle_proc_exec */
0xb910f902,
0x21f5021e,
- 0x10fc02c2,
+ 0x10fc02de,
0xf40911f4,
0x0ef40231,
-/* 0x09ed: idle_proc_next */
+/* 0x0a09: 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,
+ 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/nvkm/subdev/pwr/fuc/nvd0.fuc.h b/nvkm/subdev/pwr/fuc/nvd0.fuc.h
index 5e24c6bc..d3685e36 100644
--- a/nvkm/subdev/pwr/fuc/nvd0.fuc.h
+++ b/nvkm/subdev/pwr/fuc/nvd0.fuc.h
@@ -24,8 +24,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
/* 0x0058: proc_list_head */
0x54534f48,
- 0x000003be,
- 0x00000367,
+ 0x000003d7,
+ 0x00000380,
0x00000000,
0x00000000,
0x00000000,
@@ -46,8 +46,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x584d454d,
- 0x000004c4,
- 0x000004b6,
+ 0x000004dd,
+ 0x000004cf,
0x00000000,
0x00000000,
0x00000000,
@@ -68,8 +68,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x46524550,
- 0x000004c8,
- 0x000004c6,
+ 0x000004e1,
+ 0x000004df,
0x00000000,
0x00000000,
0x00000000,
@@ -90,8 +90,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x5f433249,
- 0x000008e3,
- 0x00000786,
+ 0x000008fc,
+ 0x0000079f,
0x00000000,
0x00000000,
0x00000000,
@@ -112,8 +112,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x54534554,
- 0x00000906,
- 0x000008e5,
+ 0x0000091f,
+ 0x000008fe,
0x00000000,
0x00000000,
0x00000000,
@@ -134,8 +134,8 @@ uint32_t nvd0_pwr_data[] = {
0x00000000,
0x00000000,
0x454c4449,
- 0x00000912,
- 0x00000910,
+ 0x0000092b,
+ 0x00000929,
0x00000000,
0x00000000,
0x00000000,
@@ -229,20 +229,20 @@ uint32_t nvd0_pwr_data[] = {
/* 0x0370: memx_func_head */
0x00010000,
0x00000000,
- 0x000003f4,
+ 0x0000040d,
/* 0x037c: memx_func_next */
0x00000001,
0x00000000,
- 0x00000415,
+ 0x0000042e,
0x00000002,
0x00000002,
- 0x00000430,
+ 0x00000449,
0x00040003,
0x00000000,
- 0x00000458,
+ 0x00000471,
0x00010004,
0x00000000,
- 0x00000472,
+ 0x0000048b,
/* 0x03ac: memx_func_tail */
/* 0x03ac: memx_data_head */
0x00000000,
@@ -784,7 +784,7 @@ uint32_t nvd0_pwr_data[] = {
};
uint32_t nvd0_pwr_code[] = {
- 0x02bf0ef5,
+ 0x02d80ef5,
/* 0x0004: rd32 */
0x07a007f1,
0xbd000ed0,
@@ -841,7 +841,7 @@ uint32_t nvd0_pwr_code[] = {
0xbb9a0a98,
0x1cf4029a,
0x01d7f00f,
- 0x020621f5,
+ 0x021f21f5,
0x0ef494bd,
/* 0x00c5: intr_watchdog_next_time */
0x9b0a9815,
@@ -889,7 +889,7 @@ uint32_t nvd0_pwr_code[] = {
0xf14f48e7,
0xf05453e3,
0x21f500d7,
- 0xc0fc026b,
+ 0xc0fc0284,
0x04c007f1,
0xbd000cd0,
/* 0x0175: intr_subintr_skip_fifo */
@@ -913,578 +913,578 @@ uint32_t nvd0_pwr_code[] = {
0xfc80fc90,
0x0032f400,
/* 0x01b6: timer */
- 0x32f401f8,
+ 0x90f901f8,
+ 0x32f480f9,
0x03f89810,
0xf40086b0,
- 0xfe80421c,
- 0x3807f003,
- 0xbd0008d0,
- 0x0887f004,
- 0xf00088cf,
- 0x1bf40284,
- 0x3487f020,
- 0xb80088cf,
- 0x0bf406e0,
- 0x06e8b809,
-/* 0x01eb: timer_reset */
- 0xf0191ef4,
- 0x0ed03407,
- 0x8004bd00,
-/* 0x01f6: timer_enable */
- 0x87f09a0e,
- 0x3807f001,
- 0xbd0008d0,
-/* 0x0201: timer_done */
- 0x1031f404,
-/* 0x0206: send_proc */
- 0x80f900f8,
- 0xe89890f9,
- 0x04e99805,
- 0xb80486f0,
- 0x0bf40689,
- 0x0398c42a,
- 0xb6048894,
- 0x8ebb1880,
- 0x00fa9800,
- 0x80008a80,
- 0x8c80018d,
- 0x038b8002,
- 0xf00190b6,
- 0xe9800794,
- 0x0231f404,
-/* 0x0240: send_done */
- 0x80fc90fc,
-/* 0x0246: find */
- 0x80f900f8,
- 0xf45887f0,
-/* 0x024e: find_loop */
- 0x8a980131,
- 0x06aeb800,
- 0xb6100bf4,
- 0x86b15880,
- 0x1bf40268,
- 0x0132f4f0,
-/* 0x0264: find_done */
- 0xfc028eb9,
-/* 0x026b: send */
- 0xf500f880,
- 0xf4024621,
- 0x00f89701,
-/* 0x0274: recv */
- 0x9805e898,
- 0x32f404e9,
- 0x0689b801,
- 0xc43d0bf4,
- 0x80b60389,
- 0x0784f001,
- 0x9805e880,
- 0xf0f902ea,
- 0xf9018ffe,
- 0x02efb9f0,
- 0xbb049994,
- 0xe0b600e9,
- 0x03eb9818,
- 0x9802ec98,
- 0xee9801ed,
- 0xfca5f900,
- 0x00f8fef0,
- 0xfc0131f4,
-/* 0x02bd: recv_done */
-/* 0x02bf: init */
- 0xf100f8f0,
- 0xcf010817,
- 0x11e70011,
- 0x14b60109,
- 0x0014fe08,
- 0x00e017f1,
- 0xf00013f0,
- 0x01d01c07,
- 0xf004bd00,
- 0x07f0ff17,
- 0x0001d014,
- 0x17f004bd,
- 0x0015f102,
- 0x1007f008,
- 0xbd0001d0,
- 0xe617f104,
+ 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,
+ 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,
- 0xf40010fe,
- 0x17f01031,
- 0x3807f001,
- 0xbd0001d0,
- 0x58f7f004,
-/* 0x0314: init_proc */
- 0xb001f198,
- 0x0bf40016,
- 0xb615f9fa,
- 0x0ef458f0,
-/* 0x0325: host_send */
- 0xb017f1f2,
- 0x0011cf04,
- 0x04a027f1,
- 0xb80022cf,
+ 0xd01c07f0,
+ 0x04bd0001,
+ 0xf0ff17f0,
+ 0x01d01407,
+ 0xf004bd00,
+ 0x15f10217,
+ 0x07f00800,
+ 0x0001d010,
+ 0x17f104bd,
+ 0x13f000e6,
+ 0x0010fe00,
+ 0xf01031f4,
+ 0x07f00117,
+ 0x0001d038,
+ 0xf7f004bd,
+/* 0x032d: init_proc */
+ 0x01f19858,
+ 0xf40016b0,
+ 0x15f9fa0b,
+ 0xf458f0b6,
+/* 0x033e: host_send */
+ 0x17f1f20e,
+ 0x11cf04b0,
+ 0xa027f100,
+ 0x0022cf04,
+ 0xf40612b8,
+ 0x1ec42f0b,
+ 0x04ee9407,
+ 0x0270e0b7,
+ 0x9803eb98,
+ 0xed9802ec,
+ 0x00ee9801,
+ 0x028421f5,
+ 0xc40110b6,
+ 0x07f10f1e,
+ 0x01d004b0,
+ 0xf404bd00,
+/* 0x037e: host_send_done */
+ 0x00f8c30e,
+/* 0x0380: host_recv */
+ 0x4e4917f1,
+ 0x525413f1,
+ 0xf406e1b8,
+/* 0x038e: host_recv_wait */
+ 0x17f1b30b,
+ 0x11cf04cc,
+ 0xc827f100,
+ 0x0022cf04,
+ 0xb80816f0,
0x0bf40612,
- 0x071ec42f,
- 0xb704ee94,
- 0x980270e0,
- 0xec9803eb,
- 0x01ed9802,
- 0xf500ee98,
- 0xb6026b21,
- 0x1ec40110,
- 0xb007f10f,
- 0x0001d004,
- 0x0ef404bd,
-/* 0x0365: host_send_done */
-/* 0x0367: host_recv */
- 0xf100f8c3,
- 0xf14e4917,
- 0xb8525413,
- 0x0bf406e1,
-/* 0x0375: host_recv_wait */
- 0xcc17f1b3,
- 0x0011cf04,
- 0x04c827f1,
- 0xf00022cf,
- 0x12b80816,
- 0xec0bf406,
- 0xb60723c4,
- 0x30b70434,
- 0x3b8002f0,
- 0x023c8003,
- 0x80013d80,
- 0x20b6003e,
- 0x0f24f001,
- 0x04c807f1,
+ 0x0723c4ec,
+ 0xb70434b6,
+ 0x8002f030,
+ 0x3c80033b,
+ 0x013d8002,
+ 0xb6003e80,
+ 0x24f00120,
+ 0xc807f10f,
+ 0x0002d004,
+ 0x27f004bd,
+ 0x0007f040,
0xbd0002d0,
- 0x4027f004,
- 0xd00007f0,
- 0x04bd0002,
-/* 0x03be: host_init */
- 0x17f100f8,
- 0x14b60080,
- 0x7015f110,
- 0xd007f102,
- 0x0001d004,
- 0x17f104bd,
- 0x14b60080,
- 0xf015f110,
- 0xdc07f102,
- 0x0001d004,
- 0x17f004bd,
- 0xc407f101,
- 0x0001d004,
- 0x00f804bd,
-/* 0x03f4: memx_func_enter */
- 0xf10467f0,
- 0xd007e007,
- 0x04bd0006,
-/* 0x0400: memx_func_enter_wait */
- 0x07c067f1,
- 0xf00066cf,
- 0x0bf40464,
- 0x001698f6,
- 0xf80410b6,
-/* 0x0415: memx_func_leave */
+/* 0x03d7: host_init */
+ 0xf100f804,
+ 0xb6008017,
+ 0x15f11014,
+ 0x07f10270,
+ 0x01d004d0,
+ 0xf104bd00,
+ 0xb6008017,
+ 0x15f11014,
+ 0x07f102f0,
+ 0x01d004dc,
+ 0xf004bd00,
+ 0x07f10117,
+ 0x01d004c4,
+ 0xf804bd00,
+/* 0x040d: memx_func_enter */
0x0467f000,
- 0x07e407f1,
+ 0x07e007f1,
0xbd0006d0,
-/* 0x0421: memx_func_leave_wait */
+/* 0x0419: memx_func_enter_wait */
0xc067f104,
0x0066cf07,
0xf40464f0,
- 0x00f8f61b,
-/* 0x0430: memx_func_wr32 */
- 0x98001698,
- 0x10b60115,
- 0xf960f908,
- 0xfcd0fc50,
- 0x3321f4e0,
- 0x140003f1,
- 0x800506fd,
- 0x04bd0005,
- 0xf40242b6,
- 0x00f8dd1b,
-/* 0x0458: memx_func_wait */
- 0xcf2c87f0,
- 0x1e980088,
- 0x011d9800,
- 0x98021c98,
- 0x10b6031b,
- 0x7e21f410,
-/* 0x0472: memx_func_delay */
- 0x1e9800f8,
+ 0x1698f60b,
0x0410b600,
- 0xf86721f4,
-/* 0x047d: memx_exec */
- 0xf9e0f900,
- 0x02c1b9d0,
-/* 0x0487: memx_exec_next */
- 0x9802b2b9,
- 0x10b60013,
- 0x10349504,
- 0x980c30f0,
- 0x55f9de35,
- 0xf40612b8,
- 0xd0fcec1e,
- 0x21f5e0fc,
- 0x00f8026b,
-/* 0x04a8: memx_info */
- 0x03acc7f1,
- 0x0800b7f1,
- 0x026b21f5,
-/* 0x04b6: memx_recv */
- 0xd6b000f8,
- 0xc40bf401,
- 0xf400d6b0,
- 0x00f8e90b,
-/* 0x04c4: memx_init */
-/* 0x04c6: perf_recv */
- 0x00f800f8,
-/* 0x04c8: perf_init */
-/* 0x04ca: i2c_drive_scl */
- 0x36b000f8,
- 0x0e0bf400,
- 0x07e007f1,
+/* 0x042e: memx_func_leave */
+ 0x67f000f8,
+ 0xe407f104,
+ 0x0006d007,
+/* 0x043a: memx_func_leave_wait */
+ 0x67f104bd,
+ 0x66cf07c0,
+ 0x0464f000,
+ 0xf8f61bf4,
+/* 0x0449: memx_func_wr32 */
+ 0x00169800,
+ 0xb6011598,
+ 0x60f90810,
+ 0xd0fc50f9,
+ 0x21f4e0fc,
+ 0x0003f133,
+ 0x0506fd14,
+ 0xbd000580,
+ 0x0242b604,
+ 0xf8dd1bf4,
+/* 0x0471: memx_func_wait */
+ 0x2c87f000,
+ 0x980088cf,
+ 0x1d98001e,
+ 0x021c9801,
+ 0xb6031b98,
+ 0x21f41010,
+/* 0x048b: memx_func_delay */
+ 0x9800f87e,
+ 0x10b6001e,
+ 0x6721f404,
+/* 0x0496: memx_exec */
+ 0xe0f900f8,
+ 0xc1b9d0f9,
+ 0x02b2b902,
+/* 0x04a0: memx_exec_next */
+ 0xb6001398,
+ 0x34950410,
+ 0x0c30f010,
+ 0xf9de3598,
+ 0x0612b855,
+ 0xfcec1ef4,
+ 0xf5e0fcd0,
+ 0xf8028421,
+/* 0x04c1: memx_info */
+ 0xacc7f100,
+ 0x00b7f103,
+ 0x8421f508,
+/* 0x04cf: memx_recv */
+ 0xb000f802,
+ 0x0bf401d6,
+ 0x00d6b0c4,
+ 0xf8e90bf4,
+/* 0x04dd: memx_init */
+/* 0x04df: perf_recv */
+ 0xf800f800,
+/* 0x04e1: perf_init */
+/* 0x04e3: i2c_drive_scl */
+ 0xb000f800,
+ 0x0bf40036,
+ 0xe007f10e,
+ 0x0001d007,
+ 0x00f804bd,
+/* 0x04f4: i2c_drive_scl_lo */
+ 0x07e407f1,
0xbd0001d0,
-/* 0x04db: i2c_drive_scl_lo */
- 0xf100f804,
- 0xd007e407,
- 0x04bd0001,
-/* 0x04e6: i2c_drive_sda */
- 0x36b000f8,
- 0x0e0bf400,
- 0x07e007f1,
+/* 0x04ff: i2c_drive_sda */
+ 0xb000f804,
+ 0x0bf40036,
+ 0xe007f10e,
+ 0x0002d007,
+ 0x00f804bd,
+/* 0x0510: i2c_drive_sda_lo */
+ 0x07e407f1,
0xbd0002d0,
-/* 0x04f7: i2c_drive_sda_lo */
- 0xf100f804,
- 0xd007e407,
- 0x04bd0002,
-/* 0x0502: i2c_sense_scl */
- 0x32f400f8,
- 0xc437f101,
- 0x0033cf07,
- 0xf40431fd,
- 0x31f4060b,
-/* 0x0515: i2c_sense_scl_done */
-/* 0x0517: i2c_sense_sda */
- 0xf400f801,
+/* 0x051b: i2c_sense_scl */
+ 0xf400f804,
0x37f10132,
0x33cf07c4,
- 0x0432fd00,
+ 0x0431fd00,
0xf4060bf4,
-/* 0x052a: i2c_sense_sda_done */
+/* 0x052e: i2c_sense_scl_done */
0x00f80131,
-/* 0x052c: i2c_raise_scl */
- 0x47f140f9,
- 0x37f00898,
- 0xca21f501,
-/* 0x0539: i2c_raise_scl_wait */
+/* 0x0530: i2c_sense_sda */
+ 0xf10132f4,
+ 0xcf07c437,
+ 0x32fd0033,
+ 0x060bf404,
+/* 0x0543: i2c_sense_sda_done */
+ 0xf80131f4,
+/* 0x0545: i2c_raise_scl */
+ 0xf140f900,
+ 0xf0089847,
+ 0x21f50137,
+/* 0x0552: i2c_raise_scl_wait */
+ 0xe7f104e3,
+ 0x21f403e8,
+ 0x1b21f567,
+ 0x0901f405,
+ 0xf40142b6,
+/* 0x0566: i2c_raise_scl_done */
+ 0x40fcef1b,
+/* 0x056a: i2c_start */
+ 0x21f500f8,
+ 0x11f4051b,
+ 0x3021f50d,
+ 0x0611f405,
+/* 0x057b: i2c_start_rep */
+ 0xf0300ef4,
+ 0x21f50037,
+ 0x37f004e3,
+ 0xff21f501,
+ 0x0076bb04,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b60545,
+ 0x1f11f404,
+/* 0x05a8: i2c_start_send */
+ 0xf50037f0,
+ 0xf104ff21,
+ 0xf41388e7,
+ 0x37f06721,
+ 0xe321f500,
+ 0x88e7f104,
+ 0x6721f413,
+/* 0x05c4: i2c_start_out */
+/* 0x05c6: i2c_stop */
+ 0x37f000f8,
+ 0xe321f500,
+ 0x0037f004,
+ 0x04ff21f5,
+ 0x03e8e7f1,
+ 0xf06721f4,
+ 0x21f50137,
+ 0xe7f104e3,
+ 0x21f41388,
+ 0x0137f067,
+ 0x04ff21f5,
+ 0x1388e7f1,
+ 0xf86721f4,
+/* 0x05f9: i2c_bitw */
+ 0xff21f500,
0xe8e7f104,
0x6721f403,
- 0x050221f5,
- 0xb60901f4,
- 0x1bf40142,
-/* 0x054d: i2c_raise_scl_done */
- 0xf840fcef,
-/* 0x0551: i2c_start */
- 0x0221f500,
- 0x0d11f405,
- 0x051721f5,
- 0xf40611f4,
-/* 0x0562: i2c_start_rep */
- 0x37f0300e,
- 0xca21f500,
- 0x0137f004,
- 0x04e621f5,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x2c21f550,
+ 0x4521f550,
0x0464b605,
-/* 0x058f: i2c_start_send */
- 0xf01f11f4,
- 0x21f50037,
- 0xe7f104e6,
- 0x21f41388,
- 0x0037f067,
- 0x04ca21f5,
- 0x1388e7f1,
-/* 0x05ab: i2c_start_out */
- 0xf86721f4,
-/* 0x05ad: i2c_stop */
- 0x0037f000,
- 0x04ca21f5,
- 0xf50037f0,
- 0xf104e621,
- 0xf403e8e7,
+ 0xf11811f4,
+ 0xf41388e7,
0x37f06721,
- 0xca21f501,
+ 0xe321f500,
0x88e7f104,
0x6721f413,
- 0xf50137f0,
- 0xf104e621,
- 0xf41388e7,
- 0x00f86721,
-/* 0x05e0: i2c_bitw */
- 0x04e621f5,
- 0x03e8e7f1,
- 0xbb6721f4,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x052c21f5,
- 0xf40464b6,
- 0xe7f11811,
+/* 0x0638: i2c_bitw_out */
+/* 0x063a: i2c_bitr */
+ 0x37f000f8,
+ 0xff21f501,
+ 0xe8e7f104,
+ 0x6721f403,
+ 0xb60076bb,
+ 0x50f90465,
+ 0xbb046594,
+ 0x50bd0256,
+ 0xfc0475fd,
+ 0x4521f550,
+ 0x0464b605,
+ 0xf51b11f4,
+ 0xf0053021,
+ 0x21f50037,
+ 0xe7f104e3,
0x21f41388,
- 0x0037f067,
- 0x04ca21f5,
- 0x1388e7f1,
-/* 0x061f: i2c_bitw_out */
- 0xf86721f4,
-/* 0x0621: i2c_bitr */
- 0x0137f000,
- 0x04e621f5,
- 0x03e8e7f1,
- 0xbb6721f4,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x052c21f5,
- 0xf40464b6,
- 0x21f51b11,
- 0x37f00517,
- 0xca21f500,
- 0x88e7f104,
- 0x6721f413,
- 0xf4013cf0,
-/* 0x0666: i2c_bitr_done */
- 0x00f80131,
-/* 0x0668: i2c_get_byte */
- 0xf00057f0,
-/* 0x066e: i2c_get_byte_next */
- 0x54b60847,
+ 0x013cf067,
+/* 0x067f: i2c_bitr_done */
+ 0xf80131f4,
+/* 0x0681: i2c_get_byte */
+ 0x0057f000,
+/* 0x0687: i2c_get_byte_next */
+ 0xb60847f0,
+ 0x76bb0154,
+ 0x0465b600,
+ 0x659450f9,
+ 0x0256bb04,
+ 0x75fd50bd,
+ 0xf550fc04,
+ 0xb6063a21,
+ 0x11f40464,
+ 0x0553fd2b,
+ 0xf40142b6,
+ 0x37f0d81b,
0x0076bb01,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b60621,
- 0x2b11f404,
- 0xb60553fd,
- 0x1bf40142,
- 0x0137f0d8,
+ 0x64b605f9,
+/* 0x06d1: i2c_get_byte_done */
+/* 0x06d3: i2c_put_byte */
+ 0xf000f804,
+/* 0x06d6: i2c_put_byte_next */
+ 0x42b60847,
+ 0x3854ff01,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0xe021f550,
+ 0xf921f550,
0x0464b605,
-/* 0x06b8: i2c_get_byte_done */
-/* 0x06ba: i2c_put_byte */
- 0x47f000f8,
-/* 0x06bd: i2c_put_byte_next */
- 0x0142b608,
- 0xbb3854ff,
- 0x65b60076,
- 0x9450f904,
- 0x56bb0465,
- 0xfd50bd02,
- 0x50fc0475,
- 0x05e021f5,
- 0xf40464b6,
- 0x46b03411,
- 0xd81bf400,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0x2121f550,
- 0x0464b606,
- 0xbb0f11f4,
- 0x36b00076,
- 0x061bf401,
-/* 0x0713: i2c_put_byte_done */
- 0xf80132f4,
-/* 0x0715: i2c_addr */
- 0x0076bb00,
+ 0xb03411f4,
+ 0x1bf40046,
+ 0x0076bbd8,
0xf90465b6,
0x04659450,
0xbd0256bb,
0x0475fd50,
0x21f550fc,
- 0x64b60551,
- 0x2911f404,
- 0x012ec3e7,
- 0xfd0134b6,
- 0x76bb0553,
+ 0x64b6063a,
+ 0x0f11f404,
+ 0xb00076bb,
+ 0x1bf40136,
+ 0x0132f406,
+/* 0x072c: i2c_put_byte_done */
+/* 0x072e: i2c_addr */
+ 0x76bb00f8,
0x0465b600,
0x659450f9,
0x0256bb04,
0x75fd50bd,
0xf550fc04,
- 0xb606ba21,
-/* 0x075a: i2c_addr_done */
- 0x00f80464,
-/* 0x075c: i2c_acquire_addr */
- 0xb6f8cec7,
- 0xe0b705e4,
- 0x00f8d014,
-/* 0x0768: i2c_acquire */
- 0x075c21f5,
+ 0xb6056a21,
+ 0x11f40464,
+ 0x2ec3e729,
+ 0x0134b601,
+ 0xbb0553fd,
+ 0x65b60076,
+ 0x9450f904,
+ 0x56bb0465,
+ 0xfd50bd02,
+ 0x50fc0475,
+ 0x06d321f5,
+/* 0x0773: i2c_addr_done */
+ 0xf80464b6,
+/* 0x0775: i2c_acquire_addr */
+ 0xf8cec700,
+ 0xb705e4b6,
+ 0xf8d014e0,
+/* 0x0781: i2c_acquire */
+ 0x7521f500,
+ 0x0421f407,
+ 0xf403d9f0,
+ 0x00f83321,
+/* 0x0790: i2c_release */
+ 0x077521f5,
0xf00421f4,
- 0x21f403d9,
-/* 0x0777: i2c_release */
- 0xf500f833,
- 0xf4075c21,
- 0xdaf00421,
- 0x3321f403,
-/* 0x0786: i2c_recv */
- 0x32f400f8,
- 0xf8c1c701,
- 0xb00214b6,
- 0x1ff52816,
- 0x13a0013a,
- 0x32980bd4,
- 0xac13a000,
- 0x0031980b,
- 0xf90231f4,
- 0xf9e0f9d0,
- 0x0067f1d0,
- 0x0063f100,
- 0x01679210,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0x6821f550,
- 0x0464b607,
- 0xd6b0d0fc,
- 0xb31bf500,
- 0x0057f000,
+ 0x21f403da,
+/* 0x079f: i2c_recv */
+ 0xf400f833,
+ 0xc1c70132,
+ 0x0214b6f8,
+ 0xf52816b0,
+ 0xa0013a1f,
+ 0x980bd413,
+ 0x13a00032,
+ 0x31980bac,
+ 0x0231f400,
+ 0xe0f9d0f9,
+ 0x67f1d0f9,
+ 0x63f10000,
+ 0x67921000,
+ 0x0076bb01,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b60781,
+ 0xb0d0fc04,
+ 0x1bf500d6,
+ 0x57f000b3,
+ 0x0076bb00,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b6072e,
+ 0xd011f504,
+ 0xe0c5c700,
0xb60076bb,
0x50f90465,
0xbb046594,
0x50bd0256,
0xfc0475fd,
- 0x1521f550,
- 0x0464b607,
- 0x00d011f5,
- 0xbbe0c5c7,
+ 0xd321f550,
+ 0x0464b606,
+ 0x00ad11f5,
+ 0xbb0157f0,
0x65b60076,
0x9450f904,
0x56bb0465,
0xfd50bd02,
0x50fc0475,
- 0x06ba21f5,
+ 0x072e21f5,
0xf50464b6,
- 0xf000ad11,
- 0x76bb0157,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb6071521,
- 0x11f50464,
- 0x76bb008a,
- 0x0465b600,
- 0x659450f9,
- 0x0256bb04,
- 0x75fd50bd,
- 0xf550fc04,
- 0xb6066821,
- 0x11f40464,
- 0xe05bcb6a,
- 0xb60076bb,
- 0x50f90465,
- 0xbb046594,
- 0x50bd0256,
- 0xfc0475fd,
- 0xad21f550,
- 0x0464b605,
- 0xbd025bb9,
- 0x430ef474,
-/* 0x088c: i2c_recv_not_rd08 */
- 0xf401d6b0,
- 0x57f03d1b,
- 0x1521f500,
- 0x3311f407,
- 0xf5e0c5c7,
- 0xf406ba21,
- 0x57f02911,
- 0x1521f500,
- 0x1f11f407,
- 0xf5e0b5c7,
- 0xf406ba21,
- 0x21f51511,
- 0x74bd05ad,
- 0xf408c5c7,
- 0x32f4091b,
- 0x030ef402,
-/* 0x08cc: i2c_recv_not_wr08 */
-/* 0x08cc: i2c_recv_done */
- 0xf5f8cec7,
- 0xfc077721,
- 0xf4d0fce0,
- 0x7cb90a12,
- 0x6b21f502,
-/* 0x08e1: i2c_recv_exit */
-/* 0x08e3: i2c_init */
- 0xf800f802,
-/* 0x08e5: test_recv */
- 0xd817f100,
- 0x0011cf05,
- 0xf10110b6,
- 0xd005d807,
- 0x04bd0001,
- 0xd900e7f1,
- 0x134fe3f1,
- 0x01b621f5,
-/* 0x0906: test_init */
- 0xe7f100f8,
- 0x21f50800,
- 0x00f801b6,
-/* 0x0910: idle_recv */
-/* 0x0912: idle */
- 0x31f400f8,
- 0xd417f100,
- 0x0011cf05,
- 0xf10110b6,
- 0xd005d407,
- 0x04bd0001,
-/* 0x0928: idle_loop */
- 0xf45817f0,
-/* 0x092e: idle_proc */
-/* 0x092e: idle_proc_exec */
- 0x10f90232,
- 0xf5021eb9,
- 0xfc027421,
- 0x0911f410,
- 0xf40231f4,
-/* 0x0942: idle_proc_next */
- 0x10b6ef0e,
- 0x061fb858,
- 0xf4e61bf4,
- 0x28f4dd02,
- 0xc10ef400,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
+ 0xbb008a11,
+ 0x65b60076,
+ 0x9450f904,
+ 0x56bb0465,
+ 0xfd50bd02,
+ 0x50fc0475,
+ 0x068121f5,
+ 0xf40464b6,
+ 0x5bcb6a11,
+ 0x0076bbe0,
+ 0xf90465b6,
+ 0x04659450,
+ 0xbd0256bb,
+ 0x0475fd50,
+ 0x21f550fc,
+ 0x64b605c6,
+ 0x025bb904,
+ 0x0ef474bd,
+/* 0x08a5: i2c_recv_not_rd08 */
+ 0x01d6b043,
+ 0xf03d1bf4,
+ 0x21f50057,
+ 0x11f4072e,
+ 0xe0c5c733,
+ 0x06d321f5,
+ 0xf02911f4,
+ 0x21f50057,
+ 0x11f4072e,
+ 0xe0b5c71f,
+ 0x06d321f5,
+ 0xf51511f4,
+ 0xbd05c621,
+ 0x08c5c774,
+ 0xf4091bf4,
+ 0x0ef40232,
+/* 0x08e5: i2c_recv_not_wr08 */
+/* 0x08e5: i2c_recv_done */
+ 0xf8cec703,
+ 0x079021f5,
+ 0xd0fce0fc,
+ 0xb90a12f4,
+ 0x21f5027c,
+/* 0x08fa: i2c_recv_exit */
+ 0x00f80284,
+/* 0x08fc: i2c_init */
+/* 0x08fe: test_recv */
+ 0x17f100f8,
+ 0x11cf05d8,
+ 0x0110b600,
+ 0x05d807f1,
+ 0xbd0001d0,
+ 0x00e7f104,
+ 0x4fe3f1d9,
+ 0xb621f513,
+/* 0x091f: test_init */
+ 0xf100f801,
+ 0xf50800e7,
+ 0xf801b621,
+/* 0x0929: idle_recv */
+/* 0x092b: idle */
+ 0xf400f800,
+ 0x17f10031,
+ 0x11cf05d4,
+ 0x0110b600,
+ 0x05d407f1,
+ 0xbd0001d0,
+/* 0x0941: idle_loop */
+ 0x5817f004,
+/* 0x0947: idle_proc */
+/* 0x0947: idle_proc_exec */
+ 0xf90232f4,
+ 0x021eb910,
+ 0x028d21f5,
+ 0x11f410fc,
+ 0x0231f409,
+/* 0x095b: idle_proc_next */
+ 0xb6ef0ef4,
+ 0x1fb85810,
+ 0xe61bf406,
+ 0xf4dd02f4,
+ 0x0ef40028,
+ 0x000000c1,
0x00000000,
0x00000000,
0x00000000,