freebsd-dev/sys/powerpc
Justin Hibbits 0f7aeab0e7 Implement pmap_change_attr() for PowerPC (Book-E only for now)
Summary:
Some drivers need special memory requirements.  X86 solves this with a
pmap_change_attr() API, which DRM uses for changing the mapping of the GART and
other memory regions.  Implement the same function for PowerPC.  AIM currently
does not need this, but will in the future for DRM, so a default is added for
that, for business as usual.  Book-E has some drivers coming down that do
require non-default memory coherency.  In this case, the Datapath Acceleration
Architecture (DPAA) based ethernet controller has 2 regions for the buffer
portals: cache-inhibited, and cache-enabled.  By default, device memory is
cache-inhibited.  If the cache-enabled memory regions are mapped
cache-inhibited, an alignment exception is thrown on access.

Test Plan:
Tested with a new driver to be added after this (DPAA dTSEC ethernet driver).
No alignment exceptions thrown, driver works as expected with this.

Reviewed By:	nwhitehorn
Sponsored by:	Alex Perez/Inertial Computing
Differential Revision: https://reviews.freebsd.org/D5471
2016-02-27 20:39:36 +00:00
..
aim As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
booke Implement pmap_change_attr() for PowerPC (Book-E only for now) 2016-02-27 20:39:36 +00:00
conf Enable PRINTF_BUFR_SIZE on powerpc64, following r194204 on x86. The kernel 2015-12-18 14:35:27 +00:00
cpufreq Some style(9) fixes 2013-12-13 05:54:25 +00:00
fpu Fix build of powerpc FPU emulator after changes in r295132 to restore the 2016-02-04 17:43:56 +00:00
include Implement pmap_change_attr() for PowerPC (Book-E only for now) 2016-02-27 20:39:36 +00:00
mambo CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
mikrotik Create a RouterBoard platform and use it to create a flash map 2015-08-22 05:50:18 +00:00
mpc85xx Move another range check to use RMAN_IS_DEFAULT_RANGE(). 2016-02-27 16:27:48 +00:00
ofw As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
powermac As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
powerpc Implement pmap_change_attr() for PowerPC (Book-E only for now) 2016-02-27 20:39:36 +00:00
ps3 As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
pseries As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00
psim As <machine/pmap.h> is included from <vm/pmap.h>, there is no need to 2016-02-22 09:02:20 +00:00