While working on drm support for macppc that makes use of non-cached
memory I found that some platforms (amd64, i386, powerpc) use the MD
PMAP_NOCACHE flag where others (sparc, sparc64, solbourne) use PMAP_NC
for the same purpose.
Because I'd like to use this flag in the drm code and for coherency
the diff below rename PMAP_NOCACHE into PMAP_NC.
Tested on macppc and amd64, ok?
Index: amd64/amd64/bus_dma.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/bus_dma.c,v
retrieving revision 1.38
diff -u -p -r1.38 bus_dma.c
--- amd64/amd64/bus_dma.c 3 Jul 2011 18:31:02 -0000 1.38
+++ amd64/amd64/bus_dma.c 27 Nov 2012 09:38:11 -0000
@@ -476,7 +476,7 @@ _bus_dmamem_map(bus_dma_tag_t t, bus_dma
}
if (flags & BUS_DMA_NOCACHE)
- pmapflags |= PMAP_NOCACHE;
+ pmapflags |= PMAP_NC;
size = round_page(size);
va = uvm_km_valloc(kernel_map, size);
Index: amd64/amd64/bus_space.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/bus_space.c,v
retrieving revision 1.20
diff -u -p -r1.20 bus_space.c
--- amd64/amd64/bus_space.c 23 May 2012 08:23:43 -0000 1.20
+++ amd64/amd64/bus_space.c 27 Nov 2012 09:38:11 -0000
@@ -241,7 +241,7 @@ x86_mem_add_mapping(bus_addr_t bpa, bus_
paddr_t pa, endpa;
vaddr_t va;
bus_size_t map_size;
- int pmap_flags = PMAP_NOCACHE;
+ int pmap_flags = PMAP_NC;
pa = trunc_page(bpa);
endpa = round_page(bpa + size);
Index: amd64/amd64/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/pmap.c,v
retrieving revision 1.63
diff -u -p -r1.63 pmap.c
--- amd64/amd64/pmap.c 17 May 2011 18:06:13 -0000 1.63
+++ amd64/amd64/pmap.c 27 Nov 2012 09:38:11 -0000
@@ -441,7 +441,7 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v
pte = kvtopte(va);
npte = (pa & PMAP_PA_MASK) | ((prot & VM_PROT_WRITE) ? PG_RW : PG_RO) |
- ((pa & PMAP_NOCACHE) ? PG_N : 0) |
+ ((pa & PMAP_NC) ? PG_N : 0) |
((pa & PMAP_WC) ? pmap_pg_wc : 0) | PG_V;
/* special 1:1 mappings in the first 2MB must not be global */
@@ -457,7 +457,7 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v
panic("pmap_kenter_pa: PG_PS");
#endif
if (pmap_valid_entry(opte)) {
- if (pa & PMAP_NOCACHE && (opte & PG_N) == 0)
+ if (pa & PMAP_NC && (opte & PG_N) == 0)
wbinvd();
/* This shouldn't happen */
pmap_tlb_shootpage(pmap_kernel(), va);
@@ -1946,7 +1946,7 @@ pmap_enter(struct pmap *pmap, vaddr_t va
struct pv_entry *pve = NULL;
int ptpdelta, wireddelta, resdelta;
boolean_t wired = (flags & PMAP_WIRED) != 0;
- boolean_t nocache = (pa & PMAP_NOCACHE) != 0;
+ boolean_t nocache = (pa & PMAP_NC) != 0;
boolean_t wc = (pa & PMAP_WC) != 0;
int error;
Index: amd64/include/pmap.h
===================================================================
RCS file: /cvs/src/sys/arch/amd64/include/pmap.h,v
retrieving revision 1.39
diff -u -p -r1.39 pmap.h
--- amd64/include/pmap.h 30 Jun 2011 22:18:01 -0000 1.39
+++ amd64/include/pmap.h 27 Nov 2012 09:42:29 -0000
@@ -325,7 +325,7 @@ struct pmap {
* MD flags that we use for pmap_enter (in the pa):
*/
#define PMAP_PA_MASK ~((paddr_t)PAGE_MASK) /* to remove the flags */
-#define PMAP_NOCACHE 0x1 /* set the non-cacheable bit. */
+#define PMAP_NC 0x1 /* set the non-cacheable bit. */
#define PMAP_WC 0x2 /* set page write combining. */
/*
Index: i386/i386/bus_dma.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/bus_dma.c,v
retrieving revision 1.25
diff -u -p -r1.25 bus_dma.c
--- i386/i386/bus_dma.c 23 Jun 2011 20:44:39 -0000 1.25
+++ i386/i386/bus_dma.c 27 Nov 2012 09:38:11 -0000
@@ -431,7 +431,7 @@ _bus_dmamem_map(bus_dma_tag_t t, bus_dma
int curseg, pmapflags = 0, ret;
if (flags & BUS_DMA_NOCACHE)
- pmapflags |= PMAP_NOCACHE;
+ pmapflags |= PMAP_NC;
size = round_page(size);
va = uvm_km_valloc(kernel_map, size);
Index: i386/i386/machdep.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/machdep.c,v
retrieving revision 1.517
diff -u -p -r1.517 machdep.c
--- i386/i386/machdep.c 10 Nov 2012 09:45:05 -0000 1.517
+++ i386/i386/machdep.c 27 Nov 2012 09:38:11 -0000
@@ -3710,7 +3710,7 @@ bus_mem_add_mapping(bus_addr_t bpa, bus_
paddr_t pa, endpa;
vaddr_t va;
bus_size_t map_size;
- int pmap_flags = PMAP_NOCACHE;
+ int pmap_flags = PMAP_NC;
pa = trunc_page(bpa);
endpa = round_page(bpa + size);
Index: i386/i386/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/pmap.c,v
retrieving revision 1.157
diff -u -p -r1.157 pmap.c
--- i386/i386/pmap.c 9 Mar 2012 13:01:28 -0000 1.157
+++ i386/i386/pmap.c 27 Nov 2012 09:38:11 -0000
@@ -683,7 +683,7 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v
pte = vtopte(va);
npte = (pa & PMAP_PA_MASK) | ((prot & VM_PROT_WRITE)? PG_RW : PG_RO) |
- PG_V | PG_U | PG_M | ((pa & PMAP_NOCACHE) ? PG_N : 0) |
+ PG_V | PG_U | PG_M | ((pa & PMAP_NC) ? PG_N : 0) |
((pa & PMAP_WC) ? pmap_pg_wc : 0);
/* special 1:1 mappings in the first 4MB must not be global */
@@ -692,7 +692,7 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v
opte = i386_atomic_testset_ul(pte, npte);
if (pmap_valid_entry(opte)) {
- if (pa & PMAP_NOCACHE && (opte & PG_N) == 0)
+ if (pa & PMAP_NC && (opte & PG_N) == 0)
wbinvd();
/* NB. - this should not happen. */
pmap_tlb_shootpage(pmap_kernel(), va);
@@ -2413,7 +2413,7 @@ pmap_enter(struct pmap *pmap, vaddr_t va
struct vm_page *ptp;
struct pv_entry *pve = NULL, *freepve;
boolean_t wired = (flags & PMAP_WIRED) != 0;
- boolean_t nocache = (pa & PMAP_NOCACHE) != 0;
+ boolean_t nocache = (pa & PMAP_NC) != 0;
boolean_t wc = (pa & PMAP_WC) != 0;
struct vm_page *pg = NULL;
int error, wired_count, resident_count, ptp_count;
Index: i386/include/pmap.h
===================================================================
RCS file: /cvs/src/sys/arch/i386/include/pmap.h,v
retrieving revision 1.59
diff -u -p -r1.59 pmap.h
--- i386/include/pmap.h 25 Jun 2011 19:20:41 -0000 1.59
+++ i386/include/pmap.h 27 Nov 2012 09:42:08 -0000
@@ -296,7 +296,7 @@ struct pv_entry { /* locked by its lis
/* to get just the pa from params to pmap_enter */
#define PMAP_PA_MASK ~((paddr_t)PAGE_MASK)
-#define PMAP_NOCACHE 0x1 /* map uncached */
+#define PMAP_NC 0x1 /* map uncached */
#define PMAP_WC 0x2 /* map write combining. */
/*
Index: macppc/macppc/dma.c
===================================================================
RCS file: /cvs/src/sys/arch/macppc/macppc/dma.c,v
retrieving revision 1.36
diff -u -p -r1.36 dma.c
--- macppc/macppc/dma.c 30 Aug 2012 18:14:26 -0000 1.36
+++ macppc/macppc/dma.c 27 Nov 2012 09:38:11 -0000
@@ -465,7 +465,7 @@ _dmamem_map(bus_dma_tag_t t, bus_dma_seg
int curseg, pmapflags = 0, error;
if (flags & BUS_DMA_NOCACHE)
- pmapflags |= PMAP_NOCACHE;
+ pmapflags |= PMAP_NC;
size = round_page(size);
va = uvm_km_valloc(kernel_map, size);
Index: powerpc/include/pmap.h
===================================================================
RCS file: /cvs/src/sys/arch/powerpc/include/pmap.h,v
retrieving revision 1.48
diff -u -p -r1.48 pmap.h
--- powerpc/include/pmap.h 30 Aug 2012 18:14:26 -0000 1.48
+++ powerpc/include/pmap.h 27 Nov 2012 09:38:11 -0000
@@ -151,7 +151,7 @@ int reserve_dumppages(caddr_t p);
/* to get just the pa from params to pmap_enter */
#define PMAP_PA_MASK ~((paddr_t)PAGE_MASK)
-#define PMAP_NOCACHE 0x1 /* map uncached */
+#define PMAP_NC 0x1 /* map uncached */
#endif /* _KERNEL */
#endif /* _LOCORE */
Index: powerpc/powerpc/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/powerpc/powerpc/pmap.c,v
retrieving revision 1.119
diff -u -p -r1.119 pmap.c
--- powerpc/powerpc/pmap.c 30 Aug 2012 18:14:26 -0000 1.119
+++ powerpc/powerpc/pmap.c 27 Nov 2012 09:38:11 -0000
@@ -545,7 +545,7 @@ pmap_enter(pmap_t pm, vaddr_t va, paddr_
{
struct pte_desc *pted;
struct vm_page *pg;
- boolean_t nocache = (pa & PMAP_NOCACHE) != 0;
+ boolean_t nocache = (pa & PMAP_NC) != 0;
int s;
int need_sync = 0;
int cache;