drm/nouveau/pmu: prevent falcon from acking interrupts routed to the host

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
Ben Skeggs 2016-01-11 10:29:08 +10:00
parent f68f4c960a
commit a18c91dece
5 changed files with 2313 additions and 2327 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -24,8 +24,8 @@ uint32_t gk208_pmu_data[] = {
0x00000000, 0x00000000,
/* 0x0058: proc_list_head */ /* 0x0058: proc_list_head */
0x54534f48, 0x54534f48,
0x00000453, 0x00000447,
0x00000404, 0x000003f8,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
@ -46,8 +46,8 @@ uint32_t gk208_pmu_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x584d454d, 0x584d454d,
0x0000062d, 0x00000621,
0x0000061f, 0x00000613,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
@ -68,8 +68,8 @@ uint32_t gk208_pmu_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x46524550, 0x46524550,
0x00000631, 0x00000625,
0x0000062f, 0x00000623,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
@ -90,8 +90,8 @@ uint32_t gk208_pmu_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x5f433249, 0x5f433249,
0x00000a35, 0x00000a29,
0x000008dc, 0x000008d0,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
@ -112,8 +112,8 @@ uint32_t gk208_pmu_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x54534554, 0x54534554,
0x00000a56, 0x00000a4a,
0x00000a37, 0x00000a2b,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
@ -134,8 +134,8 @@ uint32_t gk208_pmu_data[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x454c4449, 0x454c4449,
0x00000a61, 0x00000a55,
0x00000a5f, 0x00000a53,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
@ -229,26 +229,26 @@ uint32_t gk208_pmu_data[] = {
/* 0x0370: memx_func_head */ /* 0x0370: memx_func_head */
0x00000001, 0x00000001,
0x00000000, 0x00000000,
0x00000483, 0x00000477,
/* 0x037c: memx_func_next */ /* 0x037c: memx_func_next */
0x00000002, 0x00000002,
0x00000000, 0x00000000,
0x00000500, 0x000004f4,
0x00000003, 0x00000003,
0x00000002, 0x00000002,
0x00000580, 0x00000574,
0x00040004, 0x00040004,
0x00000000, 0x00000000,
0x0000059d, 0x00000591,
0x00010005, 0x00010005,
0x00000000, 0x00000000,
0x000005b7, 0x000005ab,
0x00010006, 0x00010006,
0x00000000, 0x00000000,
0x0000057b, 0x0000056f,
0x00000007, 0x00000007,
0x00000000, 0x00000000,
0x000005c3, 0x000005b7,
/* 0x03c4: memx_func_tail */ /* 0x03c4: memx_func_tail */
/* 0x03c4: memx_ts_start */ /* 0x03c4: memx_ts_start */
0x00000000, 0x00000000,
@ -916,7 +916,7 @@ uint32_t gk208_pmu_data[] = {
}; };
uint32_t gk208_pmu_code[] = { uint32_t gk208_pmu_code[] = {
0x031c0ef5, 0x03100ef5,
/* 0x0004: rd32 */ /* 0x0004: rd32 */
0xf607a040, 0xf607a040,
0x04bd000e, 0x04bd000e,
@ -972,7 +972,7 @@ uint32_t gk208_pmu_code[] = {
0x0a98280b, 0x0a98280b,
0x029abb9a, 0x029abb9a,
0x0d0e1cf4, 0x0d0e1cf4,
0x02617e01, 0x02557e01,
0xf494bd00, 0xf494bd00,
/* 0x00c2: intr_watchdog_next_time */ /* 0x00c2: intr_watchdog_next_time */
0x0a98140e, 0x0a98140e,
@ -1017,21 +1017,16 @@ uint32_t gk208_pmu_code[] = {
0xc0f900cc, 0xc0f900cc,
0xf14f484e, 0xf14f484e,
0x0d5453e3, 0x0d5453e3,
0x02c27e00, 0x02b67e00,
0x40c0fc00, 0x40c0fc00,
0x0cf604c0, 0x0cf604c0,
/* 0x0167: intr_subintr_skip_fifo */ /* 0x0167: intr_subintr_skip_fifo */
0x4004bd00, 0x4004bd00,
0x09f60688, 0x09f60688,
/* 0x016f: intr_skip_subintr */ /* 0x016f: intr_skip_subintr */
0xc404bd00, 0x4904bd00,
0x0bf42089, 0x90bd00e0,
0xbfa4f107, 0x000489fd,
/* 0x0179: intr_skip_pause */
0x4089c4ff,
0xf1070bf4,
/* 0x0183: intr_skip_user0 */
0x00ffbfa4,
0x0008f604, 0x0008f604,
0x80fc04bd, 0x80fc04bd,
0xfc0088fe, 0xfc0088fe,
@ -1040,35 +1035,35 @@ uint32_t gk208_pmu_code[] = {
0xfca0fcb0, 0xfca0fcb0,
0xfc80fc90, 0xfc80fc90,
0x0032f400, 0x0032f400,
/* 0x01a6: ticks_from_ns */ /* 0x019a: ticks_from_ns */
0xc0f901f8, 0xc0f901f8,
0xd7f1b0f9, 0xd7f1b0f9,
0xd3f00144, 0xd3f00144,
0x7721f500, 0x6b21f500,
0xe8ccec03, 0xe8ccec03,
0x00b4b003, 0x00b4b003,
0xec120bf4, 0xec120bf4,
0xf103e8ee, 0xf103e8ee,
0xf00144d7, 0xf00144d7,
0x21f500d3, 0x21f500d3,
/* 0x01ce: ticks_from_ns_quit */ /* 0x01c2: ticks_from_ns_quit */
0xceb20377, 0xceb2036b,
0xc0fcb0fc, 0xc0fcb0fc,
/* 0x01d6: ticks_from_us */ /* 0x01ca: ticks_from_us */
0xc0f900f8, 0xc0f900f8,
0xd7f1b0f9, 0xd7f1b0f9,
0xd3f00144, 0xd3f00144,
0x7721f500, 0x6b21f500,
0xb0ceb203, 0xb0ceb203,
0x0bf400b4, 0x0bf400b4,
/* 0x01ef: ticks_from_us_quit */ /* 0x01e3: ticks_from_us_quit */
0xfce4bd05, 0xfce4bd05,
0xf8c0fcb0, 0xf8c0fcb0,
/* 0x01f5: ticks_to_us */ /* 0x01e9: ticks_to_us */
0x44d7f100, 0x44d7f100,
0x00d3f001, 0x00d3f001,
0xf8ecedff, 0xf8ecedff,
/* 0x0201: timer */ /* 0x01f5: timer */
0xf990f900, 0xf990f900,
0x1032f480, 0x1032f480,
0xb003f898, 0xb003f898,
@ -1086,17 +1081,17 @@ uint32_t gk208_pmu_code[] = {
0xa60088cf, 0xa60088cf,
0x080bf4e0, 0x080bf4e0,
0x1cf4e8a6, 0x1cf4e8a6,
/* 0x0245: timer_reset */ /* 0x0239: timer_reset */
0xf634000d, 0xf634000d,
0x04bd000e, 0x04bd000e,
/* 0x024f: timer_enable */ /* 0x0243: timer_enable */
0x089a0eb5, 0x089a0eb5,
0xf6380001, 0xf6380001,
0x04bd0008, 0x04bd0008,
/* 0x0258: timer_done */ /* 0x024c: timer_done */
0xfc1031f4, 0xfc1031f4,
0xf890fc80, 0xf890fc80,
/* 0x0261: send_proc */ /* 0x0255: send_proc */
0xf980f900, 0xf980f900,
0x05e89890, 0x05e89890,
0xf004e998, 0xf004e998,
@ -1111,24 +1106,24 @@ uint32_t gk208_pmu_code[] = {
0x90b6038b, 0x90b6038b,
0x0794f001, 0x0794f001,
0xf404e9b5, 0xf404e9b5,
/* 0x029a: send_done */ /* 0x028e: send_done */
0x90fc0231, 0x90fc0231,
0x00f880fc, 0x00f880fc,
/* 0x02a0: find */ /* 0x0294: find */
0x580880f9, 0x580880f9,
/* 0x02a7: find_loop */ /* 0x029b: find_loop */
0x980131f4, 0x980131f4,
0xaea6008a, 0xaea6008a,
0xb6100bf4, 0xb6100bf4,
0x86b15880, 0x86b15880,
0x1bf40268, 0x1bf40268,
0x0132f4f1, 0x0132f4f1,
/* 0x02bc: find_done */ /* 0x02b0: find_done */
0x80fc8eb2, 0x80fc8eb2,
/* 0x02c2: send */ /* 0x02b6: send */
0xa07e00f8, 0x947e00f8,
0x01f40002, 0x01f40002,
/* 0x02cb: recv */ /* 0x02bf: recv */
0xf900f89b, 0xf900f89b,
0x9880f990, 0x9880f990,
0xe99805e8, 0xe99805e8,
@ -1148,10 +1143,10 @@ uint32_t gk208_pmu_code[] = {
0xa5f900ee, 0xa5f900ee,
0xf8fef0fc, 0xf8fef0fc,
0x0131f400, 0x0131f400,
/* 0x0316: recv_done */ /* 0x030a: recv_done */
0x80fcf0fc, 0x80fcf0fc,
0x00f890fc, 0x00f890fc,
/* 0x031c: init */ /* 0x0310: init */
0xcf010841, 0xcf010841,
0x11e70011, 0x11e70011,
0x14b60109, 0x14b60109,
@ -1170,12 +1165,12 @@ uint32_t gk208_pmu_code[] = {
0x011031f4, 0x011031f4,
0xf6380001, 0xf6380001,
0x04bd0001, 0x04bd0001,
/* 0x0366: init_proc */ /* 0x035a: init_proc */
0xf198580f, 0xf198580f,
0x0016b001, 0x0016b001,
0xf9fa0bf4, 0xf9fa0bf4,
0x58f0b615, 0x58f0b615,
/* 0x0377: mulu32_32_64 */ /* 0x036b: mulu32_32_64 */
0xf9f20ef4, 0xf9f20ef4,
0xf920f910, 0xf920f910,
0x9540f930, 0x9540f930,
@ -1196,7 +1191,7 @@ uint32_t gk208_pmu_code[] = {
0x00b3bb30, 0x00b3bb30,
0x30fc40fc, 0x30fc40fc,
0x10fc20fc, 0x10fc20fc,
/* 0x03c6: host_send */ /* 0x03ba: host_send */
0xb04100f8, 0xb04100f8,
0x0011cf04, 0x0011cf04,
0xcf04a042, 0xcf04a042,
@ -1207,18 +1202,18 @@ uint32_t gk208_pmu_code[] = {
0x03eb9802, 0x03eb9802,
0x9802ec98, 0x9802ec98,
0xee9801ed, 0xee9801ed,
0x02c27e00, 0x02b67e00,
0x0110b600, 0x0110b600,
0x400f1ec4, 0x400f1ec4,
0x0ef604b0, 0x0ef604b0,
0xf404bd00, 0xf404bd00,
/* 0x0402: host_send_done */ /* 0x03f6: host_send_done */
0x00f8c70e, 0x00f8c70e,
/* 0x0404: host_recv */ /* 0x03f8: host_recv */
0xf14e4941, 0xf14e4941,
0xa6525413, 0xa6525413,
0xb90bf4e1, 0xb90bf4e1,
/* 0x0410: host_recv_wait */ /* 0x0404: host_recv_wait */
0xcf04cc41, 0xcf04cc41,
0xc8420011, 0xc8420011,
0x0022cf04, 0x0022cf04,
@ -1235,7 +1230,7 @@ uint32_t gk208_pmu_code[] = {
0x04bd0002, 0x04bd0002,
0x00004002, 0x00004002,
0xbd0002f6, 0xbd0002f6,
/* 0x0453: host_init */ /* 0x0447: host_init */
0x4100f804, 0x4100f804,
0x14b60080, 0x14b60080,
0x7015f110, 0x7015f110,
@ -1248,7 +1243,7 @@ uint32_t gk208_pmu_code[] = {
0x0104bd00, 0x0104bd00,
0x04c44001, 0x04c44001,
0xbd0001f6, 0xbd0001f6,
/* 0x0483: memx_func_enter */ /* 0x0477: memx_func_enter */
0xf100f804, 0xf100f804,
0xf1162067, 0xf1162067,
0xf1f55d77, 0xf1f55d77,
@ -1275,19 +1270,19 @@ uint32_t gk208_pmu_code[] = {
0x00002e7e, 0x00002e7e,
0xe0400406, 0xe0400406,
0x0006f607, 0x0006f607,
/* 0x04ea: memx_func_enter_wait */ /* 0x04de: memx_func_enter_wait */
0xc04604bd, 0xc04604bd,
0x0066cf07, 0x0066cf07,
0xf40464f0, 0xf40464f0,
0x2c06f70b, 0x2c06f70b,
0xb50066cf, 0xb50066cf,
0x00f8f106, 0x00f8f106,
/* 0x0500: memx_func_leave */ /* 0x04f4: memx_func_leave */
0x66cf2c06, 0x66cf2c06,
0xf206b500, 0xf206b500,
0xe4400406, 0xe4400406,
0x0006f607, 0x0006f607,
/* 0x0512: memx_func_leave_wait */ /* 0x0506: memx_func_leave_wait */
0xc04604bd, 0xc04604bd,
0x0066cf07, 0x0066cf07,
0xf40464f0, 0xf40464f0,
@ -1314,10 +1309,10 @@ uint32_t gk208_pmu_code[] = {
0xf960f905, 0xf960f905,
0xfcd0fc80, 0xfcd0fc80,
0x002e7ee0, 0x002e7ee0,
/* 0x057b: memx_func_wait_vblank */ /* 0x056f: memx_func_wait_vblank */
0xb600f800, 0xb600f800,
0x00f80410, 0x00f80410,
/* 0x0580: memx_func_wr32 */ /* 0x0574: memx_func_wr32 */
0x98001698, 0x98001698,
0x10b60115, 0x10b60115,
0xf960f908, 0xf960f908,
@ -1325,23 +1320,23 @@ uint32_t gk208_pmu_code[] = {
0x002e7ee0, 0x002e7ee0,
0x0242b600, 0x0242b600,
0xf8e81bf4, 0xf8e81bf4,
/* 0x059d: memx_func_wait */ /* 0x0591: memx_func_wait */
0xcf2c0800, 0xcf2c0800,
0x1e980088, 0x1e980088,
0x011d9800, 0x011d9800,
0x98021c98, 0x98021c98,
0x10b6031b, 0x10b6031b,
0x00797e10, 0x00797e10,
/* 0x05b7: memx_func_delay */ /* 0x05ab: memx_func_delay */
0x9800f800, 0x9800f800,
0x10b6001e, 0x10b6001e,
0x005d7e04, 0x005d7e04,
/* 0x05c3: memx_func_train */ /* 0x05b7: memx_func_train */
0xf800f800, 0xf800f800,
/* 0x05c5: memx_exec */ /* 0x05b9: memx_exec */
0xf9e0f900, 0xf9e0f900,
0xb2c1b2d0, 0xb2c1b2d0,
/* 0x05cd: memx_exec_next */ /* 0x05c1: memx_exec_next */
0x001398b2, 0x001398b2,
0xe70410b6, 0xe70410b6,
0xe701f034, 0xe701f034,
@ -1354,111 +1349,111 @@ uint32_t gk208_pmu_code[] = {
0x02cbbbf2, 0x02cbbbf2,
0xcf07c44b, 0xcf07c44b,
0xd0fc00bb, 0xd0fc00bb,
0xc27ee0fc, 0xb67ee0fc,
0x00f80002, 0x00f80002,
/* 0x0604: memx_info */ /* 0x05f8: memx_info */
0xf401c670, 0xf401c670,
/* 0x060a: memx_info_data */ /* 0x05fe: memx_info_data */
0xcc4c0c0b, 0xcc4c0c0b,
0x08004b03, 0x08004b03,
/* 0x0613: memx_info_train */ /* 0x0607: memx_info_train */
0x4c090ef4, 0x4c090ef4,
0x004b0bcc, 0x004b0bcc,
/* 0x0619: memx_info_send */ /* 0x060d: memx_info_send */
0x02c27e01, 0x02b67e01,
/* 0x061f: memx_recv */ /* 0x0613: memx_recv */
0xb000f800, 0xb000f800,
0x0bf401d6, 0x0bf401d6,
0x00d6b0a3, 0x00d6b0a3,
0xf8dc0bf4, 0xf8dc0bf4,
/* 0x062d: memx_init */ /* 0x0621: memx_init */
/* 0x062f: perf_recv */ /* 0x0623: perf_recv */
0xf800f800, 0xf800f800,
/* 0x0631: perf_init */ /* 0x0625: perf_init */
/* 0x0633: i2c_drive_scl */ /* 0x0627: i2c_drive_scl */
0xb000f800, 0xb000f800,
0x0bf40036, 0x0bf40036,
0x07e0400d, 0x07e0400d,
0xbd0001f6, 0xbd0001f6,
/* 0x0643: i2c_drive_scl_lo */ /* 0x0637: i2c_drive_scl_lo */
0x4000f804, 0x4000f804,
0x01f607e4, 0x01f607e4,
0xf804bd00, 0xf804bd00,
/* 0x064d: i2c_drive_sda */ /* 0x0641: i2c_drive_sda */
0x0036b000, 0x0036b000,
0x400d0bf4, 0x400d0bf4,
0x02f607e0, 0x02f607e0,
0xf804bd00, 0xf804bd00,
/* 0x065d: i2c_drive_sda_lo */ /* 0x0651: i2c_drive_sda_lo */
0x07e44000, 0x07e44000,
0xbd0002f6, 0xbd0002f6,
/* 0x0667: i2c_sense_scl */ /* 0x065b: i2c_sense_scl */
0xf400f804, 0xf400f804,
0xc4430132, 0xc4430132,
0x0033cf07, 0x0033cf07,
0xf40431fd, 0xf40431fd,
0x31f4060b, 0x31f4060b,
/* 0x0679: i2c_sense_scl_done */ /* 0x066d: i2c_sense_scl_done */
/* 0x067b: i2c_sense_sda */ /* 0x066f: i2c_sense_sda */
0xf400f801, 0xf400f801,
0xc4430132, 0xc4430132,
0x0033cf07, 0x0033cf07,
0xf40432fd, 0xf40432fd,
0x31f4060b, 0x31f4060b,
/* 0x068d: i2c_sense_sda_done */ /* 0x0681: i2c_sense_sda_done */
/* 0x068f: i2c_raise_scl */ /* 0x0683: i2c_raise_scl */
0xf900f801, 0xf900f801,
0x08984440, 0x08984440,
0x337e0103, 0x277e0103,
/* 0x069a: i2c_raise_scl_wait */ /* 0x068e: i2c_raise_scl_wait */
0xe84e0006, 0xe84e0006,
0x005d7e03, 0x005d7e03,
0x06677e00, 0x065b7e00,
0x0901f400, 0x0901f400,
0xf40142b6, 0xf40142b6,
/* 0x06ae: i2c_raise_scl_done */ /* 0x06a2: i2c_raise_scl_done */
0x40fcef1b, 0x40fcef1b,
/* 0x06b2: i2c_start */ /* 0x06a6: i2c_start */
0x677e00f8, 0x5b7e00f8,
0x11f40006, 0x11f40006,
0x067b7e0d, 0x066f7e0d,
0x0611f400, 0x0611f400,
/* 0x06c3: i2c_start_rep */ /* 0x06b7: i2c_start_rep */
0x032e0ef4, 0x032e0ef4,
0x06337e00, 0x06277e00,
0x7e010300, 0x7e010300,
0xbb00064d, 0xbb000641,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x00068f7e, 0x0006837e,
0xf40464b6, 0xf40464b6,
/* 0x06ee: i2c_start_send */ /* 0x06e2: i2c_start_send */
0x00031d11, 0x00031d11,
0x00064d7e, 0x0006417e,
0x7e13884e, 0x7e13884e,
0x0300005d, 0x0300005d,
0x06337e00, 0x06277e00,
0x13884e00, 0x13884e00,
0x00005d7e, 0x00005d7e,
/* 0x0708: i2c_start_out */ /* 0x06fc: i2c_start_out */
/* 0x070a: i2c_stop */ /* 0x06fe: i2c_stop */
0x000300f8, 0x000300f8,
0x0006337e, 0x0006277e,
0x4d7e0003, 0x417e0003,
0xe84e0006, 0xe84e0006,
0x005d7e03, 0x005d7e03,
0x7e010300, 0x7e010300,
0x4e000633, 0x4e000627,
0x5d7e1388, 0x5d7e1388,
0x01030000, 0x01030000,
0x00064d7e, 0x0006417e,
0x7e13884e, 0x7e13884e,
0xf800005d, 0xf800005d,
/* 0x0739: i2c_bitw */ /* 0x072d: i2c_bitw */
0x064d7e00, 0x06417e00,
0x03e84e00, 0x03e84e00,
0x00005d7e, 0x00005d7e,
0xb60076bb, 0xb60076bb,
@ -1466,18 +1461,18 @@ uint32_t gk208_pmu_code[] = {
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x068f7e50, 0x06837e50,
0x0464b600, 0x0464b600,
0x4e1711f4, 0x4e1711f4,
0x5d7e1388, 0x5d7e1388,
0x00030000, 0x00030000,
0x0006337e, 0x0006277e,
0x7e13884e, 0x7e13884e,
/* 0x0777: i2c_bitw_out */ /* 0x076b: i2c_bitw_out */
0xf800005d, 0xf800005d,
/* 0x0779: i2c_bitr */ /* 0x076d: i2c_bitr */
0x7e010300, 0x7e010300,
0x4e00064d, 0x4e000641,
0x5d7e03e8, 0x5d7e03e8,
0x76bb0000, 0x76bb0000,
0x0465b600, 0x0465b600,
@ -1485,25 +1480,25 @@ uint32_t gk208_pmu_code[] = {
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0x7e50fc04, 0x7e50fc04,
0xb600068f, 0xb6000683,
0x11f40464, 0x11f40464,
0x067b7e1a, 0x066f7e1a,
0x7e000300, 0x7e000300,
0x4e000633, 0x4e000627,
0x5d7e1388, 0x5d7e1388,
0x3cf00000, 0x3cf00000,
0x0131f401, 0x0131f401,
/* 0x07bc: i2c_bitr_done */ /* 0x07b0: i2c_bitr_done */
/* 0x07be: i2c_get_byte */ /* 0x07b2: i2c_get_byte */
0x000500f8, 0x000500f8,
/* 0x07c2: i2c_get_byte_next */ /* 0x07b6: i2c_get_byte_next */
0x54b60804, 0x54b60804,
0x0076bb01, 0x0076bb01,
0xf90465b6, 0xf90465b6,
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x797e50fc, 0x6d7e50fc,
0x64b60007, 0x64b60007,
0x2a11f404, 0x2a11f404,
0xb60553fd, 0xb60553fd,
@ -1514,11 +1509,11 @@ uint32_t gk208_pmu_code[] = {
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x0007397e, 0x00072d7e,
/* 0x080b: i2c_get_byte_done */ /* 0x07ff: i2c_get_byte_done */
0xf80464b6, 0xf80464b6,
/* 0x080d: i2c_put_byte */ /* 0x0801: i2c_put_byte */
/* 0x080f: i2c_put_byte_next */ /* 0x0803: i2c_put_byte_next */
0xb6080400, 0xb6080400,
0x54ff0142, 0x54ff0142,
0x0076bb38, 0x0076bb38,
@ -1526,7 +1521,7 @@ uint32_t gk208_pmu_code[] = {
0x04659450, 0x04659450,
0xbd0256bb, 0xbd0256bb,
0x0475fd50, 0x0475fd50,
0x397e50fc, 0x2d7e50fc,
0x64b60007, 0x64b60007,
0x3411f404, 0x3411f404,
0xf40046b0, 0xf40046b0,
@ -1536,20 +1531,20 @@ uint32_t gk208_pmu_code[] = {
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0x7e50fc04, 0x7e50fc04,
0xb6000779, 0xb600076d,
0x11f40464, 0x11f40464,
0x0076bb0f, 0x0076bb0f,
0xf40136b0, 0xf40136b0,
0x32f4061b, 0x32f4061b,
/* 0x0865: i2c_put_byte_done */ /* 0x0859: i2c_put_byte_done */
/* 0x0867: i2c_addr */ /* 0x085b: i2c_addr */
0xbb00f801, 0xbb00f801,
0x65b60076, 0x65b60076,
0x9450f904, 0x9450f904,
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x0006b27e, 0x0006a67e,
0xf40464b6, 0xf40464b6,
0xc3e72911, 0xc3e72911,
0x34b6012e, 0x34b6012e,
@ -1559,25 +1554,25 @@ uint32_t gk208_pmu_code[] = {
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x080d7e50, 0x08017e50,
0x0464b600, 0x0464b600,
/* 0x08ac: i2c_addr_done */ /* 0x08a0: i2c_addr_done */
/* 0x08ae: i2c_acquire_addr */ /* 0x08a2: i2c_acquire_addr */
0xcec700f8, 0xcec700f8,
0x05e4b6f8, 0x05e4b6f8,
0xd014e0b7, 0xd014e0b7,
/* 0x08ba: i2c_acquire */ /* 0x08ae: i2c_acquire */
0xae7e00f8, 0xa27e00f8,
0x047e0008, 0x047e0008,
0xd9f00000, 0xd9f00000,
0x002e7e03, 0x002e7e03,
/* 0x08cb: i2c_release */ /* 0x08bf: i2c_release */
0x7e00f800, 0x7e00f800,
0x7e0008ae, 0x7e0008a2,
0xf0000004, 0xf0000004,
0x2e7e03da, 0x2e7e03da,
0x00f80000, 0x00f80000,
/* 0x08dc: i2c_recv */ /* 0x08d0: i2c_recv */
0xc70132f4, 0xc70132f4,
0x14b6f8c1, 0x14b6f8c1,
0x2816b002, 0x2816b002,
@ -1596,7 +1591,7 @@ uint32_t gk208_pmu_code[] = {
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x08ba7e50, 0x08ae7e50,
0x0464b600, 0x0464b600,
0xd6b0d0fc, 0xd6b0d0fc,
0xb01bf500, 0xb01bf500,
@ -1606,7 +1601,7 @@ uint32_t gk208_pmu_code[] = {
0x56bb0465, 0x56bb0465,
0xfd50bd02, 0xfd50bd02,
0x50fc0475, 0x50fc0475,
0x0008677e, 0x00085b7e,
0xf50464b6, 0xf50464b6,
0xc700cc11, 0xc700cc11,
0x76bbe0c5, 0x76bbe0c5,
@ -1615,7 +1610,7 @@ uint32_t gk208_pmu_code[] = {
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0x7e50fc04, 0x7e50fc04,
0xb600080d, 0xb6000801,
0x11f50464, 0x11f50464,
0x010500a9, 0x010500a9,
0xb60076bb, 0xb60076bb,
@ -1623,7 +1618,7 @@ uint32_t gk208_pmu_code[] = {
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x08677e50, 0x085b7e50,
0x0464b600, 0x0464b600,
0x008711f5, 0x008711f5,
0xb60076bb, 0xb60076bb,
@ -1631,7 +1626,7 @@ uint32_t gk208_pmu_code[] = {
0xbb046594, 0xbb046594,
0x50bd0256, 0x50bd0256,
0xfc0475fd, 0xfc0475fd,
0x07be7e50, 0x07b27e50,
0x0464b600, 0x0464b600,
0xcb6711f4, 0xcb6711f4,
0x76bbe05b, 0x76bbe05b,
@ -1640,36 +1635,36 @@ uint32_t gk208_pmu_code[] = {
0x0256bb04, 0x0256bb04,
0x75fd50bd, 0x75fd50bd,
0x7e50fc04, 0x7e50fc04,
0xb600070a, 0xb60006fe,
0x5bb20464, 0x5bb20464,
0x0ef474bd, 0x0ef474bd,
/* 0x09e1: i2c_recv_not_rd08 */ /* 0x09d5: i2c_recv_not_rd08 */
0x01d6b041, 0x01d6b041,
0x053b1bf4, 0x053b1bf4,
0x08677e00, 0x085b7e00,
0x3211f400, 0x3211f400,
0x7ee0c5c7, 0x7ee0c5c7,
0xf400080d, 0xf4000801,
0x00052811, 0x00052811,
0x0008677e, 0x00085b7e,
0xc71f11f4, 0xc71f11f4,
0x0d7ee0b5, 0x017ee0b5,
0x11f40008, 0x11f40008,
0x070a7e15, 0x06fe7e15,
0xc774bd00, 0xc774bd00,
0x1bf408c5, 0x1bf408c5,
0x0232f409, 0x0232f409,
/* 0x0a1f: i2c_recv_not_wr08 */ /* 0x0a13: i2c_recv_not_wr08 */
/* 0x0a1f: i2c_recv_done */ /* 0x0a13: i2c_recv_done */
0xc7030ef4, 0xc7030ef4,
0xcb7ef8ce, 0xbf7ef8ce,
0xe0fc0008, 0xe0fc0008,
0x12f4d0fc, 0x12f4d0fc,
0x7e7cb209, 0x7e7cb209,
/* 0x0a33: i2c_recv_exit */ /* 0x0a27: i2c_recv_exit */
0xf80002c2, 0xf80002b6,
/* 0x0a35: i2c_init */ /* 0x0a29: i2c_init */
/* 0x0a37: test_recv */ /* 0x0a2b: test_recv */
0x4100f800, 0x4100f800,
0x11cf0458, 0x11cf0458,
0x0110b600, 0x0110b600,
@ -1677,28 +1672,28 @@ uint32_t gk208_pmu_code[] = {
0x04bd0001, 0x04bd0001,
0xd900e7f1, 0xd900e7f1,
0x134fe3f1, 0x134fe3f1,
0x0002017e, 0x0001f57e,
/* 0x0a56: test_init */ /* 0x0a4a: test_init */
0x004e00f8, 0x004e00f8,
0x02017e08, 0x01f57e08,
/* 0x0a5f: idle_recv */ /* 0x0a53: idle_recv */
0xf800f800, 0xf800f800,
/* 0x0a61: idle */ /* 0x0a55: idle */
0x0031f400, 0x0031f400,
0xcf045441, 0xcf045441,
0x10b60011, 0x10b60011,
0x04544001, 0x04544001,
0xbd0001f6, 0xbd0001f6,
/* 0x0a75: idle_loop */ /* 0x0a69: idle_loop */
0xf4580104, 0xf4580104,
/* 0x0a7a: idle_proc */ /* 0x0a6e: idle_proc */
/* 0x0a7a: idle_proc_exec */ /* 0x0a6e: idle_proc_exec */
0x10f90232, 0x10f90232,
0xcb7e1eb2, 0xbf7e1eb2,
0x10fc0002, 0x10fc0002,
0xf40911f4, 0xf40911f4,
0x0ef40231, 0x0ef40231,
/* 0x0a8d: idle_proc_next */ /* 0x0a81: idle_proc_next */
0x5810b6f0, 0x5810b6f0,
0x1bf41fa6, 0x1bf41fa6,
0xe002f4e8, 0xe002f4e8,
@ -1728,4 +1723,7 @@ uint32_t gk208_pmu_code[] = {
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000,
0x00000000,
0x00000000,
}; };

File diff suppressed because it is too large Load diff

View file

@ -225,17 +225,11 @@ intr:
nv_iowr(NV_PPWR_SUBINTR, $r9) nv_iowr(NV_PPWR_SUBINTR, $r9)
intr_skip_subintr: intr_skip_subintr:
and $r9 $r8 NV_PPWR_INTR_PAUSE mov $r9 (NV_PPWR_INTR_USER0 | NV_PPWR_INTR_USER1 | NV_PPWR_INTR_PAUSE)
bra z #intr_skip_pause not b32 $r9
and $r10 0xffbf and $r8 $r9
intr_skip_pause:
and $r9 $r8 NV_PPWR_INTR_USER0
bra z #intr_skip_user0
and $r10 0xffbf
intr_skip_user0:
nv_iowr(NV_PPWR_INTR_ACK, $r8) nv_iowr(NV_PPWR_INTR_ACK, $r8)
pop $r8 pop $r8
mov $flags $r8 mov $flags $r8
pop $r15 pop $r15