[Nouveau] PA-RISC (hppa) video cards init failure loading the device driver kernel module

Simone Mannori
Wed, 13 Apr 2016 07:47:09 -0000

Dear Ilia,

unfortunately, I have only bad news to report:

- the nouveau options that you have suggested does not produce the
expected resuls; nouveau.config=NvAGP=0 (I'm using Linux blsw
4.4.0-1-parisc64-smp #1 SMP Debian 4.4.6-1 (2016-03-17) parisc64
GNU/Linux) and nouveau.vram_pushbuf=1 does not fix the issue about
NVIDA AGP init. The error is still there and the video card works in
frame buffer mode only

- I have tried another, more recent, NVIDIA AGP card (NV36GL [Quadro
FX 1100] (rev a1)): this model, with or without options, is not able
to make X11 works.

- I have tried also a PCI video card (ATI 9200), but with this model
the c8000 is not ble to complete the internal diagnostic,so the Linux
boot does not start

> <Cpu0> 0e000e7a00e00000  600601005d441002
CC_IODISC_PCI_DEVICE_CONFIG
> pci_bus_walk line 2878 - bridge aperture too big

then ..... the system boot process STOPs:
<Cpu1> e000108401e00000  0000000000000000  CC_BOOT_BOOT_FAILURE
<Cpu1> 030010d501e00000  0000000000000000  CC_CPU_STOP

The problem is elsewhere. "TTM" module ? I'm perplexed and
confused.

Helge Deller told me that the hppa linux branch does not have a
working kgdb support, therefore my only chance to find and fix this
_very_nasty_ bug is insert some "printk" and hope to be able to find
the source of the issue.

Any idea ?

Thanks in advance for the help

   Simone Mannori - ITALY



