Commit 2befd17d authored by Martin Peres's avatar Martin Peres Committed by Ben Skeggs
Browse files

drm/nouveau/pwr: add some arith functions (mul32_32_64, subu64 and addu64)

parent 9db66fce
Loading
Loading
Loading
Loading
+94 −0
Original line number Diff line number Diff line
/*
 * Copyright 2014 Martin Peres <martin.peres@free.fr>
 *
 * 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
+10 −0
Original line number Diff line number Diff line
@@ -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
+3 −0
Original line number Diff line number Diff line
@@ -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"
+470 −405
Original line number Diff line number Diff line
@@ -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,
	0x04bd0001,
/* 0x0492: i2c_drive_scl_lo */
	0xe44000f8,
	0x0001f607,
	0x0723c4ef,
	0xb70434b6,
	0xb502f030,
	0x3cb5033b,
	0x013db502,
	0xb6003eb5,
	0x24f00120,
	0x04c8400f,
	0xbd0002f6,
	0x00400204,
	0x0002f600,
	0x00f804bd,
/* 0x049c: i2c_drive_sda */
	0xf40036b0,
	0xe0400d0b,
	0x0002f607,
/* 0x03e0: host_init */
	0xb6008041,
	0x15f11014,
	0xd0400270,
	0x0001f604,
	0x804104bd,
	0x1014b600,
	0x02f015f1,
	0xf604dc40,
	0x04bd0001,
	0xc4400101,
	0x0001f604,
	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,
	0x04bd0006,
/* 0x0438: memx_func_leave_wait */
	0xcf07c046,
	0x64f00066,
	0xf71bf404,
/* 0x0446: memx_func_wr32 */
	0x169800f8,
	0x01159800,
	0xf90810b6,
	0xfc50f960,
	0x7ee0fcd0,
	0xb600002e,
	0x1bf40242,
/* 0x0463: memx_func_wait */
	0x0800f8e8,
	0x0088cf2c,
	0x98001e98,
	0x1c98011d,
	0x031b9802,
	0x7e1010b6,
	0xf8000071,
/* 0x047d: memx_func_delay */
	0x001e9800,
	0x7e0410b6,
	0xf800005d,
/* 0x0489: memx_exec */
	0xf9e0f900,
	0xb2c1b2d0,
/* 0x0491: memx_exec_next */
	0x001398b2,
	0x950410b6,
	0x30f01034,
	0xde35980c,
	0x12a655f9,
	0xfced1ef4,
	0x7ee0fcd0,
	0xf8000257,
/* 0x04b1: memx_info */
	0x03ac4c00,
	0x7e08004b,
	0xf8000257,
/* 0x04bd: memx_recv */
	0x01d6b000,
	0xb0c90bf4,
	0x0bf400d6,
/* 0x04cb: memx_init */
	0xf800f8eb,
/* 0x04cd: perf_recv */
/* 0x04cf: perf_init */
	0xf800f800,
/* 0x04d1: i2c_drive_scl */
	0x0036b000,
	0x400d0bf4,
	0x01f607e0,
	0xf804bd00,
/* 0x04e1: i2c_drive_scl_lo */
	0x07e44000,
	0xbd0001f6,
/* 0x04eb: i2c_drive_sda */
	0xb000f804,
	0x0bf40036,
	0x07e0400d,
	0xbd0002f6,
/* 0x04fb: i2c_drive_sda_lo */
	0x4000f804,
	0x02f607e4,
	0xf804bd00,
/* 0x0505: i2c_sense_scl */
	0x0132f400,
	0xcf07c443,
	0x31fd0033,
	0x060bf404,
/* 0x0517: i2c_sense_scl_done */
	0xf80131f4,
/* 0x0519: i2c_sense_sda */
	0x0132f400,
	0xcf07c443,
	0x32fd0033,
	0x060bf404,
/* 0x052b: i2c_sense_sda_done */
	0xf80131f4,
/* 0x052d: i2c_raise_scl */
	0x4440f900,
	0x01030898,
	0x0004d17e,
/* 0x0538: i2c_raise_scl_wait */
	0x7e03e84e,
	0x7e00005d,
	0xf4000505,
	0x42b60901,
	0xef1bf401,
/* 0x054c: i2c_raise_scl_done */
	0x00f840fc,
/* 0x0550: i2c_start */
	0x0005057e,
	0x7e0d11f4,
	0xf4000519,
	0x0ef40611,
/* 0x0561: i2c_start_rep */
	0x7e00032e,
	0x030004d1,
	0x04eb7e01,
	0x0076bb00,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0x2d7e50fc,
	0x64b60005,
	0x1d11f404,
/* 0x058c: i2c_start_send */
	0xeb7e0003,
	0x884e0004,
	0x005d7e13,
	0x7e000300,
	0x4e0004d1,
	0x5d7e1388,
