git: 5d2d599d3f34 - main - Create VM_MEMATTR_DEVICE on all architectures

Andrew Turner andrew at FreeBSD.org
Mon Apr 12 08:41:07 UTC 2021


The branch main has been updated by andrew:

URL: https://cgit.FreeBSD.org/src/commit/?id=5d2d599d3f3494d813e51e1bcd1c9693eb9c098b

commit 5d2d599d3f3494d813e51e1bcd1c9693eb9c098b
Author:     Andrew Turner <andrew at FreeBSD.org>
AuthorDate: 2021-04-10 07:59:29 +0000
Commit:     Andrew Turner <andrew at FreeBSD.org>
CommitDate: 2021-04-12 06:15:31 +0000

    Create VM_MEMATTR_DEVICE on all architectures
    
    This is intended to be used with memory mapped IO, e.g. from
    bus_space_map with no flags, or pmap_mapdev.
    
    Use this new memory type in the map request configured by
    resource_init_map_request, and in pciconf.
    
    Reviewed by:    kib
    Differential Revision:  https://reviews.freebsd.org/D29692
---
 sys/amd64/include/vm.h     | 1 +
 sys/i386/include/vm.h      | 1 +
 sys/kern/subr_bus.c        | 2 +-
 sys/mips/include/vm.h      | 1 +
 sys/powerpc/include/vm.h   | 2 ++
 usr.sbin/pciconf/pciconf.c | 4 ----
 6 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/sys/amd64/include/vm.h b/sys/amd64/include/vm.h
index 2e9c30da9936..fef7a53ca317 100644
--- a/sys/amd64/include/vm.h
+++ b/sys/amd64/include/vm.h
@@ -43,5 +43,6 @@
 #define	VM_MEMATTR_WEAK_UNCACHEABLE	((vm_memattr_t)PAT_UNCACHED)
 
 #define	VM_MEMATTR_DEFAULT		VM_MEMATTR_WRITE_BACK
+#define	VM_MEMATTR_DEVICE		VM_MEMATTR_UNCACHEABLE
 
 #endif /* !_MACHINE_VM_H_ */
diff --git a/sys/i386/include/vm.h b/sys/i386/include/vm.h
index 2e9c30da9936..fef7a53ca317 100644
--- a/sys/i386/include/vm.h
+++ b/sys/i386/include/vm.h
@@ -43,5 +43,6 @@
 #define	VM_MEMATTR_WEAK_UNCACHEABLE	((vm_memattr_t)PAT_UNCACHED)
 
 #define	VM_MEMATTR_DEFAULT		VM_MEMATTR_WRITE_BACK
+#define	VM_MEMATTR_DEVICE		VM_MEMATTR_UNCACHEABLE
 
 #endif /* !_MACHINE_VM_H_ */
diff --git a/sys/kern/subr_bus.c b/sys/kern/subr_bus.c
index 31975fb8977c..2a8cf00b5700 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -3155,7 +3155,7 @@ resource_init_map_request_impl(struct resource_map_request *args, size_t sz)
 {
 	bzero(args, sz);
 	args->size = sz;
-	args->memattr = VM_MEMATTR_UNCACHEABLE;
+	args->memattr = VM_MEMATTR_DEVICE;
 }
 
 /**
diff --git a/sys/mips/include/vm.h b/sys/mips/include/vm.h
index 06af199db17b..c759d8cfa61e 100644
--- a/sys/mips/include/vm.h
+++ b/sys/mips/include/vm.h
@@ -38,6 +38,7 @@
 #define	VM_MEMATTR_UNCACHEABLE		((vm_memattr_t)MIPS_CCA_UNCACHED)
 #define	VM_MEMATTR_WRITE_BACK		((vm_memattr_t)MIPS_CCA_CACHED)
 #define	VM_MEMATTR_DEFAULT		VM_MEMATTR_WRITE_BACK
+#define	VM_MEMATTR_DEVICE		VM_MEMATTR_UNCACHEABLE
 #ifdef MIPS_CCA_WC
 #define	VM_MEMATTR_WRITE_COMBINING	((vm_memattr_t)MIPS_CCA_WC)
 #endif
diff --git a/sys/powerpc/include/vm.h b/sys/powerpc/include/vm.h
index 3af863509908..692bd8fc2d77 100644
--- a/sys/powerpc/include/vm.h
+++ b/sys/powerpc/include/vm.h
@@ -42,4 +42,6 @@
 #define	VM_MEMATTR_WRITE_THROUGH	0x10
 #define	VM_MEMATTR_PREFETCHABLE		0x20
 
+#define	VM_MEMATTR_DEVICE		VM_MEMATTR_DEFAULT
+
 #endif /* !_MACHINE_VM_H_ */
diff --git a/usr.sbin/pciconf/pciconf.c b/usr.sbin/pciconf/pciconf.c
index 6b54687d7c79..ccc816d5986d 100644
--- a/usr.sbin/pciconf/pciconf.c
+++ b/usr.sbin/pciconf/pciconf.c
@@ -1126,11 +1126,7 @@ dump_bar(const char *name, const char *reg, const char *bar_start,
 	if (*reg == '\0' || *el != '\0')
 		errx(1, "Invalid bar specification %s", reg);
 	pbm.pbm_flags = 0;
-#ifdef VM_MEMATTR_DEVICE
 	pbm.pbm_memattr = VM_MEMATTR_DEVICE;
-#else
-	pbm.pbm_memattr = VM_MEMATTR_UNCACHEABLE;
-#endif
 
 	fd = open(_PATH_DEVPCI, O_RDWR, 0);
 	if (fd < 0)


More information about the dev-commits-src-all mailing list