From mboxrd@z Thu Jan 1 00:00:00 1970 From: bugzilla-daemon@freedesktop.org Subject: [Bug 59982] Radeon: evergreen Atombios in loop during initialization on ppc64 Date: Wed, 27 Feb 2013 14:24:14 +0000 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1195456426==" Return-path: Received: from culpepper.freedesktop.org (unknown [131.252.210.165]) by gabe.freedesktop.org (Postfix) with ESMTP id 74FC5E62E4 for ; Wed, 27 Feb 2013 06:24:14 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org Errors-To: dri-devel-bounces+sf-dri-devel=m.gmane.org@lists.freedesktop.org To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org --===============1195456426== Content-Type: multipart/alternative; boundary="1361975054.27a7Afba0.24301"; charset="us-ascii" --1361975054.27a7Afba0.24301 Date: Wed, 27 Feb 2013 14:24:14 +0000 MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" https://bugs.freedesktop.org/show_bug.cgi?id=59982 --- Comment #25 from Lucas Kannebley Tavares --- Created attachment 75640 --> https://bugs.freedesktop.org/attachment.cgi?id=75640&action=edit Adding tests for all-1s after every read or write Ok, so after applying the refered to patch, I got several false WARN_ONs (where the adapter keeps working, so it's just a regular 0xFF), and at one point, I start getting real all-1s. That place is this: WS[0x41].[31:24] <- 0x23 MOVE_REG @ 0xD99C EVERGREEN_CRTC_BLANK_CONTROL: 0001 0x6ED8: 10000 src: WS[0x41].[31:0] -> 0x2304FFFF dst: REG[0x018A]------------[ cut here ]------------ WARNING: at drivers/gpu/drm/radeon/radeon_device.c:111 Modules linked in: radeon(+) drm_kms_helper ttm drm i2c_algo_bit i2c_core autofs4 sunrpc ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables ipv6 sg ibmveth shpchp ext4(F) jbd2(F) mbcache(F) sr_mod(F) cdrom(F) sd_mod(F) crc_t10dif(F) dm_mirror(F) dm_region_hash(F) dm_log(F) dm_mod(F) NIP: d0000000069c2110 LR: d0000000069c2104 CTR: c000000000677f00 REGS: c00000000590a540 TRAP: 0700 Tainted: GF W (3.8.0+) MSR: 8000000000029032 CR: 28222482 XER: 0000000b SOFTE: 1 CFAR: d000000006a029d0 TASK = c0000001ecd0b680[2589] 'modprobe' THREAD: c000000005908000 CPU: 4 GPR00: d0000000069c2104 c00000000590a7c0 d000000006abfd00 00000000ffffffff GPR04: 0000000000000001 0000000000000000 0000000000000000 000000002304ffff GPR08: 0000000030783031 c000000001067c50 000000000b3193b0 c000000000677f00 GPR12: d000000006a76f30 c00000000edd0c00 00000080646700a0 0000000000000000 GPR16: 0000010003bd0100 0000000000000000 c00000000590bc78 0000000000000030 GPR20: c00000000590aa58 c00000000590aa50 0000000000000001 c0000001e5082000 GPR24: c000000006fd8c80 000000002304ffff 000000000000018a 00000000ffffffff GPR28: 0000000000000000 000000002304ffff d000000006ab66d8 c0000001e5082000 NIP [d0000000069c2110] .cail_reg_write+0x50/0x70 [radeon] LR [d0000000069c2104] .cail_reg_write+0x44/0x70 [radeon] Call Trace: [c00000000590a7c0] [d0000000069c2104] .cail_reg_write+0x44/0x70 [radeon] (unreliable) [c00000000590a850] [d0000000069d9530] .atom_put_dst+0x110/0x710 [radeon] [c00000000590a920] [d0000000069dadd0] .atom_op_move+0xf0/0x1d0 [radeon] [c00000000590a9e0] [d0000000069db1c4] .atom_execute_table_locked+0x314/0x3a0 [radeon] [c00000000590aaf0] [d0000000069db5f8] .atom_op_calltable+0x108/0x170 [radeon] [c00000000590ab80] [d0000000069db1c4] .atom_execute_table_locked+0x314/0x3a0 [radeon] [c00000000590ac90] [d0000000069db5f8] .atom_op_calltable+0x108/0x170 [radeon] [c00000000590ad20] [d0000000069db1c4] .atom_execute_table_locked+0x314/0x3a0 [radeon] [c00000000590ae30] [d0000000069db2a4] .atom_execute_table+0x54/0x80 [radeon] [c00000000590aed0] [d0000000069db474] .atom_asic_init+0x1a4/0x220 [radeon] [c00000000590afb0] [d000000006a520e8] .evergreen_init+0x108/0x330 [radeon] [c00000000590b040] [d0000000069c1d28] .radeon_device_init+0x578/0x6f0 [radeon] [c00000000590b0e0] [d0000000069c48c0] .radeon_driver_load_kms+0xc0/0x180 [radeon] [c00000000590b180] [d000000004eef200] .drm_get_pci_dev+0x1e0/0x2d0 [drm] [c00000000590b240] [d0000000069a023c] .radeon_pci_probe+0xbc/0x100 [radeon] [c00000000590b2d0] [c000000000359374] .local_pci_probe+0x64/0xb0 [c00000000590b370] [c000000000359488] .pci_call_probe+0xc8/0xf0 [c00000000590b410] [c00000000035a570] .pci_device_probe+0x90/0xb0 [c00000000590b4a0] [c000000000412004] .really_probe+0xb4/0x370 [c00000000590b550] [c000000000412320] .driver_probe_device+0x60/0xe0 [c00000000590b5e0] [c0000000004124ac] .__driver_attach+0x10c/0x110 [c00000000590b670] [c00000000040f7a8] .bus_for_each_dev+0x98/0xf0 [c00000000590b720] [c000000000411b28] .driver_attach+0x28/0x40 [c00000000590b7a0] [c0000000004106a8] .bus_add_driver+0x188/0x320 [c00000000590b840] [c000000000412c7c] .driver_register+0x9c/0x1c0 [c00000000590b8e0] [c00000000035a6b8] .__pci_register_driver+0x48/0x60 [c00000000590b960] [d000000004eef45c] .drm_pci_init+0x16c/0x1a0 [drm] [c00000000590ba10] [d000000006a76c14] .radeon_init+0x108/0xa414 [radeon] [c00000000590baa0] [c00000000000acc4] .do_one_initcall+0x64/0x1e0 [c00000000590bb60] [c0000000000fb0c8] .do_init_module+0x68/0x1e0 [c00000000590bc00] [c0000000000fc634] .load_module+0x8b4/0x9c0 [c00000000590bd30] [c0000000000fca18] .SyS_init_module+0x118/0x160 [c00000000590be30] [c000000000009954] syscall_exit+0x0/0x94 Instruction dump: e9230000 ebe90330 7fe3fb78 480406e5 60000000 7fe3fb78 7fa4eb78 38a00000 480407c1 60000000 2f83ffff 409e0008 <0fe00000> 38210090 e8010010 eba1ffe8 ---[ end trace 7065b906d56b6c01 ]--- .[31:0] <- 0x2304FFFF AND_REG @ 0xD9A1 Which seems to imply that at AtomBIOS function #10 - MemoryPLLInit things go bad, when it executes this instruction @94 0079: 0300418a01 MOVE WS_REMIND/HI32 [XXXX] <- reg[018a] [XXXX] 007e: 5e05410000f7dfffff0001 MASK WS_REMIND/HI32 [XXXX] & dff70000 | 0100ffff 0089: 4ba50102 TEST param[01] [.X..] <- 02 008d: 449400 JUMP_Equal 0094 0090: 0fe54120 OR WS_REMIND/HI32 [X...] <- 20 0094: 01028a0141 MOVE reg[018a] [XXXX] <- WS_REMIND/HI32 [XXXX] Any thoughts in this? I've been trying to makes heads or tails of what exactly this means for a few hours now. I know it's initializing the PLL, what I don't get is why zeroing out bits 30 and 19, and then setting bit 24 would cause invalid memory accesses. Or, did my test influence the flow of the program, and I shouldn't be reading this register shortly after writing to it? -- You are receiving this mail because: You are the assignee for the bug. --1361975054.27a7Afba0.24301 Date: Wed, 27 Feb 2013 14:24:14 +0000 MIME-Version: 1.0 Content-Type: text/html; charset="UTF-8"

