aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Turner <andrew@FreeBSD.org>2021-04-10 07:59:29 +0000
committerAndrew Turner <andrew@FreeBSD.org>2021-06-13 15:49:36 +0000
commitade8b810b02fd6f7ab9e68afa18e3d34c7a1c1a8 (patch)
treecf2edbd1c354dc963c02a720aa3609356c52a2aa
parent2a8921c5d187a2c3f1b709cc77c839568ede0b8d (diff)
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 (cherry picked from commit 5d2d599d3f3494d813e51e1bcd1c9693eb9c098b)
-rw-r--r--sys/amd64/include/vm.h1
-rw-r--r--sys/i386/include/vm.h1
-rw-r--r--sys/kern/subr_bus.c2
-rw-r--r--sys/mips/include/vm.h1
-rw-r--r--sys/powerpc/include/vm.h2
-rw-r--r--usr.sbin/pciconf/pciconf.c4
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 6d5607337ef6..f0198a0e1fa3 100644
--- a/sys/kern/subr_bus.c
+++ b/sys/kern/subr_bus.c
@@ -3117,7 +3117,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)