Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8fd4b7d4 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/gr/gm107: support tpc "strand" ctxsw in gpccs ucode



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2a19b3ed
Loading
Loading
Loading
Loading
+102 −0
Original line number Diff line number Diff line
@@ -70,6 +70,43 @@ error:
	pop $r14
	ret

#if CHIPSET >= GM107
tpc_strand_wait:
	push $r9
	trace_set(T_STRTPC)
	tpc_strand_busy:
		nv_iord($r9, NV_PGRAPH_GPCX_GPCCS_TPC_STATUS, 0)
		bra b32 $r9 0x0 ne #tpc_strand_busy
	trace_clr(T_STRTPC)
	pop $r9
	ret

#define tpc_strand_wait() call(tpc_strand_wait)
#define tpc_strand_enable()                                                   /*
*/	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_CMD_ENABLE                        /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_CMD, $r15)                        /*
*/	tpc_strand_wait()
#define tpc_strand_disable()                                                  /*
*/	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_CMD_DISABLE                       /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_CMD, $r15)                        /*
*/	tpc_strand_wait()
#define tpc_strand_seek(p)                                                    /*
*/	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_INDEX_ALL                         /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_INDEX, $r15)                      /*
*/	mov $r15 p                                                            /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_SELECT, $r15)                     /*
*/	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_CMD_SEEK                          /*
*/	tpc_strand_wait()
#define tpc_strand_info(m)                                                    /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_CMD, $r15)                        /*
*/	mov $r15 m                                                            /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_DATA, $r15)                       /*
*/	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_CMD_GET_INFO                      /*
*/	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_CMD, $r15)                        /*
*/	tpc_strand_wait()
#endif


// GPC fuc initialisation, executed by triggering ucode start, will
// fall through to main loop after completion.
//
@@ -196,8 +233,56 @@ init:
	// calculate size of strand context data
	mov b32 $r15 $r2
	call(strand_ctx_init)
	add b32 $r2 $r15
	add b32 $r3 $r15

#if CHIPSET >= GM107
	// calculate size of tpc strand context data
	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_INDEX_ALL
	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_INDEX, $r15)
	tpc_strand_enable();
	tpc_strand_seek(0);
	tpc_strand_info(-1);

	ld b32 $r4 D[$r0 + #tpc_count]
	mov $r5 NV_PGRAPH_GPC0_TPC0
	ld b32 $r6 D[$r0 + #gpc_id]
	shl b32 $r6 15
	add b32 $r5 $r6
	tpc_strand_init_tpc_loop:
		add b32 $r14 $r5 NV_TPC_STRAND_CNT
		call(nv_rd32)
		mov b32 $r6 $r15
		clear b32 $r7
		tpc_strand_init_idx_loop:
			add b32 $r14 $r5 NV_TPC_STRAND_INDEX
			mov b32 $r15 $r7
			call(nv_wr32)
			add b32 $r14 $r5 NV_TPC_STRAND_SAVE_SWBASE
			shr b32 $r15 $r2 8
			call(nv_wr32)
			add b32 $r14 $r5 NV_TPC_STRAND_LOAD_SWBASE
			shr b32 $r15 $r2 8
			call(nv_wr32)
			add b32 $r14 $r5 NV_TPC_STRAND_WORDS
			call(nv_rd32)
			shr b32 $r15 6
			add b32 $r15 1
			shl b32 $r15 8
			add b32 $r2 $r15
			add b32 $r3 $r15
			add b32 $r7 1
			sub b32 $r6 1
			bra nz #tpc_strand_init_idx_loop
		add b32 $r5 NV_PGRAPH_GPC0_TPC0__SIZE
		sub b32 $r4 1
		bra nz #tpc_strand_init_tpc_loop

	mov $r15 NV_PGRAPH_GPC0_TPCX_STRAND_INDEX_ALL
	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_INDEX, $r15)
	tpc_strand_disable();
#endif

	// save context size, and tell HUB we're done
	nv_iowr(NV_PGRAPH_GPCX_GPCCS_CC_SCRATCH_VAL(1), 0, $r3)
	clear b32 $r2
@@ -316,6 +401,9 @@ ctx_redswitch:
ctx_xfer:
	// set context base address
	nv_iowr(NV_PGRAPH_GPCX_GPCCS_MEM_BASE, 0, $r15)
#if CHIPSET >= GM107
	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_MEM_BASE, $r15)
