Module Name: src Committed By: jmcneill Date: Mon Apr 9 22:26:16 UTC 2018
Modified Files: src/sys/arch/aarch64/aarch64: bus_space.c src/sys/arch/aarch64/include: pmap.h Log Message: Fix encoding of MMAP flags for generic_bs_mmap To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/aarch64/aarch64/bus_space.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/aarch64/include/pmap.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/aarch64/bus_space.c diff -u src/sys/arch/aarch64/aarch64/bus_space.c:1.2 src/sys/arch/aarch64/aarch64/bus_space.c:1.3 --- src/sys/arch/aarch64/aarch64/bus_space.c:1.2 Sun Apr 1 04:35:03 2018 +++ src/sys/arch/aarch64/aarch64/bus_space.c Mon Apr 9 22:26:15 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: bus_space.c,v 1.2 2018/04/01 04:35:03 ryo Exp $ */ +/* $NetBSD: bus_space.c,v 1.3 2018/04/09 22:26:15 jmcneill Exp $ */ /* * Copyright (c) 2017 Ryo Shimizu <r...@nerv.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: bus_space.c,v 1.2 2018/04/01 04:35:03 ryo Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bus_space.c,v 1.3 2018/04/09 22:26:15 jmcneill Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -615,8 +615,12 @@ generic_bs_mmap(void *t, bus_addr_t bpa, { paddr_t bus_flags = 0; - if ((flags & (BUS_SPACE_MAP_CACHEABLE|BUS_SPACE_MAP_PREFETCHABLE)) != 0) - bus_flags |= AARCH64_MMAP_WRITEBACK; + if ((flags & BUS_SPACE_MAP_CACHEABLE) != 0) + bus_flags |= (AARCH64_MMAP_WRITEBACK << AARCH64_MMAP_FLAG_SHIFT); + else if ((flags & BUS_SPACE_MAP_PREFETCHABLE) != 0) + bus_flags |= (AARCH64_MMAP_WRITECOMBINE << AARCH64_MMAP_FLAG_SHIFT); + else + bus_flags |= (AARCH64_MMAP_DEVICE << AARCH64_MMAP_FLAG_SHIFT); return (atop(bpa + (offset << ((struct bus_space *)t)->bs_stride)) | bus_flags); Index: src/sys/arch/aarch64/include/pmap.h diff -u src/sys/arch/aarch64/include/pmap.h:1.2 src/sys/arch/aarch64/include/pmap.h:1.3 --- src/sys/arch/aarch64/include/pmap.h:1.2 Sun Apr 1 04:35:03 2018 +++ src/sys/arch/aarch64/include/pmap.h Mon Apr 9 22:26:16 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.2 2018/04/01 04:35:03 ryo Exp $ */ +/* $NetBSD: pmap.h,v 1.3 2018/04/09 22:26:16 jmcneill Exp $ */ /*- * Copyright (c) 2014 The NetBSD Foundation, Inc. @@ -150,10 +150,10 @@ paddr_t pmap_devmap_vtophys(paddr_t); /* mmap cookie and flags */ #define AARCH64_MMAP_FLAG_SHIFT (64 - PGSHIFT) #define AARCH64_MMAP_FLAG_MASK 0xf -#define AARCH64_MMAP_WRITEBACK 0 -#define AARCH64_MMAP_NOCACHE 1 -#define AARCH64_MMAP_WRITECOMBINE 2 -#define AARCH64_MMAP_DEVICE 3 +#define AARCH64_MMAP_WRITEBACK 0UL +#define AARCH64_MMAP_NOCACHE 1UL +#define AARCH64_MMAP_WRITECOMBINE 2UL +#define AARCH64_MMAP_DEVICE 3UL #define ARM_MMAP_WRITECOMBINE AARCH64_MMAP_WRITECOMBINE #define ARM_MMAP_WRITEBACK AARCH64_MMAP_WRITEBACK