Comment # 25 on bug 59982 from
Created attachment 75640 [details] [review]
Adding tests for all-1s after every read or write

Ok, so after applying the refered to patch, I got several false WARN_ONs (where
the adapter keeps working, so it's just a regular 0xFF), and at one point, I
start getting real all-1s. That place is this:

WS[0x41].[31:24] <- 0x23
         MOVE_REG @ 0xD99C
EVERGREEN_CRTC_BLANK_CONTROL: 0001
0x6ED8: 10000
            src: 
WS[0x41].[31:0] -> 0x2304FFFF
            dst: 
REG[0x018A]------------[ cut here ]------------
WARNING: at drivers/gpu/drm/radeon/radeon_device.c:111
Modules linked in: radeon(+) drm_kms_helper ttm drm i2c_algo_bit i2c_core
autofs4 sunrpc ipt_REJECT nf_conntrack_ipv4 nf_defrag_ipv4 iptable_filter
ip_tables ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack
ip6table_filter ip6_tables ipv6 sg ibmveth shpchp ext4(F) jbd2(F) mbcache(F)
sr_mod(F) cdrom(F) sd_mod(F) crc_t10dif(F) dm_mirror(F) dm_region_hash(F)
dm_log(F) dm_mod(F)
NIP: d0000000069c2110 LR: d0000000069c2104 CTR: c000000000677f00
REGS: c00000000590a540 TRAP: 0700   Tainted: GF       W     (3.8.0+)
MSR: 8000000000029032 <SF,EE,ME,IR,DR,RI>  CR: 28222482  XER: 0000000b
SOFTE: 1
CFAR: d000000006a029d0
TASK = c0000001ecd0b680[2589] 'modprobe' THREAD: c000000005908000 CPU: 4
GPR00: d0000000069c2104 c00000000590a7c0 d000000006abfd00 00000000ffffffff 
GPR04: 0000000000000001 0000000000000000 0000000000000000 000000002304ffff 
GPR08: 0000000030783031 c000000001067c50 000000000b3193b0 c000000000677f00 
GPR12: d000000006a76f30 c00000000edd0c00 00000080646700a0 0000000000000000 
GPR16: 0000010003bd0100 0000000000000000 c00000000590bc78 0000000000000030 
GPR20: c00000000590aa58 c00000000590aa50 0000000000000001 c0000001e5082000 
GPR24: c000000006fd8c80 000000002304ffff 000000000000018a 00000000ffffffff 
GPR28: 0000000000000000 000000002304ffff d000000006ab66d8 c0000001e5082000 
NIP [d0000000069c2110] .cail_reg_write+0x50/0x70 [radeon]
LR [d0000000069c2104] .cail_reg_write+0x44/0x70 [radeon]
Call Trace:
[c00000000590a7c0] [d0000000069c2104] .cail_reg_write+0x44/0x70 [radeon]
(unreliable)
[c00000000590a850] [d0000000069d9530] .atom_put_dst+0x110/0x710 [radeon]
[c00000000590a920] [d0000000069dadd0] .atom_op_move+0xf0/0x1d0 [radeon]
[c00000000590a9e0] [d0000000069db1c4] .atom_execute_table_locked+0x314/0x3a0
[radeon]
[c00000000590aaf0] [d0000000069db5f8] .atom_op_calltable+0x108/0x170 [radeon]
[c00000000590ab80] [d0000000069db1c4] .atom_execute_table_locked+0x314/0x3a0
[radeon]
[c00000000590ac90] [d0000000069db5f8] .atom_op_calltable+0x108/0x170 [radeon]
[c00000000590ad20] [d0000000069db1c4] .atom_execute_table_locked+0x314/0x3a0
[radeon]
[c00000000590ae30] [d0000000069db2a4] .atom_execute_table+0x54/0x80 [radeon]
[c00000000590aed0] [d0000000069db474] .atom_asic_init+0x1a4/0x220 [radeon]
[c00000000590afb0] [d000000006a520e8] .evergreen_init+0x108/0x330 [radeon]
[c00000000590b040] [d0000000069c1d28] .radeon_device_init+0x578/0x6f0 [radeon]
[c00000000590b0e0] [d0000000069c48c0] .radeon_driver_load_kms+0xc0/0x180
[radeon]
[c00000000590b180] [d000000004eef200] .drm_get_pci_dev+0x1e0/0x2d0 [drm]
[c00000000590b240] [d0000000069a023c] .radeon_pci_probe+0xbc/0x100 [radeon]
[c00000000590b2d0] [c000000000359374] .local_pci_probe+0x64/0xb0
[c00000000590b370] [c000000000359488] .pci_call_probe+0xc8/0xf0
[c00000000590b410] [c00000000035a570] .pci_device_probe+0x90/0xb0
[c00000000590b4a0] [c000000000412004] .really_probe+0xb4/0x370
[c00000000590b550] [c000000000412320] .driver_probe_device+0x60/0xe0
[c00000000590b5e0] [c0000000004124ac] .__driver_attach+0x10c/0x110
[c00000000590b670] [c00000000040f7a8] .bus_for_each_dev+0x98/0xf0
[c00000000590b720] [c000000000411b28] .driver_attach+0x28/0x40
[c00000000590b7a0] [c0000000004106a8] .bus_add_driver+0x188/0x320
[c00000000590b840] [c000000000412c7c] .driver_register+0x9c/0x1c0
[c00000000590b8e0] [c00000000035a6b8] .__pci_register_driver+0x48/0x60
[c00000000590b960] [d000000004eef45c] .drm_pci_init+0x16c/0x1a0 [drm]
[c00000000590ba10] [d000000006a76c14] .radeon_init+0x108/0xa414 [radeon]
[c00000000590baa0] [c00000000000acc4] .do_one_initcall+0x64/0x1e0
[c00000000590bb60] [c0000000000fb0c8] .do_init_module+0x68/0x1e0
[c00000000590bc00] [c0000000000fc634] .load_module+0x8b4/0x9c0
[c00000000590bd30] [c0000000000fca18] .SyS_init_module+0x118/0x160
[c00000000590be30] [c000000000009954] syscall_exit+0x0/0x94
Instruction dump:
e9230000 ebe90330 7fe3fb78 480406e5 60000000 7fe3fb78 7fa4eb78 38a00000 
480407c1 60000000 2f83ffff 409e0008 <0fe00000> 38210090 e8010010 eba1ffe8 
---[ end trace 7065b906d56b6c01 ]---
.[31:0] <- 0x2304FFFF
         AND_REG @ 0xD9A1

Which seems to imply that at AtomBIOS function #10 - MemoryPLLInit things go
bad, when it executes this instruction @94
  0079: 0300418a01        MOVE   WS_REMIND/HI32 [XXXX]  <-  reg[018a]  [XXXX]
  007e: 5e05410000f7dfffff0001  MASK   WS_REMIND/HI32 [XXXX]  &  dff70000  | 
0100ffff
  0089: 4ba50102          TEST   param[01]  [.X..]  <-  02
  008d: 449400            JUMP_Equal  0094
  0090: 0fe54120          OR     WS_REMIND/HI32 [X...]  <-  20
  0094: 01028a0141        MOVE   reg[018a]  [XXXX]  <-  WS_REMIND/HI32 [XXXX]

Any thoughts in this? I've been trying to makes heads or tails of what exactly
this means for a few hours now. I know it's initializing the PLL, what I don't
get is why zeroing out bits 30 and 19, and then setting bit 24 would cause
invalid memory accesses.

Or, did my test influence the flow of the program, and I shouldn't be reading
this register shortly after writing to it?


You are receiving this mail because:
  • You are the assignee for the bug.
--1361975054.27a7Afba0.24301-- --===============1195456426== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/dri-devel --===============1195456426==--