/* 0x05a6: i2c_start_out */
	0x00f80000,
/* 0x05a8: i2c_stop */
	0xd17e0003,
	0x00030004,
	0x0004eb7e,
	0x7e03e84e,
	0x0300005d,
	0x04d17e01,
	0x13884e00,
	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,
	0xeb7e0103,
	0x884e0004,
	0x005d7e13,
/* 0x05d7: i2c_bitw */
	0x7e00f800,
	0x4e0004eb,
	0x5d7e03e8,
	0x76bb0000,
	0x0465b600,
	0x659450f9,
	0x0256bb04,
	0x75fd50bd,
	0x7e50fc04,
	0xb60004de,
	0xb600052d,
	0x11f40464,
/* 0x053d: i2c_start_send */
	0x7e00031d,
	0x4e00049c,
	0x5d7e1388,
	0x00030000,
	0x0004827e,
	0x7e13884e,
/* 0x0557: i2c_start_out */
	0xf800005d,
/* 0x0559: i2c_stop */
	0x7e000300,
	0x03000482,
	0x049c7e00,
	0x03e84e00,
	0x13884e17,
	0x00005d7e,
	0x827e0103,
	0xd17e0003,
	0x884e0004,
	0x005d7e13,
	0x7e010300,
	0x4e00049c,
	0x5d7e1388,
	0x00f80000,
/* 0x0588: i2c_bitw */
	0x00049c7e,
	0x7e03e84e,
	0xbb00005d,
/* 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,
	0x0004de7e,
	0x0006177e,
	0xf40464b6,
	0x884e1711,
	0x005d7e13,
	0x7e000300,
	0x4e000482,
	0x5d7e1388,
/* 0x05c6: i2c_bitw_out */
	0x00f80000,
/* 0x05c8: i2c_bitr */
	0x9c7e0103,
	0xe84e0004,
	0x005d7e03,
	0x0076bb00,
	0x53fd2a11,
	0x0142b605,
	0x03d81bf4,
	0x0076bb01,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0xde7e50fc,
	0x64b60004,
	0x1a11f404,
	0x0004ca7e,
	0x827e0003,
	0x884e0004,
	0x005d7e13,
	0x013cf000,
/* 0x060b: i2c_bitr_done */
	0xf80131f4,
/* 0x060d: i2c_get_byte */
	0x04000500,
/* 0x0611: i2c_get_byte_next */
	0x0154b608,
	0xd77e50fc,
	0x64b60005,
/* 0x06a9: i2c_get_byte_done */
/* 0x06ab: i2c_put_byte */
	0x0400f804,
/* 0x06ad: i2c_put_byte_next */
	0x0142b608,
	0xbb3854ff,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x0005d77e,
	0xf40464b6,
	0x46b03411,
	0xd81bf400,
	0xb60076bb,
	0x50f90465,
	0xbb046594,
	0x50bd0256,
	0xfc0475fd,
	0x05c87e50,
	0x06177e50,
	0x0464b600,
	0xfd2a11f4,
	0x42b60553,
	0xd81bf401,
	0x76bb0103,
	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,
	0xb6000588,
/* 0x065a: i2c_get_byte_done */
	0xb60006ab,
/* 0x074a: i2c_addr_done */
	0x00f80464,
/* 0x065c: i2c_put_byte */
/* 0x065e: i2c_put_byte_next */
	0x42b60804,
	0x3854ff01,
/* 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,
	0x05887e50,
	0x06ab7e50,
	0x0464b600,
	0xb03411f4,
	0x1bf40046,
	0x0076bbd8,
	0xf90465b6,
	0x04659450,
	0xbd0256bb,
	0x0475fd50,
	0xc87e50fc,
	0x64b60005,
	0x0f11f404,
	0xb00076bb,
	0x1bf40136,
	0x0132f406,
/* 0x06b4: i2c_put_byte_done */
/* 0x06b6: i2c_addr */
	0x76bb00f8,
	0x00a911f5,
	0x76bb0105,
	0x0465b600,
	0x659450f9,
	0x0256bb04,
	0x75fd50bd,
	0x7e50fc04,
	0xb6000501,
	0x11f40464,
	0x2ec3e729,
	0x0134b601,
	0xbb0553fd,
	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,
	0x65b60076,
	0x9450f904,
	0x56bb0465,
	0xfd50bd02,
	0x50fc0475,
	0x0007097e,
	0xfc0464b6,
	0x00d6b0d0,
	0x00b01bf5,
	0x76bb0005,
	0xb6000705,
	0x11f50464,
	0x76bb0087,
	0x0465b600,
	0x659450f9,
	0x0256bb04,
	0x75fd50bd,
	0x7e50fc04,
	0xb60006b6,
	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,
	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,
+3 −0
Original line number Diff line number Diff line
@@ -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"
Loading