Skip to content

Commit a21a1fe

Browse files
committed
bus_mem_add_mapping(): Rather than directly fiddling with PTEs, just
pass the appropriate flags to pmap_kenter_pa().
1 parent 9947137 commit a21a1fe

1 file changed

Lines changed: 8 additions & 11 deletions

File tree

sys/arch/mac68k/mac68k/bus_space.c

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* $NetBSD: bus_space.c,v 1.32 2013/10/19 19:08:39 martin Exp $ */
1+
/* $NetBSD: bus_space.c,v 1.33 2025/12/02 02:23:21 thorpej Exp $ */
22

33
/*-
44
* Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
3535
*/
3636

3737
#include <sys/cdefs.h>
38-
__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.32 2013/10/19 19:08:39 martin Exp $");
38+
__KERNEL_RCSID(0, "$NetBSD: bus_space.c,v 1.33 2025/12/02 02:23:21 thorpej Exp $");
3939

4040
#include <sys/param.h>
4141
#include <sys/systm.h>
@@ -59,7 +59,6 @@ bus_mem_add_mapping(bus_addr_t bpa, bus_size_t size, int flags,
5959
{
6060
u_long pa, endpa;
6161
vaddr_t va;
62-
pt_entry_t *pte;
6362

6463
pa = m68k_trunc_page(bpa);
6564
endpa = m68k_round_page((bpa + size) - 1);
@@ -120,15 +119,13 @@ bus_mem_add_mapping(bus_addr_t bpa, bus_size_t size, int flags,
120119
hp->bssr2 = mac68k_bssr2;
121120
hp->bssr4 = mac68k_bssr4;
122121

122+
const int pmap_flags =
123+
(flags & BUS_SPACE_MAP_CACHEABLE) ? PMAP_WIRED
124+
: (PMAP_WIRED | PMAP_NOCACHE);
125+
123126
for (; pa < endpa; pa += PAGE_SIZE, va += PAGE_SIZE) {
124-
pmap_enter(pmap_kernel(), va, pa,
125-
VM_PROT_READ | VM_PROT_WRITE, PMAP_WIRED);
126-
pte = kvtopte(va);
127-
if ((flags & BUS_SPACE_MAP_CACHEABLE))
128-
*pte &= ~PG_CI;
129-
else
130-
*pte |= PG_CI;
131-
TBIS(va);
127+
pmap_kenter_pa(va, pa, VM_PROT_READ | VM_PROT_WRITE,
128+
pmap_flags);
132129
}
133130
pmap_update(pmap_kernel());
134131

0 commit comments

Comments
 (0)