[Nouveau] PA-RISC (hppa) video cards init failure loading the device driver kernel module
John David Anglin
dave.anglin at bell.net
Mon Apr 4 23:05:25 UTC 2016
There is a TLB U bit which when set prevents cache move in. This should be set for
pages which map to the I/O space. I think it should be checked that it is correctly being
set for these cards.
On 2016-04-03, at 11:56 PM, Simone Mannori wrote:
> Dear Ilia,
>
> this page summarize all the possible options of the "nouveau" kernel module:
>
> https://nouveau.freedesktop.org/wiki/KernelModuleParameters/
>
> I will test the options that you have suggested as soon as possible.
>
> Try a PCI video card is a very good advice because the
> AGP/FX1(chipset) is on the top of the "usual suspects" list;
> unfortunately the c8000 has 3.3 PCI slots and all the (very old) PCI
> video cards in my hands have 5V PCI connector
>
> Many thanks for your suggestions and advice.
>
> 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
> --
> To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
John David Anglin dave.anglin at bell.net
More information about the Nouveau
mailing list