On 4 April 2016 at 04:18, Ilia Mirkin <imirkin at alum.mit.edu>
wrote:
> Not sure about the radeon issue, but
>
> "DRM: GPU lockup - switching to software fbcon"
>
> basically means "the CPU isn't able to submit commands, or the GPU
> isn't executing the commands". Basically the GPU can only have so
many
> commands outstanding [well, command buffers], and we hit that limit.
> From what I understand, PA-RISC has a "funny" architecture that
is
> very unlike x86 in terms of memory coherency, and is thus more likely
> to hit issues that don't exist on other architectures. Perhaps you can
> summarize the key points of oddness? Perhaps there's some debug
> "disable caches" mode or something? Also note that nouveau
won't work
> well on an architecture with a non-4K page size. Not sure if that's
> the situation for you.
>
> I see that it's using AGP - there's a high chance that something
> AGP-related is broken - try booting with nouveau.config=NvAGP=0 (or
> nouveau.agpmode=0 for pre-4.3 kernels).
>
> Perhaps it has issues DMA'ing the command buffer from system memory,
> we can try forcing the pushbuf to be in vram - boot with
> nouveau.vram_pushbuf=1 .
>
> If there are PCI slots and you have a PCI video card handy, I'd
> definitely try that too.
>
> Good luck,
>
>   -ilia
>
> On Sun, Apr 3, 2016 at 3:51 AM, Simone Mannori <simone.mannori at
gmail.com> wrote:
>> Dear "nouveau" developers,
>>
>> I know that many very competent guys have already spent a lot of time
>> and efforts on this issue without success. I have started to play with
>> "hppa" two weeks ago and, with the support of the
linux-parisc mailing
>> list people, now I have a - almost fully - working workstation (hp
>> c8000).
>>
>> Everythings work perfectly BUT the video card. No matter the model,
>> type, driver, etc. the results are always the same: a very slow frame
>> buffer mode only.
>>
>> I'm forwarding the results of my investigations with the hope that
>> someone of you will help me to find the right path to fix this issue.
>>
>> Thanks in advance for your help.
>>
>>   Simone Mannori - Italy
>>
>>
//**------------------------------------------------------------------------------------------------------------
>>
>> ---------- Forwarded message ----------
>> From: Simone Mannori <simone.mannori at gmail.com>
>> Date: 3 April 2016 at 09:34
>> Subject: Video cards init failure loading the device driver kernel
module
>> To: John David Anglin <dave.anglin at bell.net>
>> Cc: Helge Deller <deller at gmx.de>, Graham Gower
>> <graham.gower at gmail.com>, linux-parisc <linux-parisc at
vger.kernel.org>
>>
>>
>> Dear All,
>>
>> following you suggestions, now I have an - almost - perfectly working
>> hp c8000 workstation.
>>
>> Mission accomplished? Not exactly: despite a lot of efforts, the video
>> card section is still not fully operative. Let me resume the
>> situation.
>>
>> I'm using a c8000 with two PA-8800 and Debian 8.0, kernel:
>>
>> Linux version 4.4.0-1-parisc64-smp (debian-kernel at lists.debian.org)
>> (gcc version 4.9.3 (GCC) ) #1 SMP Debian 4.4.6-1 (2016-03-17)
>>
>> I have two very different AGP video cards (ATI FireGL T2 and NVIDIA
>> QUADRO MXR) that have the same issue, despite the two complety
>> different drivers ("radeon" and "nouveau"). The
full logs are in
>> bottom of this post. Just to make a long history short:
>>
>> ATI FIRE GL T2 ("radeon")
>> [   47.836000] [drm:r100_ring_test [radeon]] *ERROR* radeon: ring test
>> failed (scratch(0x15E4)=0xCAFEDEAD)
>> [   47.948000] [drm:r100_cp_init [radeon]] *ERROR* radeon: cp isn't
>> working (-22).
>> [   48.036000] radeon 0000:80:00.0: failed initializing CP (-22).
>> [   48.036000] radeon 0000:80:00.0: Disabling GPU acceleration
>>
>> NVIDIA QUADRO MXR ("nouveau")
>> [   54.388000] nouveau 0000:80:00.0: DRM: GPU lockup - switching to
>> software fbcon
>> [   54.684000] nouveau 0000:80:00.0: fb0: nouveaufb frame buffer device
>> [   54.784000] [drm] Initialized nouveau 1.3.1 20120801 for
>> 0000:80:00.0 on minor 0
>>
>> Looking inside the posts on many developers mailing lists, I see that
>> most of the efforts have been focused on the video device drivers init
>> code. I have tried to force the video drivers using the
"modeset"
>> parameter without success. I have tried also to boot without video
>> driver, then load it manually using "modprobe". No way: the
results
>> are the same.
>>
>> "lsmod" tell me that "radeon"/"nouveau"
are used by the "ttm" module
>> and they cannot be removed (despite the "- r --force"
modprobe
>> parameters).
>>
>> Let suppose for a moment that the issue is NOT inside the video driver
>> but in the "ttm" module: something is not fully correct in
the
>> initialization of the ZX1 chipset, therefore the video driver code go
>> crazy because cannot match the video card with the chipset.
>>
>> The only way that I know to investigate this issue is to recompile the
>> kernel with debug support and execute "single
step"/breakpoint the
>> code that initialize the video card and the chipset near the zone of
>> the error message.
>>
>> Question: "What are the deb packages that I need to install to
>> recompile the  4.4.0-1-parisc64-smp kernel (or another kernel version
>> suitable for this investigation) ?
>>
>> Thanks in advance for you help
>>
>>    Simone Mannori - Italy
>>
>>
//**-----------------------------------------------------------------------------------------------------------------
>>
>> ATI FIRE GL T2
>> [   45.460000] [drm] radeon kernel modesetting enabled.
>> [   45.576000] radeon 0000:80:00.0: enabling SERR and PARITY (0107
-> 0147)
>> [   45.660000] [drm] initializing kernel modesetting (RV350
>> 0x1002:0x4154 0x1002:0x0002).
>> [   45.812000] [drm] register mmio base: 0xC8020000
>> [   45.868000] [drm] register mmio size: 65536
>> [   46.084000] radeon 0000:80:00.0: putting AGP V3 device into 8x mode
>> [   46.160000] radeon 0000:80:00.0: GTT: 512M 0x60000000 - 0x7FFFFFFF
>> [   46.236000] [drm] Generation 2 PCI interface, using max accessible
memory
>> [   46.316000] radeon 0000:80:00.0: VRAM: 128M 0xFFFFFFFFC0000000 -
>> 0xFFFFFFFFC7FFFFFF (128M used)
>> [   46.420000] [drm] Detected VRAM RAM=128M, BAR=128M
>> [   46.476000] [drm] RAM width 128bits DDR
>> [   46.524000] [TTM] Zone  kernel: Available graphics memory: 3077188
kiB
>> [   46.604000] [TTM] Zone   dma32: Available graphics memory: 2097152
kiB
>> [   46.680000] [TTM] Initializing pool allocator
>> [   46.732000] [drm] radeon: 128M of VRAM memory ready
>> [   46.792000] [drm] radeon: 512M of GTT memory ready.
>> [   46.852000] [drm] radeon: 1 quad pipes, 1 Z pipes initialized.
>> [   46.944000] radeon 0000:80:00.0: WB disabled
>> [   46.996000] radeon 0000:80:00.0: fence driver on ring 0 use gpu
>> addr 0x0000000060000000 and cpu addr 0x0000000011279000
>> [   47.124000] [drm] Supports vblank timestamp caching Rev 2
(21.10.2013).
>> [   47.204000] [drm] Driver supports precise vblank timestamp query.
>> [   47.276000] [drm] radeon: irq initialized.
>> [   47.328000] [drm] Loading R300 Microcode
>> [   47.468000] radeon 0000:80:00.0: firmware: direct-loading firmware
>> radeon/R300_cp.bin
>> [   47.584000] [drm] radeon: ring at 0x0000000060001000
>> [   47.836000] [drm:r100_ring_test [radeon]] *ERROR* radeon: ring test
>> failed (scratch(0x15E4)=0xCAFEDEAD)
>> [   47.948000] [drm:r100_cp_init [radeon]] *ERROR* radeon: cp isn't
>> working (-22).
>> [   48.036000] radeon 0000:80:00.0: failed initializing CP (-22).
>> [   48.036000] radeon 0000:80:00.0: Disabling GPU acceleration
>> [  OK  ] Found device ST373207LW 2.
>> [   48.236000] [drm:r100_cp_fini [radeon]] *ERROR* Wait for CP idle
>> timeout, shutting down CP.
>> [   48.384000] [drm] radeon: cp finalized
>> [   48.448000] [drm] radeon: cp finalized
>> [   48.496000] [TTM] Finalizing pool allocator
>> [   48.544000] [TTM] Zone  kernel: Used memory at exit: 0 kiB
>> [   48.612000] [TTM] Zone   dma32: Used memory at exit: 0 kiB
>> [   48.676000] [drm] radeon: ttm finalized
>> [   48.724000] [drm] Forcing AGP to PCI mode
>>          Starting File System Check on /d[   48.872000] [drm]
>> Generation 2 PCI interface, using max accessible memory
>> ev/...2-638b-4a0[   48.968000] radeon 0000:80:00.0: VRAM: 128M
>> 0xFFFFFFFFC0000000 - 0xFFFFFFFFC7FFFFFF (128M used)
>> c-be55-7444e126d[   49.088000] radeon 0000:80:00.0: GTT: 512M
>> 0xFFFFFFFFA0000000 - 0xFFFFFFFFBFFFFFFF
>> 283...
>> [   49.196000] [drm] Detected VRAM RAM=128M, BAR=128M
>> [   49.264000] [drm] RAM width 128bits DDR
>> [   49.328000] [TTM] Zone  kernel: Available graphics memory: 3077188
kiB
>> [   49412000] [TTM] Zone   dma32: Available graphics memory: 2097152
kiB
>> [   49.492000] [TTM] Initializing pool allocator
>> [   49.492000] [drm] radeon: 128M of VRAM memory ready
>> [   49.492000] [drm] radeon: 512M of GTT memory ready.
>> [   49.492000] [drm] GART: num cpu pages 131072, num gpu pages 131072
>> [   49.636000] [drm] radeon: 1 quad pipes, 1 Z pipes initialized.
>> [   49.636000] [drm] PCI GART of 512M enabled (table at
0x0000000043300000).
>> [   49.636000] radeon 0000:80:00.0: WB enabled
>> [   49.636000] radeon 0000:80:00.0: fence driver on ring 0 use gpu
>> addr 0xffffffffa0000000 and cpu addr 0x000000007d239000
>> [   49.636000] [drm] Supports vblank timestamp caching Rev 2
(21.10.2013).
>> [   49.636000] [drm] Driver supports precise vblank timestamp query.
>> [   49.636000] [drm] radeon: irq initialized.
>> [   49.780000] [drm] radeon: ring at 0xFFFFFFFFA0001000
>> [   49.972000] [drm:r100_ring_test [radeon]] *ERROR* radeon: ring test
>> failed (scratch(0x15E4)=0xCAFEDEAD)
>> [   49.976000] [drm:r100_cp_init [radeon]] *ERROR* radeon: cp isn't
>> working (-22).
>> [   49.976000] radeon 0000:80:00.0: failed initializing CP (-22).
>> [   49.976000] radeon 0000:80:00.0: Disabling GPU acceleration
>> [   50.168000] [drm:r100_cp_fini [radeon]] *ERROR* Wait for CP idle
>> timeout, shutting down CP.
>> [   50.280000] [drm] radeon: cp finalized
>> [   50.592000] [drm] Radeon Display Connectors
>> [   50.592000] [drm] Connector 0:
>> [   50.592000] [drm]   VGA-1
>> [   50.592000] [drm]   DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
>> [   50.592000] [drm]   Encoders:
>> [   50.592000] [drm]     CRT1: INTERNAL_DAC1
>> [   50.592000] [drm] Connector 1:
>> [   50.592000] [drm]   DVI-I-1
>> [   50.592000] [drm]   HPD1
>> [   50.592000] [drm]   DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
>> [   50.592000] [drm]   Encoders:
>> [   50.592000] [drm]     CRT2: INTERNAL_DAC2
>> [   50.592000] [drm]     DFP1: INTERNAL_TMDS1
>> [   50.608000] radeon 0000:80:00.0: No connectors reported connected
with modes
>> [   50.608000] [drm] Cannot find any crtc or sizes - going 1024x768
>> [   50.828000] [drm] fb mappable at 0xFFFFFFFFC0040000
>> [   50.828000] [drm] vram apper at 0xFFFFFFFFC0000000
>> [   50.828000] [drm] size 3145728
>> [   50.828000] [drm] fb depth is 24
>> [   50.828000] [drm]    pitch is 4096
>> [   51.848000] Console: switching to colour frame buffer device 128x48
>> [   52.080000] radeon 0000:80:00.0: fb0: radeondrmfb frame buffer
device
>> [   52172000] [drm] Initialized radeon 2.43.0 20080528 for
>> 0000:80:00.0 on minor 0
>>
>> NVIDIA QUADRO MXR
>> [   51.880000] nouveau 0000:80:00.0: enabling SERR and PARITY (0007
-> 0147)
>> [   52.044000] nouveau 0000:80:00.0: NVIDIA NV11 (011300a1)
>> [   52.364000] nouveau 0000:80:00.0: bios: version 03.11.01.24.00
>> [   52.488000] nouveau 0000:80:00.0: putting AGP V2 device into 4x mode
>> [   52.592000] nouveau 0000:80:00.0: putting AGP V2 device into 4x mode
>> [   52.668000] nouveau 0000:80:00.0: tmr: unknown input clock freq
>> [   52.740000] nouveau 0000:80:00.0: fb: 32 MiB SDRAM
>> [   52.844000] [TTM] Zone  kernel: Available graphics memory: 3077188
kiB
>> [   52.920000] [TTM] Zone   dma32: Available graphics memory: 2097152
kiB
>> [   52.920000] [TTM] Initializing pool allocator
>> [   52.928000] nouveau 0000:80:00.0: DRM: VRAM: 31 MiB
>> [   52.928000] nouveau 0000:80:00.0: DRM: GART: 512 MiB
>> [   52.928000] nouveau 0000:80:00.0: DRM: BMP version 5.20
>> [   52.928000] nouveau 0000:80:00.0: DRM: No useful DCB data in VBIOS
>> [   52.928000] nouveau 0000:80:00.0: DRM: Adaptor not initialised,
>> running VBIOS init tables.
>> [   53.016000] nouveau 0000:80:00.0: DRM: Saving VGA fonts
>> [   53.336000] nouveau 0000:80:00.0: DRM: No useful DCB data in VBIOS
>> [   53.336000] [drm] Supports vblank timestamp caching Rev 2
(21.10.2013).
>> [   53.336000] [drm] Driver supports precise vblank timestamp query.
>> [   53.336000] nouveau 0000:80:00.0: DRM: 0xABA2: Parsing digital
>> output script table
>> [   53.920000] nouveau 0000:80:00.0: DRM: MM: using M2MF for buffer
copies
>> [   54.144000] nouveau 0000:80:00.0: DRM: allocated 1920x1200 fb:
>> 0x8000, bo 000000007cee1000
>> [   54.276000] nouveau 0000:80:00.0: DRM: 0xABCE: Parsing digital
>> output script table
>> [   54.312000] Console: switching to colour frame buffer device 240x75
>> [   54.388000] nouveau 0000:80:00.0: DRM: GPU lockup - switching to
>> software fbcon
>> [   54.684000] nouveau 0000:80:00.0: fb0: nouveaufb frame buffer device
>> [   54.784000] [drm] Initialized nouveau 1.3.1 20120801 for
>> 0000:80:00.0 on minor 0
>> _______________________________________________
>> Nouveau mailing list
>> Nouveau at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/nouveau