Subject: Re: Oops with Radeon/Uninorth on Maple

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 25 May 2012 10:59:55 +1000

On Thu, 2012-05-24 at 10:18 +0400, Dmitry Eremin-Solenikov wrote:
> Hello, colleagues,
> 
> I'm trying to enable an AGP slot (again) on my Maple board (dual 
> PPC970FX board, with CPC925 (U3H) north bridge).
> 
>   For now I'm stuck with a problem: I use radeon card, drm-radeon driver 
> with KMS.
> 
> If I force drm-radeon to think about a card as about PCI card (by 
> commenting corresponding lines in drm_radeon_kms.c), everything works, I 
> get framebuffer, working X11, etc. If I enable agpgart-uninorth driver
> and RADEON_IS_AGP flag in drm driver, I get an Oops early during the 
> bootstrap. Relevant part of the log (I can send full dmesg of normal 
> bootstrap or this oops on request, if that would help).

Machine Check probably means that there's a HW configuration issue,
possibly something missing in the initialization of the AGP hardware to
make it actually work.

Cheers,
Ben.

> [    2.820647] Linux agpgart interface v0.103
> [    2.824909] agpgart-uninorth 0000:f0:0b.0: Apple U3H chipset
> [    2.830668] agpgart-uninorth 0000:f0:0b.0: Found device u3, rev 35
> [    2.843611] agpgart-uninorth 0000:f0:0b.0: configuring for size idx: 64
> [    2.850638] agpgart-uninorth 0000:f0:0b.0: AGP aperture is 256M @ 0x0
> [    2.857646] [drm] Initialized drm 1.1.0 20060810
> [    2.862567] [drm] radeon defaulting to kernel modesetting.
> [    2.868091] [drm] radeon kernel modesetting enabled.
> [    2.873222] radeon 0000:f0:10.0: enabling device (0000 -> 0003)
> [    2.880311] radeon 0000:f0:10.0: enabling bus mastering
> [    2.885591] [drm] initializing kernel modesetting (RV350 
> 0x1002:0x4152 0x18BC:0x0416).
> [    2.893629] [drm] register mmio base: 0xD0020000
> [    2.898260] [drm] register mmio size: 65536
> [    2.947112] [drm] GPU not posted. posting now...
> [    3.051033] agpgart-uninorth 0000:f0:0b.0: putting AGP V3 device into 
> 8x mode
> [    3.058197] radeon 0000:f0:10.0: putting AGP V3 device into 8x mode
> [    3.064666] radeon 0000:f0:10.0: GTT: 256M 0x00000000 - 0x0FFFFFFF
> [    3.070864] [drm] Generation 2 PCI interface, using max accessible memory
> [    3.077672] radeon 0000:f0:10.0: VRAM: 128M 0x00000000C0000000 - 
> 0x00000000C7FFFFFF (128M used)
> [    3.086487] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
> [    3.093126] [drm] Driver supports precise vblank timestamp query.
> [    3.099291] [drm] radeon: irq initialized.
> [    3.103404] [drm] Detected VRAM RAM=128M, BAR=128M
> [    3.108214] [drm] RAM width 128bits DDR
> [    3.112263] [TTM] Zone  kernel: Available graphics memory: 496682 kiB
> [    3.118732] [TTM] Initializing pool allocator
> [    3.123346] [drm] radeon: 128M of VRAM memory ready
> [    3.128256] [drm] radeon: 256M of GTT memory ready.
> [    3.133295] [drm] radeon: ib pool ready.
> [    3.137708] [drm] radeon: 1 quad pipes, 1 Z pipes initialized.
> [    3.144018] radeon 0000:f0:10.0: WB disabled
> [    3.148326] [drm] fence driver on ring 0 use gpu addr 0x00000000 and 
> cpu addr 0xd000000000066000
> [    3.157474] [drm] Loading R300 Microcode
> [    3.162480] [drm] radeon: ring at 0x0000000000001000
> [    3.167569] [drm] ring test succeeded in 0 usecs
> cpu 0x0: Vector: 200 (Machine Check) at [c000000000d63aa0]
>      pc: c0000000000cc07c: .trace_hardirqs_on_caller+0x6c/0x190
>      lr: c0000000000152f4: .cpu_idle+0x1a4/0x220
>      sp: c000000000d63d20
>     msr: 9000000000009032
>    current = 0xc000000000c4db30
>    paca    = 0xc00000000ffff000   softe: 0        irq_happened: 0x01
>      pid   = 0, comm = swapper/0
> enter ? for help
> [c000000000d63db0] c0000000000152f4 .cpu_idle+0x1a4/0x220
> [c000000000d63e50] c000000000008fb8 .rest_init+0xe8/0x110
> [c000000000d63ee0] c000000000ba2998 .start_kernel+0x3e4/0x408
> [c000000000d63f90] c000000000007558 .start_here_common+0x20/0x48
> 0:mon> x
> [  843.783295] Oops: Machine check, sig: 7 [#1]
> [  843.787589] SMP NR_CPUS=4 Maple
> [  843.790768] Modules linked in:
> [  843.793855] NIP: c0000000000cc07c LR: c0000000000152f4 CTR: 
> c000000000023eac
> [  843.800920] REGS: c000000000d63aa0 TRAP: 0200   Not tainted  (3.4.0+)
> [  843.807376] MSR: 9000000000009032 <SF,HV,EE,ME,IR,DR,RI>  CR: 
> 24222222  XER: 00000006
> [  843.815412] SOFTE: 0
> [  843.817607] TASK = c000000000c4db30[0] 'swapper/0' THREAD: 
> c000000000d60000 CPU: 0
> [  843.825035] GPR00: 0000000000000000 c000000000d63d20 c000000000d63280 
> c0000000000152f4
> [  843.833169] GPR04: 0000000000000000 c000000000099d10 0000000000000001 
> 0000000000000002
> [  843.841302] GPR08: 0100000000000000 c000000000e828e8 0140000000000000 
> 0000000000000000
> [  843.849436] GPR12: 0000000044222282 c00000000ffff000 0000000000000000 
> 0000000000000000
> [  843.857570] GPR16: 0000000000ff8750 0000000000cdc890 00000000010001e0 
> 0000000000000000
> [  843.865702] GPR20: 0000000000000000 0000000000000000 000000001dcd6500 
> 0000000000000000
> [  843.873835] GPR24: 0000000000000000 0000000000ec7b00 9000000000009032 
> c000000000d7b178
> [  843.881979] GPR28: c000000000d7b278 0000000000000008 c000000000c970f8 
> c0000000000152f4
> [  843.890314] NIP [c0000000000cc07c] .trace_hardirqs_on_caller+0x6c/0x190
> [  843.896942] LR [c0000000000152f4] .cpu_idle+0x1a4/0x220
> [  843.902181] Call Trace:
> [  843.904640] [c000000000d63d20] [c000000000d63db0] 
> init_thread_union+0x3db0/0x4000 (unreliable)
> [  843.913317] [c000000000d63db0] [c0000000000152f4] .cpu_idle+0x1a4/0x220
> [  843.919964] [c000000000d63e50] [c000000000008fb8] .rest_init+0xe8/0x110
> [  843.926615] [c000000000d63ee0] [c000000000ba2998] 
> .start_kernel+0x3e4/0x408
> [  843.933611] [c000000000d63f90] [c000000000007558] 
> .start_here_common+0x20/0x48
> [  843.940866] Instruction dump:
> [  843.943868] 40de00a4 e92d01c8 800908e8 2f800000 40de0094 e93e8098 
> 80090000 2f800000
> [  843.951829] 409e0030 880d01f2 2fa00000 40de00b0 <e93e84e8> 88090000 
> 2f800000 40de00c8
> 
> 
> Looking for any suggestions on this.
>