[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f0ab7c55-c104-241e-99d1-8247b2c567d1@kernel.org>
Date: Fri, 3 Aug 2018 13:32:10 -0400
From: Sinan Kaya <okaya@...nel.org>
To: Mikulas Patocka <mpatocka@...hat.com>,
Will Deacon <will.deacon@....com>,
Jingoo Han <jingoohan1@...il.com>,
Joao Pinto <Joao.Pinto@...opsys.com>
Cc: Ard Biesheuvel <ard.biesheuvel@...aro.org>,
Matt Sealey <neko@...uhatsu.net>,
Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>,
libc-alpha@...rceware.org,
Catalin Marinas <catalin.marinas@....com>,
Russell King <linux@...linux.org.uk>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-arm-kernel <linux-arm-kernel@...ts.infradead.org>,
linux-pci@...r.kernel.org
Subject: Re: framebuffer corruption due to overlapping stp instructions on
arm64
On 8/3/2018 1:09 PM, Mikulas Patocka wrote:
>>> Most accelerated graphics drivers rely heavily on the ability to map
>>> the VRAM normal-non-cacheable (ioremap_wc, basically), and treat it as
>>> ordinary memory.
>> Yeah, I'd expect framebuffers to be mapped as normal NC. That should be
>> fine for prefetchable BARs, no?
>>
>> Will
> So - why does it corrupt data then? I've created this program that
> reproduces the data corruption quicky. If I run it on /dev/fb0, I get an
> instant failure. Sometimes a few bytes are not written, sometimes a few
> bytes are written with a value that should be 16 bytes apart.
>
> I tried to run it on system RAM mapped with the NC attribute and I didn't
> get any corruption - that suggests the the bug may be in the PCIE
> subsystem.
Note that normal-NC gives you write combining whereas device
nGnRE doesn't have any write-combining support.
normal-NC is typically mapped to prefetchable BAR space where
write-combining is welcome.
It could be an issue on the SOC itself too. I suggest you contact your
board vendor.
Powered by blists - more mailing lists