2010-01-15 14:45:33

by John Kacur

[permalink] [raw]
Subject: [OOPS] radeon kms

The oops is triggered because I am missing the firmware for
radeon/R700_rlc.bin and
radeon/R600_rlc.bin

However, I think it should be able to deal with this more gracefully.

ATOM BIOS: 9498.11.22.6.0.AS03
[drm] Clocks initialized !
[drm] Detected VRAM RAM=256M, BAR=256M
[drm] RAM width 128bits DDR
[TTM] Zone kernel: Available graphics memory: 3050912 kiB.
[TTM] Zone dma32: Available graphics memory: 2097152 kiB.
[drm] radeon: 256M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
alloc irq_desc for 33 on node -1
alloc kstat_irqs on node -1
radeon 0000:02:00.0: irq 33 for MSI/MSI-X
[drm] radeon: using MSI.
[drm] radeon: irq initialized.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] Loading RV730 Microcode
platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
[drm:rv770_startup] *ERROR* Failed to load firmware!
radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
PGD 1a1a74067 PUD 1a19b8067 PMD 0
Oops: 0000 [#1] SMP
last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
CPU 4
Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
RIP: 0010:[<ffffffffa0061034>] [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
tm]
RSP: 0018:ffff8801a1a8fb68 EFLAGS: 00010292
RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
FS: 00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
Stack:
ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
<0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
<0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
Call Trace:
[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
[<ffffffff812cead9>] __driver_attach+0x5d/0x81
[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
[<ffffffff812cedcb>] driver_register+0x9d/0x10e
[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
[<ffffffff81439aa2>] ? printk+0x41/0x47
[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
[<ffffffff81087788>] sys_init_module+0xd8/0x23a
[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
RIP [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
RSP <ffff8801a1a8fb68>
CR2: 0000000000000048
---[ end trace 604e2e318733e108 ]---
udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
03sc00i00' unexpected exit with status 0x0009


2010-01-26 13:21:45

by John Kacur

[permalink] [raw]
Subject: Re: [OOPS] radeon kms



On Fri, 15 Jan 2010, Jerome Glisse wrote:

> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
> >
> >
> > On Fri, 15 Jan 2010, John Kacur wrote:
> >
> > > The oops is triggered because I am missing the firmware for
> > > radeon/R700_rlc.bin and
> > > radeon/R600_rlc.bin
> > >
> > > However, I think it should be able to deal with this more gracefully.
> > >
> > > ATOM BIOS: 9498.11.22.6.0.AS03
> > > [drm] Clocks initialized !
> > > [drm] Detected VRAM RAM=256M, BAR=256M
> > > [drm] RAM width 128bits DDR
> > > [TTM] Zone kernel: Available graphics memory: 3050912 kiB.
> > > [TTM] Zone dma32: Available graphics memory: 2097152 kiB.
> > > [drm] radeon: 256M of VRAM memory ready
> > > [drm] radeon: 512M of GTT memory ready.
> > > alloc irq_desc for 33 on node -1
> > > alloc kstat_irqs on node -1
> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
> > > [drm] radeon: using MSI.
> > > [drm] radeon: irq initialized.
> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
> > > [drm] Loading RV730 Microcode
> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
> > > Oops: 0000 [#1] SMP
> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
> > > CPU 4
> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
> > > RIP: 0010:[<ffffffffa0061034>] [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
> > > tm]
> > > RSP: 0018:ffff8801a1a8fb68 EFLAGS: 00010292
> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
> > > FS: 00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
> > > CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
> > > Stack:
> > > ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
> > > Call Trace:
> > > [<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
> > > [<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
> > > [<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
> > > [<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
> > > [<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
> > > [<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
> > > [<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
> > > [<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
> > > [<ffffffff8122e941>] local_pci_probe+0x17/0x1b
> > > [<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
> > > [<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
> > > [<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
> > > [<ffffffff812cead9>] __driver_attach+0x5d/0x81
> > > [<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
> > > [<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
> > > [<ffffffff812ce6f2>] driver_attach+0x1e/0x20
> > > [<ffffffff812ce330>] bus_add_driver+0xd8/0x240
> > > [<ffffffff812cedcb>] driver_register+0x9d/0x10e
> > > [<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
> > > [<ffffffff81439aa2>] ? printk+0x41/0x47
> > > [<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
> > > [<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
> > > [<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
> > > [<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
> > > [<ffffffff81002069>] do_one_initcall+0x5e/0x15e
> > > [<ffffffff81087788>] sys_init_module+0xd8/0x23a
> > > [<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
> > > 41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
> > > f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
> > > RIP [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
> > > RSP <ffff8801a1a8fb68>
> > > CR2: 0000000000000048
> > > ---[ end trace 604e2e318733e108 ]---
> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
> > > 03sc00i00' unexpected exit with status 0x0009
> > >
> > >
> >
> > I forgot to mention that this is kernel version 2.6.33-rc4.
> >
> > Thanks.
>
> Yes, we didn't paid enough attention to failure path :( Sorry for that
> Fix should be in next rc, patch is:
> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>

I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
when I don't grab the firmware from the internet. (instead of merely
reverting to vga mode).

Furthermore, why is the firmware not shipped with the kernel?
I never needed to fetch firmware for the 2.6.31 kernels and my graphic
card worked fine.

Am I right to conclude that the license is a problem?
http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon

This is a huge step backwards if we are exchanging a working driver with
what shipped with the linux kernel to one that only works with blobs that
don't ship with the kernel.

Thanks

John

2010-01-26 13:59:39

by Alex Deucher

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Tue, Jan 26, 2010 at 8:21 AM, John Kacur <[email protected]> wrote:
>
>
> On Fri, 15 Jan 2010, Jerome Glisse wrote:
>
>> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>> >
>> >
>> > On Fri, 15 Jan 2010, John Kacur wrote:
>> >
>> > > The oops is triggered because I am missing the firmware for
>> > > radeon/R700_rlc.bin and
>> > > radeon/R600_rlc.bin
>> > >
>> > > However, I think it should be able to deal with this more gracefully.
>> > >
>> > > ATOM BIOS: 9498.11.22.6.0.AS03
>> > > [drm] Clocks initialized !
>> > > [drm] Detected VRAM RAM=256M, BAR=256M
>> > > [drm] RAM width 128bits DDR
>> > > [TTM] Zone ?kernel: Available graphics memory: 3050912 kiB.
>> > > [TTM] Zone ? dma32: Available graphics memory: 2097152 kiB.
>> > > [drm] radeon: 256M of VRAM memory ready
>> > > [drm] radeon: 512M of GTT memory ready.
>> > > ? alloc irq_desc for 33 on node -1
>> > > ? alloc kstat_irqs on node -1
>> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
>> > > [drm] radeon: using MSI.
>> > > [drm] radeon: irq initialized.
>> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
>> > > [drm] Loading RV730 Microcode
>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
>> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
>> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
>> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
>> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
>> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
>> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
>> > > Oops: 0000 [#1] SMP
>> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
>> > > CPU 4
>> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
>> > > RIP: 0010:[<ffffffffa0061034>] ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
>> > > tm]
>> > > RSP: 0018:ffff8801a1a8fb68 ?EFLAGS: 00010292
>> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
>> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
>> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
>> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
>> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
>> > > FS: ?00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
>> > > CS: ?0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
>> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
>> > > Stack:
>> > > ?ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
>> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
>> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
>> > > Call Trace:
>> > > ?[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
>> > > ?[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
>> > > ?[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
>> > > ?[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
>> > > ?[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
>> > > ?[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
>> > > ?[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
>> > > ?[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
>> > > ?[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
>> > > ?[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
>> > > ?[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
>> > > ?[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
>> > > ?[<ffffffff812cead9>] __driver_attach+0x5d/0x81
>> > > ?[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
>> > > ?[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
>> > > ?[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
>> > > ?[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
>> > > ?[<ffffffff812cedcb>] driver_register+0x9d/0x10e
>> > > ?[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
>> > > ?[<ffffffff81439aa2>] ? printk+0x41/0x47
>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>> > > ?[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>> > > ?[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
>> > > ?[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
>> > > ?[<ffffffff81087788>] sys_init_module+0xd8/0x23a
>> > > ?[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
>> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
>> > > ?41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
>> > > ?f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
>> > > RIP ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>> > > ?RSP <ffff8801a1a8fb68>
>> > > CR2: 0000000000000048
>> > > ---[ end trace 604e2e318733e108 ]---
>> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
>> > > 03sc00i00' unexpected exit with status 0x0009
>> > >
>> > >
>> >
>> > I forgot to mention that this is kernel version 2.6.33-rc4.
>> >
>> > Thanks.
>>
>> Yes, we didn't paid enough attention to failure path :( Sorry for that
>> Fix should be in next rc, patch is:
>> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>>
>
> I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
> when I don't grab the firmware from the internet. (instead of merely
> reverting to vga mode).
>
> Furthermore, why is the firmware not shipped with the kernel?
> I never needed to fetch firmware for the 2.6.31 kernels and my graphic
> card worked fine.
>
> Am I right to conclude that the license is a problem?
> http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon
>
> This is a huge step backwards if we are exchanging a working driver with
> what shipped with the linux kernel to one that only works with blobs that
> don't ship with the kernel.

In general, microcode is slowly being moved out of the kernel and into
the Linux firmware tree:
http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=tree
Eventually all of the radeon microcode will end up out up in that tree.

Alex

2010-01-26 14:10:48

by John Kacur

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Tue, Jan 26, 2010 at 2:59 PM, Alex Deucher <[email protected]> wrote:
> On Tue, Jan 26, 2010 at 8:21 AM, John Kacur <[email protected]> wrote:
>>
>>
>> On Fri, 15 Jan 2010, Jerome Glisse wrote:
>>
>>> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>>> >
>>> >
>>> > On Fri, 15 Jan 2010, John Kacur wrote:
>>> >
>>> > > The oops is triggered because I am missing the firmware for
>>> > > radeon/R700_rlc.bin and
>>> > > radeon/R600_rlc.bin
>>> > >
>>> > > However, I think it should be able to deal with this more gracefully.
>>> > >
>>> > > ATOM BIOS: 9498.11.22.6.0.AS03
>>> > > [drm] Clocks initialized !
>>> > > [drm] Detected VRAM RAM=256M, BAR=256M
>>> > > [drm] RAM width 128bits DDR
>>> > > [TTM] Zone ?kernel: Available graphics memory: 3050912 kiB.
>>> > > [TTM] Zone ? dma32: Available graphics memory: 2097152 kiB.
>>> > > [drm] radeon: 256M of VRAM memory ready
>>> > > [drm] radeon: 512M of GTT memory ready.
>>> > > ? alloc irq_desc for 33 on node -1
>>> > > ? alloc kstat_irqs on node -1
>>> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
>>> > > [drm] radeon: using MSI.
>>> > > [drm] radeon: irq initialized.
>>> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
>>> > > [drm] Loading RV730 Microcode
>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
>>> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
>>> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
>>> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
>>> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
>>> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
>>> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
>>> > > Oops: 0000 [#1] SMP
>>> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
>>> > > CPU 4
>>> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
>>> > > RIP: 0010:[<ffffffffa0061034>] ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
>>> > > tm]
>>> > > RSP: 0018:ffff8801a1a8fb68 ?EFLAGS: 00010292
>>> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
>>> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
>>> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
>>> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
>>> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
>>> > > FS: ?00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
>>> > > CS: ?0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
>>> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>>> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>>> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
>>> > > Stack:
>>> > > ?ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
>>> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
>>> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
>>> > > Call Trace:
>>> > > ?[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
>>> > > ?[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
>>> > > ?[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
>>> > > ?[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
>>> > > ?[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
>>> > > ?[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
>>> > > ?[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
>>> > > ?[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
>>> > > ?[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
>>> > > ?[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
>>> > > ?[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
>>> > > ?[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
>>> > > ?[<ffffffff812cead9>] __driver_attach+0x5d/0x81
>>> > > ?[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
>>> > > ?[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
>>> > > ?[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
>>> > > ?[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
>>> > > ?[<ffffffff812cedcb>] driver_register+0x9d/0x10e
>>> > > ?[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
>>> > > ?[<ffffffff81439aa2>] ? printk+0x41/0x47
>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>> > > ?[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>> > > ?[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
>>> > > ?[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
>>> > > ?[<ffffffff81087788>] sys_init_module+0xd8/0x23a
>>> > > ?[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
>>> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
>>> > > ?41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
>>> > > ?f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
>>> > > RIP ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>> > > ?RSP <ffff8801a1a8fb68>
>>> > > CR2: 0000000000000048
>>> > > ---[ end trace 604e2e318733e108 ]---
>>> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
>>> > > 03sc00i00' unexpected exit with status 0x0009
>>> > >
>>> > >
>>> >
>>> > I forgot to mention that this is kernel version 2.6.33-rc4.
>>> >
>>> > Thanks.
>>>
>>> Yes, we didn't paid enough attention to failure path :( Sorry for that
>>> Fix should be in next rc, patch is:
>>> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>>>
>>
>> I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
>> when I don't grab the firmware from the internet. (instead of merely
>> reverting to vga mode).
>>
>> Furthermore, why is the firmware not shipped with the kernel?
>> I never needed to fetch firmware for the 2.6.31 kernels and my graphic
>> card worked fine.
>>
>> Am I right to conclude that the license is a problem?
>> http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon
>>
>> This is a huge step backwards if we are exchanging a working driver with
>> what shipped with the linux kernel to one that only works with blobs that
>> don't ship with the kernel.
>
> In general, microcode is slowly being moved out of the kernel and into
> the Linux firmware tree:
> http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=tree
> Eventually all of the radeon microcode will end up out up in that tree.
>

Okay, but why are R600_rlc.bin R700_rlc.bin in particular missing
from the firmware?

2010-01-26 14:19:58

by Alex Deucher

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Tue, Jan 26, 2010 at 9:10 AM, John Kacur <[email protected]> wrote:
> On Tue, Jan 26, 2010 at 2:59 PM, Alex Deucher <[email protected]> wrote:
>> On Tue, Jan 26, 2010 at 8:21 AM, John Kacur <[email protected]> wrote:
>>>
>>>
>>> On Fri, 15 Jan 2010, Jerome Glisse wrote:
>>>
>>>> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>>>> >
>>>> >
>>>> > On Fri, 15 Jan 2010, John Kacur wrote:
>>>> >
>>>> > > The oops is triggered because I am missing the firmware for
>>>> > > radeon/R700_rlc.bin and
>>>> > > radeon/R600_rlc.bin
>>>> > >
>>>> > > However, I think it should be able to deal with this more gracefully.
>>>> > >
>>>> > > ATOM BIOS: 9498.11.22.6.0.AS03
>>>> > > [drm] Clocks initialized !
>>>> > > [drm] Detected VRAM RAM=256M, BAR=256M
>>>> > > [drm] RAM width 128bits DDR
>>>> > > [TTM] Zone ?kernel: Available graphics memory: 3050912 kiB.
>>>> > > [TTM] Zone ? dma32: Available graphics memory: 2097152 kiB.
>>>> > > [drm] radeon: 256M of VRAM memory ready
>>>> > > [drm] radeon: 512M of GTT memory ready.
>>>> > > ? alloc irq_desc for 33 on node -1
>>>> > > ? alloc kstat_irqs on node -1
>>>> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
>>>> > > [drm] radeon: using MSI.
>>>> > > [drm] radeon: irq initialized.
>>>> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
>>>> > > [drm] Loading RV730 Microcode
>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
>>>> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
>>>> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
>>>> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
>>>> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
>>>> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
>>>> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
>>>> > > Oops: 0000 [#1] SMP
>>>> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
>>>> > > CPU 4
>>>> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
>>>> > > RIP: 0010:[<ffffffffa0061034>] ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
>>>> > > tm]
>>>> > > RSP: 0018:ffff8801a1a8fb68 ?EFLAGS: 00010292
>>>> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
>>>> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
>>>> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
>>>> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
>>>> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
>>>> > > FS: ?00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
>>>> > > CS: ?0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>>> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
>>>> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>>>> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>>>> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
>>>> > > Stack:
>>>> > > ?ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
>>>> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
>>>> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
>>>> > > Call Trace:
>>>> > > ?[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
>>>> > > ?[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
>>>> > > ?[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
>>>> > > ?[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
>>>> > > ?[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
>>>> > > ?[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
>>>> > > ?[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
>>>> > > ?[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
>>>> > > ?[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
>>>> > > ?[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
>>>> > > ?[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
>>>> > > ?[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
>>>> > > ?[<ffffffff812cead9>] __driver_attach+0x5d/0x81
>>>> > > ?[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
>>>> > > ?[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
>>>> > > ?[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
>>>> > > ?[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
>>>> > > ?[<ffffffff812cedcb>] driver_register+0x9d/0x10e
>>>> > > ?[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
>>>> > > ?[<ffffffff81439aa2>] ? printk+0x41/0x47
>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>> > > ?[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>> > > ?[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
>>>> > > ?[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
>>>> > > ?[<ffffffff81087788>] sys_init_module+0xd8/0x23a
>>>> > > ?[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
>>>> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
>>>> > > ?41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
>>>> > > ?f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
>>>> > > RIP ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>> > > ?RSP <ffff8801a1a8fb68>
>>>> > > CR2: 0000000000000048
>>>> > > ---[ end trace 604e2e318733e108 ]---
>>>> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
>>>> > > 03sc00i00' unexpected exit with status 0x0009
>>>> > >
>>>> > >
>>>> >
>>>> > I forgot to mention that this is kernel version 2.6.33-rc4.
>>>> >
>>>> > Thanks.
>>>>
>>>> Yes, we didn't paid enough attention to failure path :( Sorry for that
>>>> Fix should be in next rc, patch is:
>>>> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>>>>
>>>
>>> I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
>>> when I don't grab the firmware from the internet. (instead of merely
>>> reverting to vga mode).
>>>
>>> Furthermore, why is the firmware not shipped with the kernel?
>>> I never needed to fetch firmware for the 2.6.31 kernels and my graphic
>>> card worked fine.
>>>
>>> Am I right to conclude that the license is a problem?
>>> http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon
>>>
>>> This is a huge step backwards if we are exchanging a working driver with
>>> what shipped with the linux kernel to one that only works with blobs that
>>> don't ship with the kernel.
>>
>> In general, microcode is slowly being moved out of the kernel and into
>> the Linux firmware tree:
>> http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=tree
>> Eventually all of the radeon microcode will end up out up in that tree.
>>
>
> Okay, but why are R600_rlc.bin ?R700_rlc.bin in particular missing
> from the firmware?
>

Missing from where? We aren't adding any new microcode to the kernel
source and they haven't made it into the firmware tree yet. Until
they end up in the firmware tree, you need to grab them from:
http://people.freedesktop.org/~agd5f/radeon_ucode

Alex

2010-01-26 14:35:58

by John Kacur

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Tue, Jan 26, 2010 at 3:19 PM, Alex Deucher <[email protected]> wrote:
> On Tue, Jan 26, 2010 at 9:10 AM, John Kacur <[email protected]> wrote:
>> On Tue, Jan 26, 2010 at 2:59 PM, Alex Deucher <[email protected]> wrote:
>>> On Tue, Jan 26, 2010 at 8:21 AM, John Kacur <[email protected]> wrote:
>>>>
>>>>
>>>> On Fri, 15 Jan 2010, Jerome Glisse wrote:
>>>>
>>>>> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>>>>> >
>>>>> >
>>>>> > On Fri, 15 Jan 2010, John Kacur wrote:
>>>>> >
>>>>> > > The oops is triggered because I am missing the firmware for
>>>>> > > radeon/R700_rlc.bin and
>>>>> > > radeon/R600_rlc.bin
>>>>> > >
>>>>> > > However, I think it should be able to deal with this more gracefully.
>>>>> > >
>>>>> > > ATOM BIOS: 9498.11.22.6.0.AS03
>>>>> > > [drm] Clocks initialized !
>>>>> > > [drm] Detected VRAM RAM=256M, BAR=256M
>>>>> > > [drm] RAM width 128bits DDR
>>>>> > > [TTM] Zone ?kernel: Available graphics memory: 3050912 kiB.
>>>>> > > [TTM] Zone ? dma32: Available graphics memory: 2097152 kiB.
>>>>> > > [drm] radeon: 256M of VRAM memory ready
>>>>> > > [drm] radeon: 512M of GTT memory ready.
>>>>> > > ? alloc irq_desc for 33 on node -1
>>>>> > > ? alloc kstat_irqs on node -1
>>>>> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
>>>>> > > [drm] radeon: using MSI.
>>>>> > > [drm] radeon: irq initialized.
>>>>> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
>>>>> > > [drm] Loading RV730 Microcode
>>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
>>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
>>>>> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
>>>>> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
>>>>> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
>>>>> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
>>>>> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
>>>>> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>>> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
>>>>> > > Oops: 0000 [#1] SMP
>>>>> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
>>>>> > > CPU 4
>>>>> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
>>>>> > > RIP: 0010:[<ffffffffa0061034>] ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
>>>>> > > tm]
>>>>> > > RSP: 0018:ffff8801a1a8fb68 ?EFLAGS: 00010292
>>>>> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
>>>>> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
>>>>> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
>>>>> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
>>>>> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
>>>>> > > FS: ?00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
>>>>> > > CS: ?0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>>>> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
>>>>> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>>>>> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>>>>> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
>>>>> > > Stack:
>>>>> > > ?ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
>>>>> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
>>>>> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
>>>>> > > Call Trace:
>>>>> > > ?[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
>>>>> > > ?[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
>>>>> > > ?[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
>>>>> > > ?[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
>>>>> > > ?[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
>>>>> > > ?[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
>>>>> > > ?[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
>>>>> > > ?[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
>>>>> > > ?[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
>>>>> > > ?[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
>>>>> > > ?[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
>>>>> > > ?[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
>>>>> > > ?[<ffffffff812cead9>] __driver_attach+0x5d/0x81
>>>>> > > ?[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
>>>>> > > ?[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
>>>>> > > ?[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
>>>>> > > ?[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
>>>>> > > ?[<ffffffff812cedcb>] driver_register+0x9d/0x10e
>>>>> > > ?[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
>>>>> > > ?[<ffffffff81439aa2>] ? printk+0x41/0x47
>>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>>> > > ?[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
>>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>>> > > ?[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
>>>>> > > ?[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
>>>>> > > ?[<ffffffff81087788>] sys_init_module+0xd8/0x23a
>>>>> > > ?[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
>>>>> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
>>>>> > > ?41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
>>>>> > > ?f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
>>>>> > > RIP ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>>> > > ?RSP <ffff8801a1a8fb68>
>>>>> > > CR2: 0000000000000048
>>>>> > > ---[ end trace 604e2e318733e108 ]---
>>>>> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
>>>>> > > 03sc00i00' unexpected exit with status 0x0009
>>>>> > >
>>>>> > >
>>>>> >
>>>>> > I forgot to mention that this is kernel version 2.6.33-rc4.
>>>>> >
>>>>> > Thanks.
>>>>>
>>>>> Yes, we didn't paid enough attention to failure path :( Sorry for that
>>>>> Fix should be in next rc, patch is:
>>>>> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>>>>>
>>>>
>>>> I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
>>>> when I don't grab the firmware from the internet. (instead of merely
>>>> reverting to vga mode).
>>>>
>>>> Furthermore, why is the firmware not shipped with the kernel?
>>>> I never needed to fetch firmware for the 2.6.31 kernels and my graphic
>>>> card worked fine.
>>>>
>>>> Am I right to conclude that the license is a problem?
>>>> http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon
>>>>
>>>> This is a huge step backwards if we are exchanging a working driver with
>>>> what shipped with the linux kernel to one that only works with blobs that
>>>> don't ship with the kernel.
>>>
>>> In general, microcode is slowly being moved out of the kernel and into
>>> the Linux firmware tree:
>>> http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=tree
>>> Eventually all of the radeon microcode will end up out up in that tree.
>>>
>>
>> Okay, but why are R600_rlc.bin ?R700_rlc.bin in particular missing
>> from the firmware?
>>
>
> Missing from where? ?We aren't adding any new microcode to the kernel
> source and they haven't made it into the firmware tree yet. ?Until
> they end up in the firmware tree, you need to grab them from:
> http://people.freedesktop.org/~agd5f/radeon_ucode
>

I meant why are they missing from the firmware tree? What is holding that up?

Thanks

2010-01-26 20:20:56

by Alex Deucher

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Tue, Jan 26, 2010 at 9:35 AM, John Kacur <[email protected]> wrote:
> On Tue, Jan 26, 2010 at 3:19 PM, Alex Deucher <[email protected]> wrote:
>> On Tue, Jan 26, 2010 at 9:10 AM, John Kacur <[email protected]> wrote:
>>> On Tue, Jan 26, 2010 at 2:59 PM, Alex Deucher <[email protected]> wrote:
>>>> On Tue, Jan 26, 2010 at 8:21 AM, John Kacur <[email protected]> wrote:
>>>>>
>>>>>
>>>>> On Fri, 15 Jan 2010, Jerome Glisse wrote:
>>>>>
>>>>>> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>>>>>> >
>>>>>> >
>>>>>> > On Fri, 15 Jan 2010, John Kacur wrote:
>>>>>> >
>>>>>> > > The oops is triggered because I am missing the firmware for
>>>>>> > > radeon/R700_rlc.bin and
>>>>>> > > radeon/R600_rlc.bin
>>>>>> > >
>>>>>> > > However, I think it should be able to deal with this more gracefully.
>>>>>> > >
>>>>>> > > ATOM BIOS: 9498.11.22.6.0.AS03
>>>>>> > > [drm] Clocks initialized !
>>>>>> > > [drm] Detected VRAM RAM=256M, BAR=256M
>>>>>> > > [drm] RAM width 128bits DDR
>>>>>> > > [TTM] Zone ?kernel: Available graphics memory: 3050912 kiB.
>>>>>> > > [TTM] Zone ? dma32: Available graphics memory: 2097152 kiB.
>>>>>> > > [drm] radeon: 256M of VRAM memory ready
>>>>>> > > [drm] radeon: 512M of GTT memory ready.
>>>>>> > > ? alloc irq_desc for 33 on node -1
>>>>>> > > ? alloc kstat_irqs on node -1
>>>>>> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
>>>>>> > > [drm] radeon: using MSI.
>>>>>> > > [drm] radeon: irq initialized.
>>>>>> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
>>>>>> > > [drm] Loading RV730 Microcode
>>>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
>>>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
>>>>>> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
>>>>>> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
>>>>>> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
>>>>>> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
>>>>>> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
>>>>>> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>>>> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
>>>>>> > > Oops: 0000 [#1] SMP
>>>>>> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
>>>>>> > > CPU 4
>>>>>> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
>>>>>> > > RIP: 0010:[<ffffffffa0061034>] ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
>>>>>> > > tm]
>>>>>> > > RSP: 0018:ffff8801a1a8fb68 ?EFLAGS: 00010292
>>>>>> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
>>>>>> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
>>>>>> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
>>>>>> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
>>>>>> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
>>>>>> > > FS: ?00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
>>>>>> > > CS: ?0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>>>>> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
>>>>>> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>>>>>> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>>>>>> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
>>>>>> > > Stack:
>>>>>> > > ?ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
>>>>>> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
>>>>>> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
>>>>>> > > Call Trace:
>>>>>> > > ?[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
>>>>>> > > ?[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
>>>>>> > > ?[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
>>>>>> > > ?[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
>>>>>> > > ?[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
>>>>>> > > ?[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
>>>>>> > > ?[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
>>>>>> > > ?[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
>>>>>> > > ?[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
>>>>>> > > ?[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
>>>>>> > > ?[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
>>>>>> > > ?[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
>>>>>> > > ?[<ffffffff812cead9>] __driver_attach+0x5d/0x81
>>>>>> > > ?[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
>>>>>> > > ?[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
>>>>>> > > ?[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
>>>>>> > > ?[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
>>>>>> > > ?[<ffffffff812cedcb>] driver_register+0x9d/0x10e
>>>>>> > > ?[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
>>>>>> > > ?[<ffffffff81439aa2>] ? printk+0x41/0x47
>>>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>>>> > > ?[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
>>>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>>>> > > ?[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
>>>>>> > > ?[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
>>>>>> > > ?[<ffffffff81087788>] sys_init_module+0xd8/0x23a
>>>>>> > > ?[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
>>>>>> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
>>>>>> > > ?41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
>>>>>> > > ?f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
>>>>>> > > RIP ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>>>> > > ?RSP <ffff8801a1a8fb68>
>>>>>> > > CR2: 0000000000000048
>>>>>> > > ---[ end trace 604e2e318733e108 ]---
>>>>>> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
>>>>>> > > 03sc00i00' unexpected exit with status 0x0009
>>>>>> > >
>>>>>> > >
>>>>>> >
>>>>>> > I forgot to mention that this is kernel version 2.6.33-rc4.
>>>>>> >
>>>>>> > Thanks.
>>>>>>
>>>>>> Yes, we didn't paid enough attention to failure path :( Sorry for that
>>>>>> Fix should be in next rc, patch is:
>>>>>> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>>>>>>
>>>>>
>>>>> I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
>>>>> when I don't grab the firmware from the internet. (instead of merely
>>>>> reverting to vga mode).
>>>>>
>>>>> Furthermore, why is the firmware not shipped with the kernel?
>>>>> I never needed to fetch firmware for the 2.6.31 kernels and my graphic
>>>>> card worked fine.
>>>>>
>>>>> Am I right to conclude that the license is a problem?
>>>>> http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon
>>>>>
>>>>> This is a huge step backwards if we are exchanging a working driver with
>>>>> what shipped with the linux kernel to one that only works with blobs that
>>>>> don't ship with the kernel.
>>>>
>>>> In general, microcode is slowly being moved out of the kernel and into
>>>> the Linux firmware tree:
>>>> http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=tree
>>>> Eventually all of the radeon microcode will end up out up in that tree.
>>>>
>>>
>>> Okay, but why are R600_rlc.bin ?R700_rlc.bin in particular missing
>>> from the firmware?
>>>
>>
>> Missing from where? ?We aren't adding any new microcode to the kernel
>> source and they haven't made it into the firmware tree yet. ?Until
>> they end up in the firmware tree, you need to grab them from:
>> http://people.freedesktop.org/~agd5f/radeon_ucode
>>
>
> I meant why are they missing from the firmware tree? What is holding that up?

Just hasn't been done yet.

Alex

2010-01-26 21:41:54

by John Kacur

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Tue, Jan 26, 2010 at 9:20 PM, Alex Deucher <[email protected]> wrote:
> On Tue, Jan 26, 2010 at 9:35 AM, John Kacur <[email protected]> wrote:
>> On Tue, Jan 26, 2010 at 3:19 PM, Alex Deucher <[email protected]> wrote:
>>> On Tue, Jan 26, 2010 at 9:10 AM, John Kacur <[email protected]> wrote:
>>>> On Tue, Jan 26, 2010 at 2:59 PM, Alex Deucher <[email protected]> wrote:
>>>>> On Tue, Jan 26, 2010 at 8:21 AM, John Kacur <[email protected]> wrote:
>>>>>>
>>>>>>
>>>>>> On Fri, 15 Jan 2010, Jerome Glisse wrote:
>>>>>>
>>>>>>> On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>>>>>>> >
>>>>>>> >
>>>>>>> > On Fri, 15 Jan 2010, John Kacur wrote:
>>>>>>> >
>>>>>>> > > The oops is triggered because I am missing the firmware for
>>>>>>> > > radeon/R700_rlc.bin and
>>>>>>> > > radeon/R600_rlc.bin
>>>>>>> > >
>>>>>>> > > However, I think it should be able to deal with this more gracefully.
>>>>>>> > >
>>>>>>> > > ATOM BIOS: 9498.11.22.6.0.AS03
>>>>>>> > > [drm] Clocks initialized !
>>>>>>> > > [drm] Detected VRAM RAM=256M, BAR=256M
>>>>>>> > > [drm] RAM width 128bits DDR
>>>>>>> > > [TTM] Zone ?kernel: Available graphics memory: 3050912 kiB.
>>>>>>> > > [TTM] Zone ? dma32: Available graphics memory: 2097152 kiB.
>>>>>>> > > [drm] radeon: 256M of VRAM memory ready
>>>>>>> > > [drm] radeon: 512M of GTT memory ready.
>>>>>>> > > ? alloc irq_desc for 33 on node -1
>>>>>>> > > ? alloc kstat_irqs on node -1
>>>>>>> > > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
>>>>>>> > > [drm] radeon: using MSI.
>>>>>>> > > [drm] radeon: irq initialized.
>>>>>>> > > [drm] GART: num cpu pages 131072, num gpu pages 131072
>>>>>>> > > [drm] Loading RV730 Microcode
>>>>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
>>>>>>> > > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
>>>>>>> > > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
>>>>>>> > > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
>>>>>>> > > [drm:rv770_startup] *ERROR* Failed to load firmware!
>>>>>>> > > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
>>>>>>> > > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
>>>>>>> > > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>>>>> > > PGD 1a1a74067 PUD 1a19b8067 PMD 0
>>>>>>> > > Oops: 0000 [#1] SMP
>>>>>>> > > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
>>>>>>> > > CPU 4
>>>>>>> > > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
>>>>>>> > > RIP: 0010:[<ffffffffa0061034>] ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
>>>>>>> > > tm]
>>>>>>> > > RSP: 0018:ffff8801a1a8fb68 ?EFLAGS: 00010292
>>>>>>> > > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
>>>>>>> > > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
>>>>>>> > > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
>>>>>>> > > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
>>>>>>> > > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
>>>>>>> > > FS: ?00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
>>>>>>> > > CS: ?0010 DS: 0000 ES: 0000 CR0: 000000008005003b
>>>>>>> > > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
>>>>>>> > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>>>>>>> > > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>>>>>>> > > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
>>>>>>> > > Stack:
>>>>>>> > > ?ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
>>>>>>> > > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
>>>>>>> > > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
>>>>>>> > > Call Trace:
>>>>>>> > > ?[<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
>>>>>>> > > ?[<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
>>>>>>> > > ?[<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
>>>>>>> > > ?[<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
>>>>>>> > > ?[<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
>>>>>>> > > ?[<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
>>>>>>> > > ?[<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
>>>>>>> > > ?[<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
>>>>>>> > > ?[<ffffffff8122e941>] local_pci_probe+0x17/0x1b
>>>>>>> > > ?[<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
>>>>>>> > > ?[<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
>>>>>>> > > ?[<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
>>>>>>> > > ?[<ffffffff812cead9>] __driver_attach+0x5d/0x81
>>>>>>> > > ?[<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
>>>>>>> > > ?[<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
>>>>>>> > > ?[<ffffffff812ce6f2>] driver_attach+0x1e/0x20
>>>>>>> > > ?[<ffffffff812ce330>] bus_add_driver+0xd8/0x240
>>>>>>> > > ?[<ffffffff812cedcb>] driver_register+0x9d/0x10e
>>>>>>> > > ?[<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
>>>>>>> > > ?[<ffffffff81439aa2>] ? printk+0x41/0x47
>>>>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>>>>> > > ?[<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
>>>>>>> > > ?[<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
>>>>>>> > > ?[<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
>>>>>>> > > ?[<ffffffff81002069>] do_one_initcall+0x5e/0x15e
>>>>>>> > > ?[<ffffffff81087788>] sys_init_module+0xd8/0x23a
>>>>>>> > > ?[<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
>>>>>>> > > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
>>>>>>> > > ?41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
>>>>>>> > > ?f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
>>>>>>> > > RIP ?[<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
>>>>>>> > > ?RSP <ffff8801a1a8fb68>
>>>>>>> > > CR2: 0000000000000048
>>>>>>> > > ---[ end trace 604e2e318733e108 ]---
>>>>>>> > > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
>>>>>>> > > 03sc00i00' unexpected exit with status 0x0009
>>>>>>> > >
>>>>>>> > >
>>>>>>> >
>>>>>>> > I forgot to mention that this is kernel version 2.6.33-rc4.
>>>>>>> >
>>>>>>> > Thanks.
>>>>>>>
>>>>>>> Yes, we didn't paid enough attention to failure path :( Sorry for that
>>>>>>> Fix should be in next rc, patch is:
>>>>>>> http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522
>>>>>>>
>>>>>>
>>>>>> I think your fix didn't make it to 2.6.33-rc5 because I'm still oopsing
>>>>>> when I don't grab the firmware from the internet. (instead of merely
>>>>>> reverting to vga mode).
>>>>>>
>>>>>> Furthermore, why is the firmware not shipped with the kernel?
>>>>>> I never needed to fetch firmware for the 2.6.31 kernels and my graphic
>>>>>> card worked fine.
>>>>>>
>>>>>> Am I right to conclude that the license is a problem?
>>>>>> http://people.freedesktop.org/~agd5f/radeon_ucode/LICENSE.radeon
>>>>>>
>>>>>> This is a huge step backwards if we are exchanging a working driver with
>>>>>> what shipped with the linux kernel to one that only works with blobs that
>>>>>> don't ship with the kernel.
>>>>>
>>>>> In general, microcode is slowly being moved out of the kernel and into
>>>>> the Linux firmware tree:
>>>>> http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=tree
>>>>> Eventually all of the radeon microcode will end up out up in that tree.
>>>>>
>>>>
>>>> Okay, but why are R600_rlc.bin ?R700_rlc.bin in particular missing
>>>> from the firmware?
>>>>
>>>
>>> Missing from where? ?We aren't adding any new microcode to the kernel
>>> source and they haven't made it into the firmware tree yet. ?Until
>>> they end up in the firmware tree, you need to grab them from:
>>> http://people.freedesktop.org/~agd5f/radeon_ucode
>>>
>>
>> I meant why are they missing from the firmware tree? What is holding that up?
>
> Just hasn't been done yet.
>
> Alex

Well, c'mon, can't you guys get that done in less time than it takes
to respond to my mail?

2010-01-15 14:47:33

by John Kacur

[permalink] [raw]
Subject: Re: [OOPS] radeon kms



On Fri, 15 Jan 2010, John Kacur wrote:

> The oops is triggered because I am missing the firmware for
> radeon/R700_rlc.bin and
> radeon/R600_rlc.bin
>
> However, I think it should be able to deal with this more gracefully.
>
> ATOM BIOS: 9498.11.22.6.0.AS03
> [drm] Clocks initialized !
> [drm] Detected VRAM RAM=256M, BAR=256M
> [drm] RAM width 128bits DDR
> [TTM] Zone kernel: Available graphics memory: 3050912 kiB.
> [TTM] Zone dma32: Available graphics memory: 2097152 kiB.
> [drm] radeon: 256M of VRAM memory ready
> [drm] radeon: 512M of GTT memory ready.
> alloc irq_desc for 33 on node -1
> alloc kstat_irqs on node -1
> radeon 0000:02:00.0: irq 33 for MSI/MSI-X
> [drm] radeon: using MSI.
> [drm] radeon: irq initialized.
> [drm] GART: num cpu pages 131072, num gpu pages 131072
> [drm] Loading RV730 Microcode
> platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
> platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
> platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
> r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
> [drm:rv770_startup] *ERROR* Failed to load firmware!
> radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
> BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
> PGD 1a1a74067 PUD 1a19b8067 PMD 0
> Oops: 0000 [#1] SMP
> last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
> CPU 4
> Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
> RIP: 0010:[<ffffffffa0061034>] [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
> tm]
> RSP: 0018:ffff8801a1a8fb68 EFLAGS: 00010292
> RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
> RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
> RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
> R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
> FS: 00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
> DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
> Stack:
> ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
> <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
> <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
> Call Trace:
> [<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
> [<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
> [<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
> [<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
> [<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
> [<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
> [<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
> [<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
> [<ffffffff8122e941>] local_pci_probe+0x17/0x1b
> [<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
> [<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
> [<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
> [<ffffffff812cead9>] __driver_attach+0x5d/0x81
> [<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
> [<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
> [<ffffffff812ce6f2>] driver_attach+0x1e/0x20
> [<ffffffff812ce330>] bus_add_driver+0xd8/0x240
> [<ffffffff812cedcb>] driver_register+0x9d/0x10e
> [<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
> [<ffffffff81439aa2>] ? printk+0x41/0x47
> [<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
> [<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
> [<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
> [<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
> [<ffffffff81002069>] do_one_initcall+0x5e/0x15e
> [<ffffffff81087788>] sys_init_module+0xd8/0x23a
> [<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
> Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
> 41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
> f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
> RIP [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
> RSP <ffff8801a1a8fb68>
> CR2: 0000000000000048
> ---[ end trace 604e2e318733e108 ]---
> udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
> 03sc00i00' unexpected exit with status 0x0009
>
>

I forgot to mention that this is kernel version 2.6.33-rc4.

Thanks.

2010-01-15 15:42:52

by Jerome Glisse

[permalink] [raw]
Subject: Re: [OOPS] radeon kms

On Fri, Jan 15, 2010 at 03:47:19PM +0100, John Kacur wrote:
>
>
> On Fri, 15 Jan 2010, John Kacur wrote:
>
> > The oops is triggered because I am missing the firmware for
> > radeon/R700_rlc.bin and
> > radeon/R600_rlc.bin
> >
> > However, I think it should be able to deal with this more gracefully.
> >
> > ATOM BIOS: 9498.11.22.6.0.AS03
> > [drm] Clocks initialized !
> > [drm] Detected VRAM RAM=256M, BAR=256M
> > [drm] RAM width 128bits DDR
> > [TTM] Zone kernel: Available graphics memory: 3050912 kiB.
> > [TTM] Zone dma32: Available graphics memory: 2097152 kiB.
> > [drm] radeon: 256M of VRAM memory ready
> > [drm] radeon: 512M of GTT memory ready.
> > alloc irq_desc for 33 on node -1
> > alloc kstat_irqs on node -1
> > radeon 0000:02:00.0: irq 33 for MSI/MSI-X
> > [drm] radeon: using MSI.
> > [drm] radeon: irq initialized.
> > [drm] GART: num cpu pages 131072, num gpu pages 131072
> > [drm] Loading RV730 Microcode
> > platform radeon_cp.0: firmware: requesting radeon/RV730_pfp.bin
> > platform radeon_cp.0: firmware: requesting radeon/RV730_me.bin
> > platform radeon_cp.0: firmware: requesting radeon/R700_rlc.bin
> > r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
> > [drm:rv770_startup] *ERROR* Failed to load firmware!
> > radeon 0000:02:00.0: ffff8801a20b5400 unpin not necessary
> > BUG: unable to handle kernel NULL pointer dereference at 0000000000000048
> > IP: [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
> > PGD 1a1a74067 PUD 1a19b8067 PMD 0
> > Oops: 0000 [#1] SMP
> > last sysfs file: /sys/devices/platform/radeon_cp.0/firmware/radeon_cp.0/loading
> > CPU 4
> > Pid: 168, comm: modprobe Not tainted 2.6.33-rc4 #3 EX58-UD3R/EX58-UD3R
> > RIP: 0010:[<ffffffffa0061034>] [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [t
> > tm]
> > RSP: 0018:ffff8801a1a8fb68 EFLAGS: 00010292
> > RAX: ffff880100000000 RBX: 0000000000000000 RCX: 0000000000000000
> > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000048
> > RBP: ffff8801a1a8fba8 R08: 0000000000000000 R09: 0000000000000000
> > R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> > R13: ffff8801a8838000 R14: 0000000000000024 R15: 0000000000002000
> > FS: 00007f0f9c6dc700(0000) GS:ffff88002e400000(0000) knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> > CR2: 0000000000000048 CR3: 00000001a195d000 CR4: 00000000000006e0
> > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
> > Process modprobe (pid: 168, threadinfo ffff8801a1a8e000, task ffff8801a22c0000)
> > Stack:
> > ffff880100000000 ffff8801a27e2900 ffff8801a1a8fb88 0000000000000000
> > <0> 0000000000000000 ffff8801a8838000 0000000000000024 0000000000002000
> > <0> ffff8801a1a8fbd8 ffffffffa00ba05b ffff8801a1a8fbd8 ffff8801a27f4000
> > Call Trace:
> > [<ffffffffa00ba05b>] radeon_bo_reserve.clone.0+0x2a/0x6d [radeon]
> > [<ffffffffa00bb441>] rv770_suspend+0x43/0x69 [radeon]
> > [<ffffffffa00bb6cf>] rv770_init+0x1a4/0x22d [radeon]
> > [<ffffffffa0089593>] radeon_device_init+0x27f/0x300 [radeon]
> > [<ffffffffa008a0fb>] radeon_driver_load_kms+0xff/0x184 [radeon]
> > [<ffffffffa001e1a6>] drm_get_dev+0x3c4/0x4c5 [drm]
> > [<ffffffff8122ea73>] ? pci_match_device+0x22/0xd0
> > [<ffffffffa00c3bb8>] radeon_pci_probe+0x15/0x268 [radeon]
> > [<ffffffff8122e941>] local_pci_probe+0x17/0x1b
> > [<ffffffff8122f721>] pci_device_probe+0xcd/0xfd
> > [<ffffffff812ce793>] ? driver_sysfs_add+0x4c/0x71
> > [<ffffffff812ce95c>] driver_probe_device+0xde/0x1fe
> > [<ffffffff812cead9>] __driver_attach+0x5d/0x81
> > [<ffffffff812cea7c>] ? __driver_attach+0x0/0x81
> > [<ffffffff812cdded>] bus_for_each_dev+0x59/0x8e
> > [<ffffffff812ce6f2>] driver_attach+0x1e/0x20
> > [<ffffffff812ce330>] bus_add_driver+0xd8/0x240
> > [<ffffffff812cedcb>] driver_register+0x9d/0x10e
> > [<ffffffff8122f969>] __pci_register_driver+0x68/0xd8
> > [<ffffffff81439aa2>] ? printk+0x41/0x47
> > [<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
> > [<ffffffffa0018eb3>] drm_init+0x75/0xdb [drm]
> > [<ffffffffa00f7000>] ? radeon_init+0x0/0xc1 [radeon]
> > [<ffffffffa00f70bf>] radeon_init+0xbf/0xc1 [radeon]
> > [<ffffffff81002069>] do_one_initcall+0x5e/0x15e
> > [<ffffffff81087788>] sys_init_module+0xd8/0x23a
> > [<ffffffff81009bf2>] system_call_fastpath+0x16/0x1b
> > Code: 01 00 00 00 31 c0 48 83 c4 38 5b 41 5c 41 5d 41 5e 41 5f c9 c3 55 48 89 e5
> > 41 57 41 56 41 55 41 54 53 48 83 ec 18 0f 1f 44 00 00 <4c> 8b 27 48 89 fb 41 88
> > f5 41 88 d6 41 88 cf 44 89 45 c8 49 81
> > RIP [<ffffffffa0061034>] ttm_bo_reserve+0x16/0xf8 [ttm]
> > RSP <ffff8801a1a8fb68>
> > CR2: 0000000000000048
> > ---[ end trace 604e2e318733e108 ]---
> > udevd-work[166]: '/sbin/modprobe -b pci:v00001002d00009498sv00001043sd00000300bc
> > 03sc00i00' unexpected exit with status 0x0009
> >
> >
>
> I forgot to mention that this is kernel version 2.6.33-rc4.
>
> Thanks.

Yes, we didn't paid enough attention to failure path :( Sorry for that
Fix should be in next rc, patch is:
http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=30d2d9a54d48e4fefede0389ded1b6fc2d44a522

Cheers,
Jerome