#endif
	bra not $p1 #ctx_xfer_not_load
		call(ctx_redswitch)
	ctx_xfer_not_load:
@@ -328,6 +416,14 @@ ctx_xfer:
	add b32 $r2 NV_PGRAPH_GPCX_GPCCS_STRAND_CMD_SAVE
	nv_iowr(NV_PGRAPH_GPCX_GPCCS_STRAND_CMD, 0x3f, $r2)

#if CHIPSET >= GM107
	tpc_strand_enable();
	tpc_strand_seek(0);
	xbit $r15 $flags $p1	// SAVE/LOAD
	add b32 $r15 NV_PGRAPH_GPC0_TPCX_STRAND_CMD_SAVE
	gpc_wr32(NV_PGRAPH_GPC0_TPCX_STRAND_CMD, $r15)
#endif

	// mmio context
	xbit $r10 $flags $p1	// direction
	or $r10 2		// first
@@ -372,6 +468,9 @@ ctx_xfer:

	// wait for strands to finish
	call(strand_wait)
#if CHIPSET >= GM107
	tpc_strand_wait()
#endif

	// if load, or a save without a load following, do some
	// unknown stuff that's done after finishing a block of
@@ -380,6 +479,9 @@ ctx_xfer:
	bra not $p2 #ctx_xfer_done
	ctx_xfer_post:
		call(strand_post)
#if CHIPSET >= GM107
		tpc_strand_disable()
#endif

	// mark completion in HUB's barrier
	ctx_xfer_done:
