Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 05 Dec 2016 08:38:43 -0800
From:      John Baldwin <jhb@freebsd.org>
To:        Ian Lepore <ian@freebsd.org>
Cc:        Michal Meloun <mmel@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r309531 - head/sys/arm/include
Message-ID:  <1919253.AMxT3OP8Q2@ralph.baldwin.cx>
In-Reply-To: <1480892114.1889.243.camel@freebsd.org>
References:  <201612041527.uB4FRduc064051@repo.freebsd.org> <1605461.LLfnXX4YB2@ralph.baldwin.cx> <1480892114.1889.243.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday, December 04, 2016 03:55:14 PM Ian Lepore wrote:
> On Sun, 2016-12-04 at 13:43 -0800, John Baldwin wrote:
> > On Sunday, December 04, 2016 03:27:39 PM Michal Meloun wrote:
> > > 
> > > Author: mmel
> > > Date: Sun Dec  4 15:27:39 2016
> > > New Revision: 309531
> > > URL: https://svnweb.freebsd.org/changeset/base/309531
> > > 
> > > Log:
> > >   Implement fake pmap_mapdev_attr() for ARMv6.
> > >   This function is referenced, but never called from DRM2 code.
> > > Also,
> > >   real behavior of pmap_mapdev_attr() in ARM world is unclear as we
> > > don't
> > >   have any additional attribute for a device memory type.
> > You have VM_MEMATTR constants on ARM though.  Some devices might want
> > a
> > WB mapping (e.g. for a prefetchable memory BAR) rather than UC.
> > 
> 
> On ARM, 'DEVICE' memory is its own type/attribute and it can't usefully
> be changed (if you were to change it, it would no longer be device
> memory, it would be some other type).  If this function is being used
> to map main memory just because that memory happens to be used in some
> device driver, then that's a usage model that just doesn't map usefully
> to arm memory semantics.

Ah, no.  It is used for things like BARs, etc.  It is fine if devices are
always mapped uncacheable.  The requests for write-combining are performance
hints, but devices should still function correctly.  For example, on i386
without PAT we will map WC requests to UC.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1919253.AMxT3OP8Q2>