+113 −113
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ uint32_t gf100_grgpc_code[] = {
	0x03f01200,
	0x0002d000,
	0x17f104bd,
	0x10fe04f5,
	0x10fe04f8,
	0x0007f100,
	0x0003f007,
	0xbd0000d0,
@@ -362,124 +362,124 @@ uint32_t gf100_grgpc_code[] = {
	0x34b60824,
	0x022fb908,
	0x02d321f5,
	0xf1003fbb,
	0xf0010007,
	0x03d00203,
	0xbd04bd00,
	0x1f29f024,
	0x080007f1,
	0xd00203f0,
	0x04bd0002,
/* 0x04b8: main */
	0xf40031f4,
	0xd7f00028,
	0x3921f41c,
	0xb0f401f4,
	0x18f404e4,
	0x0181fe1e,
	0xbd0627f0,
	0x0412fd20,
	0xfd01e4b6,
	0x18fe051e,
	0xad21f500,
	0xd30ef405,
/* 0x04e8: main_not_ctx_xfer */
	0xf010ef94,
	0x21f501f5,
	0x0ef4037e,
/* 0x04f5: ih */
	0xfe80f9c6,
	0x80f90188,
	0xa0f990f9,
	0xd0f9b0f9,
	0xf0f9e0f9,
	0xa7f104bd,
	0xa3f00200,
	0x00aacf00,
	0xf404abc4,
	0xd7f02c0b,
	0x00e7f11c,
	0x00e3f01a,
	0xf100eecf,
	0xf01900f7,
	0xffcf00f3,
	0x0421f400,
	0xf101e7f0,
	0xf01d0007,
	0x0ed00003,
/* 0x0543: ih_no_fifo */
	0xf104bd00,
	0xf0010007,
	0x0ad00003,
	0xfc04bd00,
	0xfce0fcf0,
	0xfcb0fcd0,
	0xfc90fca0,
	0x0088fe80,
	0x32f480fc,
/* 0x0567: hub_barrier_done */
	0xf001f800,
	0x0e9801f7,
	0x04febb04,
	0xf102ffb9,
	0xf09418e7,
	0x21f440e3,
/* 0x057f: ctx_redswitch */
	0xf000f89d,
	0x07f120f7,
	0xbb002fbb,
	0x07f1003f,
	0x03f00100,
	0x0003d002,
	0x24bd04bd,
	0xf11f29f0,
	0xf0080007,
	0x02d00203,
/* 0x04bb: main */
	0xf404bd00,
	0x28f40031,
	0x1cd7f000,
	0xf43921f4,
	0xe4b0f401,
	0x1e18f404,
	0xf00181fe,
	0x20bd0627,
	0xb60412fd,
	0x1efd01e4,
	0x0018fe05,
	0x05b021f5,
/* 0x04eb: main_not_ctx_xfer */
	0x94d30ef4,
	0xf5f010ef,
	0x7e21f501,
	0xc60ef403,
/* 0x04f8: ih */
	0x88fe80f9,
	0xf980f901,
	0xf9a0f990,
	0xf9d0f9b0,
	0xbdf0f9e0,
	0x00a7f104,
	0x00a3f002,
	0xc400aacf,
	0x0bf404ab,
	0x1cd7f02c,
	0x1a00e7f1,
	0xcf00e3f0,
	0xf7f100ee,
	0xf3f01900,
	0x00ffcf00,
	0xf00421f4,
	0x07f101e7,
	0x03f01d00,
	0x000ed000,
/* 0x0546: ih_no_fifo */
	0x07f104bd,
	0x03f00100,
	0x000ad000,
	0xf0fc04bd,
	0xd0fce0fc,
	0xa0fcb0fc,
	0x80fc90fc,
	0xfc0088fe,
	0x0032f480,
/* 0x056a: hub_barrier_done */
	0xf7f001f8,
	0x040e9801,
	0xb904febb,
	0xe7f102ff,
	0xe3f09418,
	0x9d21f440,
/* 0x0582: ctx_redswitch */
	0xf7f000f8,
	0x0007f120,
	0x0103f085,
	0xbd000fd0,
	0x08e7f004,
/* 0x0594: ctx_redswitch_delay */
	0xf401e2b6,
	0xf5f1fd1b,
	0xf5f10800,
	0x07f10200,
	0x03f08500,
	0x000fd001,
	0xe7f004bd,
/* 0x0591: ctx_redswitch_delay */
	0x01e2b608,
	0xf1fd1bf4,
	0xf10800f5,
	0xf10200f5,
	0xf0850007,
	0x0fd00103,
	0xf804bd00,
/* 0x05ad: ctx_xfer */
	0x0007f100,
	0x0203f081,
	0xbd000fd0,
	0x0711f404,
	0x057f21f5,
/* 0x05c0: ctx_xfer_not_load */
	0x026a21f5,
	0x07f124bd,
	0x03f047fc,
	0x0002d002,
	0x2cf004bd,
	0x0320b601,
	0x4afc07f1,
	0x00f804bd,
/* 0x05b0: ctx_xfer */
	0x810007f1,
	0xd00203f0,
	0x04bd0002,
	0xf001acf0,
	0xb7f102a5,
	0xb3f00000,
	0x040c9850,
	0xbb0fc4b6,
	0x0c9800bc,
	0x010d9800,
	0xf500e7f0,
	0xf0016f21,
	0x04bd000f,
	0xf50711f4,
/* 0x05c3: ctx_xfer_not_load */
	0xf5058221,
	0xbd026a21,
	0xfc07f124,
	0x0203f047,
	0xbd0002d0,
	0x012cf004,
	0xf10320b6,
	0xf04afc07,
	0x02d00203,
	0xf004bd00,
	0xa5f001ac,
	0x00b7f104,
	0x50b3f040,
	0x00b7f102,
	0x50b3f000,
	0xb6040c98,
	0xbcbb0fc4,
	0x010c9800,
	0x98020d98,
	0xe7f1060f,
	0x21f50800,
	0x21f5016f,
	0x01f4025e,
	0x0712f406,
/* 0x0638: ctx_xfer_post */
	0x027f21f5,
/* 0x063c: ctx_xfer_done */
	0x056721f5,
	0x000000f8,
	0x000c9800,
	0xf0010d98,
	0x21f500e7,
	0xacf0016f,
	0x04a5f001,
	0x4000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98010c98,
	0x0f98020d,
	0x00e7f106,
	0x6f21f508,
	0x5e21f501,
	0x0601f402,
/* 0x063b: ctx_xfer_post */
	0xf50712f4,
/* 0x063f: ctx_xfer_done */
	0xf5027f21,
	0xf8056a21,
	0x00000000,
	0x00000000,
	0x00000000,
+122 −122
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ uint32_t gf117_grgpc_code[] = {
	0x03f01200,
	0x0002d000,
	0x17f104bd,
	0x10fe053f,
	0x10fe0542,
	0x0007f100,
	0x0003f007,
	0xbd0000d0,
@@ -387,134 +387,134 @@ uint32_t gf117_grgpc_code[] = {
	0x0824b601,
	0xb90834b6,
	0x21f5022f,
	0x3fbb02d3,
	0x0007f100,
	0x0203f001,
	0xbd0003d0,
	0xf024bd04,
	0x07f11f29,
	0x03f00800,
	0x0002d002,
/* 0x0502: main */
	0x31f404bd,
	0x0028f400,
	0xf424d7f0,
	0x01f43921,
	0x04e4b0f4,
	0xfe1e18f4,
	0x27f00181,
	0xfd20bd06,
	0xe4b60412,
	0x051efd01,
	0xf50018fe,
	0xf405f721,
/* 0x0532: main_not_ctx_xfer */
	0xef94d30e,
	0x01f5f010,
	0x037e21f5,
/* 0x053f: ih */
	0xf9c60ef4,
	0x0188fe80,
	0x90f980f9,
	0xb0f9a0f9,
	0xe0f9d0f9,
	0x04bdf0f9,
	0x0200a7f1,
	0xcf00a3f0,
	0xabc400aa,
	0x2c0bf404,
	0xf124d7f0,
	0xf01a00e7,
	0xeecf00e3,
	0x00f7f100,
	0x00f3f019,
	0xf400ffcf,
	0xe7f00421,
	0x0007f101,
	0x0003f01d,
	0xbd000ed0,
/* 0x058d: ih_no_fifo */
	0x0007f104,
	0x0003f001,
	0xbd000ad0,
	0xfcf0fc04,
	0xfcd0fce0,
	0xfca0fcb0,
	0xfe80fc90,
	0x80fc0088,
	0xf80032f4,
/* 0x05b1: hub_barrier_done */
	0x01f7f001,
	0xbb040e98,
	0xffb904fe,
	0x18e7f102,
	0x40e3f094,
	0xf89d21f4,
/* 0x05c9: ctx_redswitch */
	0x20f7f000,
	0x2fbb02d3,
	0x003fbb00,
	0x010007f1,
	0xd00203f0,
	0x04bd0003,
	0x29f024bd,
	0x0007f11f,
	0x0203f008,
	0xbd0002d0,
/* 0x0505: main */
	0x0031f404,
	0xf00028f4,
	0x21f424d7,
	0xf401f439,
	0xf404e4b0,
	0x81fe1e18,
	0x0627f001,
	0x12fd20bd,
	0x01e4b604,
	0xfe051efd,
	0x21f50018,
	0x0ef405fa,
/* 0x0535: main_not_ctx_xfer */
	0x10ef94d3,
	0xf501f5f0,
	0xf4037e21,
/* 0x0542: ih */
	0x80f9c60e,
	0xf90188fe,
	0xf990f980,
	0xf9b0f9a0,
	0xf9e0f9d0,
	0xf104bdf0,
	0xf00200a7,
	0xaacf00a3,
	0x04abc400,
	0xf02c0bf4,
	0xe7f124d7,
	0xe3f01a00,
	0x00eecf00,
	0x1900f7f1,
	0xcf00f3f0,
	0x21f400ff,
	0x01e7f004,
	0x1d0007f1,
	0xd00003f0,
	0x04bd000e,
/* 0x0590: ih_no_fifo */
	0x010007f1,
	0xd00003f0,
	0x04bd000a,
	0xe0fcf0fc,
	0xb0fcd0fc,
	0x90fca0fc,
	0x88fe80fc,
	0xf480fc00,
	0x01f80032,
/* 0x05b4: hub_barrier_done */
	0x9801f7f0,
	0xfebb040e,
	0x02ffb904,
	0x9418e7f1,
	0xf440e3f0,
	0x00f89d21,
/* 0x05cc: ctx_redswitch */
	0xf120f7f0,
	0xf0850007,
	0x0fd00103,
	0xf004bd00,
/* 0x05de: ctx_redswitch_delay */
	0xe2b608e7,
	0xfd1bf401,
	0x0800f5f1,
	0x0200f5f1,
	0x850007f1,
	0xd00103f0,
	0x04bd000f,
/* 0x05db: ctx_redswitch_delay */
	0xb608e7f0,
	0x1bf401e2,
	0x00f5f1fd,
	0x00f5f108,
	0x0007f102,
	0x0103f085,
	0xbd000fd0,
/* 0x05f7: ctx_xfer */
	0xf100f804,
	0xf0810007,
	0x0fd00203,
	0xf404bd00,
	0x21f50711,
/* 0x060a: ctx_xfer_not_load */
	0x21f505c9,
	0x24bd026a,
	0x47fc07f1,
	0xd00203f0,
	0x04bd0002,
	0xb6012cf0,
	0x07f10320,
	0x03f04afc,
	0x0002d002,
	0xacf004bd,
	0x02a5f001,
	0x0000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98000c98,
	0xe7f0010d,
	0x6f21f500,
	0x01acf001,
	0x4000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98010c98,
	0x0f98020d,
	0x00e7f106,
	0x6f21f508,
	0x01acf001,
	0xf104a5f0,
	0xf03000b7,
/* 0x05fa: ctx_xfer */
	0x07f100f8,
	0x03f08100,
	0x000fd002,
	0x11f404bd,
	0xcc21f507,
/* 0x060d: ctx_xfer_not_load */
	0x6a21f505,
	0xf124bd02,
	0xf047fc07,
	0x02d00203,
	0xf004bd00,
	0x20b6012c,
	0xfc07f103,
	0x0203f04a,
	0xbd0002d0,
	0x01acf004,
	0xf102a5f0,
	0xf00000b7,
	0x0c9850b3,
	0x0fc4b604,
	0x9800bcbb,
	0x0d98020c,
	0x080f9803,
	0x0200e7f1,
	0x0d98000c,
	0x00e7f001,
	0x016f21f5,
	0x025e21f5,
	0xf40601f4,
/* 0x06a6: ctx_xfer_post */
	0x21f50712,
/* 0x06aa: ctx_xfer_done */
	0x21f5027f,
	0x00f805b1,
	0x00000000,
	0xf101acf0,
	0xf04000b7,
	0x0c9850b3,
	0x0fc4b604,
	0x9800bcbb,
	0x0d98010c,
	0x060f9802,
	0x0800e7f1,
	0x016f21f5,
	0xf001acf0,
	0xb7f104a5,
	0xb3f03000,
	0x040c9850,
	0xbb0fc4b6,
	0x0c9800bc,
	0x030d9802,
	0xf1080f98,
	0xf50200e7,
	0xf5016f21,
	0xf4025e21,
	0x12f40601,
/* 0x06a9: ctx_xfer_post */
	0x7f21f507,
/* 0x06ad: ctx_xfer_done */
	0xb421f502,
	0x0000f805,
	0x00000000,
	0x00000000,
	0x00000000,
+122 −122
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ uint32_t gk104_grgpc_code[] = {
	0x03f01200,
	0x0002d000,
	0x17f104bd,
	0x10fe053f,
	0x10fe0542,
	0x0007f100,
	0x0003f007,
	0xbd0000d0,
@@ -387,134 +387,134 @@ uint32_t gk104_grgpc_code[] = {
	0x0824b601,
	0xb90834b6,
	0x21f5022f,
	0x3fbb02d3,
	0x0007f100,
	0x0203f001,
	0xbd0003d0,
	0xf024bd04,
	0x07f11f29,
	0x03f00800,
	0x0002d002,
/* 0x0502: main */
	0x31f404bd,
	0x0028f400,
	0xf424d7f0,
	0x01f43921,
	0x04e4b0f4,
	0xfe1e18f4,
	0x27f00181,
	0xfd20bd06,
	0xe4b60412,
	0x051efd01,
	0xf50018fe,
	0xf405f721,
/* 0x0532: main_not_ctx_xfer */
	0xef94d30e,
	0x01f5f010,
	0x037e21f5,
/* 0x053f: ih */
	0xf9c60ef4,
	0x0188fe80,
	0x90f980f9,
	0xb0f9a0f9,
	0xe0f9d0f9,
	0x04bdf0f9,
	0x0200a7f1,
	0xcf00a3f0,
	0xabc400aa,
	0x2c0bf404,
	0xf124d7f0,
	0xf01a00e7,
	0xeecf00e3,
	0x00f7f100,
	0x00f3f019,
	0xf400ffcf,
	0xe7f00421,
	0x0007f101,
	0x0003f01d,
	0xbd000ed0,
/* 0x058d: ih_no_fifo */
	0x0007f104,
	0x0003f001,
	0xbd000ad0,
	0xfcf0fc04,
	0xfcd0fce0,
	0xfca0fcb0,
	0xfe80fc90,
	0x80fc0088,
	0xf80032f4,
/* 0x05b1: hub_barrier_done */
	0x01f7f001,
	0xbb040e98,
	0xffb904fe,
	0x18e7f102,
	0x40e3f094,
	0xf89d21f4,
/* 0x05c9: ctx_redswitch */
	0x20f7f000,
	0x2fbb02d3,
	0x003fbb00,
	0x010007f1,
	0xd00203f0,
	0x04bd0003,
	0x29f024bd,
	0x0007f11f,
	0x0203f008,
	0xbd0002d0,
/* 0x0505: main */
	0x0031f404,
	0xf00028f4,
	0x21f424d7,
	0xf401f439,
	0xf404e4b0,
	0x81fe1e18,
	0x0627f001,
	0x12fd20bd,
	0x01e4b604,
	0xfe051efd,
	0x21f50018,
	0x0ef405fa,
/* 0x0535: main_not_ctx_xfer */
	0x10ef94d3,
	0xf501f5f0,
	0xf4037e21,
/* 0x0542: ih */
	0x80f9c60e,
	0xf90188fe,
	0xf990f980,
	0xf9b0f9a0,
	0xf9e0f9d0,
	0xf104bdf0,
	0xf00200a7,
	0xaacf00a3,
	0x04abc400,
	0xf02c0bf4,
	0xe7f124d7,
	0xe3f01a00,
	0x00eecf00,
	0x1900f7f1,
	0xcf00f3f0,
	0x21f400ff,
	0x01e7f004,
	0x1d0007f1,
	0xd00003f0,
	0x04bd000e,
/* 0x0590: ih_no_fifo */
	0x010007f1,
	0xd00003f0,
	0x04bd000a,
	0xe0fcf0fc,
	0xb0fcd0fc,
	0x90fca0fc,
	0x88fe80fc,
	0xf480fc00,
	0x01f80032,
/* 0x05b4: hub_barrier_done */
	0x9801f7f0,
	0xfebb040e,
	0x02ffb904,
	0x9418e7f1,
	0xf440e3f0,
	0x00f89d21,
/* 0x05cc: ctx_redswitch */
	0xf120f7f0,
	0xf0850007,
	0x0fd00103,
	0xf004bd00,
/* 0x05de: ctx_redswitch_delay */
	0xe2b608e7,
	0xfd1bf401,
	0x0800f5f1,
	0x0200f5f1,
	0x850007f1,
	0xd00103f0,
	0x04bd000f,
/* 0x05db: ctx_redswitch_delay */
	0xb608e7f0,
	0x1bf401e2,
	0x00f5f1fd,
	0x00f5f108,
	0x0007f102,
	0x0103f085,
	0xbd000fd0,
/* 0x05f7: ctx_xfer */
	0xf100f804,
	0xf0810007,
	0x0fd00203,
	0xf404bd00,
	0x21f50711,
/* 0x060a: ctx_xfer_not_load */
	0x21f505c9,
	0x24bd026a,
	0x47fc07f1,
	0xd00203f0,
	0x04bd0002,
	0xb6012cf0,
	0x07f10320,
	0x03f04afc,
	0x0002d002,
	0xacf004bd,
	0x02a5f001,
	0x0000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98000c98,
	0xe7f0010d,
	0x6f21f500,
	0x01acf001,
	0x4000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98010c98,
	0x0f98020d,
	0x00e7f106,
	0x6f21f508,
	0x01acf001,
	0xf104a5f0,
	0xf03000b7,
/* 0x05fa: ctx_xfer */
	0x07f100f8,
	0x03f08100,
	0x000fd002,
	0x11f404bd,
	0xcc21f507,
/* 0x060d: ctx_xfer_not_load */
	0x6a21f505,
	0xf124bd02,
	0xf047fc07,
	0x02d00203,
	0xf004bd00,
	0x20b6012c,
	0xfc07f103,
	0x0203f04a,
	0xbd0002d0,
	0x01acf004,
	0xf102a5f0,
	0xf00000b7,
	0x0c9850b3,
	0x0fc4b604,
	0x9800bcbb,
	0x0d98020c,
	0x080f9803,
	0x0200e7f1,
	0x0d98000c,
	0x00e7f001,
	0x016f21f5,
	0x025e21f5,
	0xf40601f4,
/* 0x06a6: ctx_xfer_post */
	0x21f50712,
/* 0x06aa: ctx_xfer_done */
	0x21f5027f,
	0x00f805b1,
	0x00000000,
	0xf101acf0,
	0xf04000b7,
	0x0c9850b3,
	0x0fc4b604,
	0x9800bcbb,
	0x0d98010c,
	0x060f9802,
	0x0800e7f1,
	0x016f21f5,
	0xf001acf0,
	0xb7f104a5,
	0xb3f03000,
	0x040c9850,
	0xbb0fc4b6,
	0x0c9800bc,
	0x030d9802,
	0xf1080f98,
	0xf50200e7,
	0xf5016f21,
	0xf4025e21,
	0x12f40601,
/* 0x06a9: ctx_xfer_post */
	0x7f21f507,
/* 0x06ad: ctx_xfer_done */
	0xb421f502,
	0x0000f805,
	0x00000000,
	0x00000000,
	0x00000000,
+122 −122
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ uint32_t gk110_grgpc_code[] = {
	0x03f01200,
	0x0002d000,
	0x17f104bd,
	0x10fe053f,
	0x10fe0542,
	0x0007f100,
	0x0003f007,
	0xbd0000d0,
@@ -387,134 +387,134 @@ uint32_t gk110_grgpc_code[] = {
	0x0824b601,
	0xb90834b6,
	0x21f5022f,
	0x3fbb02d3,
	0x0007f100,
	0x0203f001,
	0xbd0003d0,
	0xf024bd04,
	0x07f11f29,
	0x03f03000,
	0x0002d002,
/* 0x0502: main */
	0x31f404bd,
	0x0028f400,
	0xf424d7f0,
	0x01f43921,
	0x04e4b0f4,
	0xfe1e18f4,
	0x27f00181,
	0xfd20bd06,
	0xe4b60412,
	0x051efd01,
	0xf50018fe,
	0xf405f721,
/* 0x0532: main_not_ctx_xfer */
	0xef94d30e,
	0x01f5f010,
	0x037e21f5,
/* 0x053f: ih */
	0xf9c60ef4,
	0x0188fe80,
	0x90f980f9,
	0xb0f9a0f9,
	0xe0f9d0f9,
	0x04bdf0f9,
	0x0200a7f1,
	0xcf00a3f0,
	0xabc400aa,
	0x2c0bf404,
	0xf124d7f0,
	0xf01a00e7,
	0xeecf00e3,
	0x00f7f100,
	0x00f3f019,
	0xf400ffcf,
	0xe7f00421,
	0x0007f101,
	0x0003f01d,
	0xbd000ed0,
/* 0x058d: ih_no_fifo */
	0x0007f104,
	0x0003f001,
	0xbd000ad0,
	0xfcf0fc04,
	0xfcd0fce0,
	0xfca0fcb0,
	0xfe80fc90,
	0x80fc0088,
	0xf80032f4,
/* 0x05b1: hub_barrier_done */
	0x01f7f001,
	0xbb040e98,
	0xffb904fe,
	0x18e7f102,
	0x40e3f094,
	0xf89d21f4,
/* 0x05c9: ctx_redswitch */
	0x20f7f000,
	0x2fbb02d3,
	0x003fbb00,
	0x010007f1,
	0xd00203f0,
	0x04bd0003,
	0x29f024bd,
	0x0007f11f,
	0x0203f030,
	0xbd0002d0,
/* 0x0505: main */
	0x0031f404,
	0xf00028f4,
	0x21f424d7,
	0xf401f439,
	0xf404e4b0,
	0x81fe1e18,
	0x0627f001,
	0x12fd20bd,
	0x01e4b604,
	0xfe051efd,
	0x21f50018,
	0x0ef405fa,
/* 0x0535: main_not_ctx_xfer */
	0x10ef94d3,
	0xf501f5f0,
	0xf4037e21,
/* 0x0542: ih */
	0x80f9c60e,
	0xf90188fe,
	0xf990f980,
	0xf9b0f9a0,
	0xf9e0f9d0,
	0xf104bdf0,
	0xf00200a7,
	0xaacf00a3,
	0x04abc400,
	0xf02c0bf4,
	0xe7f124d7,
	0xe3f01a00,
	0x00eecf00,
	0x1900f7f1,
	0xcf00f3f0,
	0x21f400ff,
	0x01e7f004,
	0x1d0007f1,
	0xd00003f0,
	0x04bd000e,
/* 0x0590: ih_no_fifo */
	0x010007f1,
	0xd00003f0,
	0x04bd000a,
	0xe0fcf0fc,
	0xb0fcd0fc,
	0x90fca0fc,
	0x88fe80fc,
	0xf480fc00,
	0x01f80032,
/* 0x05b4: hub_barrier_done */
	0x9801f7f0,
	0xfebb040e,
	0x02ffb904,
	0x9418e7f1,
	0xf440e3f0,
	0x00f89d21,
/* 0x05cc: ctx_redswitch */
	0xf120f7f0,
	0xf0850007,
	0x0fd00103,
	0xf004bd00,
/* 0x05de: ctx_redswitch_delay */
	0xe2b608e7,
	0xfd1bf401,
	0x0800f5f1,
	0x0200f5f1,
	0x850007f1,
	0xd00103f0,
	0x04bd000f,
/* 0x05db: ctx_redswitch_delay */
	0xb608e7f0,
	0x1bf401e2,
	0x00f5f1fd,
	0x00f5f108,
	0x0007f102,
	0x0103f085,
	0xbd000fd0,
/* 0x05f7: ctx_xfer */
	0xf100f804,
	0xf0810007,
	0x0fd00203,
	0xf404bd00,
	0x21f50711,
/* 0x060a: ctx_xfer_not_load */
	0x21f505c9,
	0x24bd026a,
	0x47fc07f1,
	0xd00203f0,
	0x04bd0002,
	0xb6012cf0,
	0x07f10320,
	0x03f04afc,
	0x0002d002,
	0xacf004bd,
	0x02a5f001,
	0x0000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98000c98,
	0xe7f0010d,
	0x6f21f500,
	0x01acf001,
	0x4000b7f1,
	0x9850b3f0,
	0xc4b6040c,
	0x00bcbb0f,
	0x98010c98,
	0x0f98020d,
	0x00e7f106,
	0x6f21f508,
	0x01acf001,
	0xf104a5f0,
	0xf03000b7,
/* 0x05fa: ctx_xfer */
	0x07f100f8,
	0x03f08100,
	0x000fd002,
	0x11f404bd,
	0xcc21f507,
/* 0x060d: ctx_xfer_not_load */
	0x6a21f505,
	0xf124bd02,
	0xf047fc07,
	0x02d00203,
	0xf004bd00,
	0x20b6012c,
	0xfc07f103,
	0x0203f04a,
	0xbd0002d0,
	0x01acf004,
	0xf102a5f0,
	0xf00000b7,
	0x0c9850b3,
	0x0fc4b604,
	0x9800bcbb,
	0x0d98020c,
	0x080f9803,
	0x0200e7f1,
	0x0d98000c,
	0x00e7f001,
	0x016f21f5,
	0x025e21f5,
	0xf40601f4,
/* 0x06a6: ctx_xfer_post */
	0x21f50712,
/* 0x06aa: ctx_xfer_done */
	0x21f5027f,
	0x00f805b1,
	0x00000000,
	0xf101acf0,
	0xf04000b7,
	0x0c9850b3,
	0x0fc4b604,
	0x9800bcbb,
	0x0d98010c,
	0x060f9802,
	0x0800e7f1,
	0x016f21f5,
	0xf001acf0,
	0xb7f104a5,
	0xb3f03000,
	0x040c9850,
	0xbb0fc4b6,
	0x0c9800bc,
	0x030d9802,
	0xf1080f98,
	0xf50200e7,
	0xf5016f21,
	0xf4025e21,
	0x12f40601,
/* 0x06a9: ctx_xfer_post */
	0x7f21f507,
/* 0x06ad: ctx_xfer_done */
	0xb421f502,
	0x0000f805,
	0x00000000,
	0x00000000,
	0x00000000,
Loading