1- /* $NetBSD: pmap_68k.c,v 1.44 2025/12/01 17:47:13 thorpej Exp $ */
1+ /* $NetBSD: pmap_68k.c,v 1.45 2025/12/02 02:53:08 thorpej Exp $ */
22
33/*-
44 * Copyright (c) 2025 The NetBSD Foundation, Inc.
218218#include "opt_m68k_arch.h"
219219
220220#include <sys/cdefs.h>
221- __KERNEL_RCSID (0 , "$NetBSD: pmap_68k.c,v 1.44 2025/12/01 17:47:13 thorpej Exp $" );
221+ __KERNEL_RCSID (0 , "$NetBSD: pmap_68k.c,v 1.45 2025/12/02 02:53:08 thorpej Exp $" );
222222
223223#include <sys/param.h>
224224#include <sys/systm.h>
@@ -4023,8 +4023,6 @@ pmap_bootstrap1(paddr_t nextpa, paddr_t reloff)
40234023 */
40244024#ifndef PMAP_BOOTSTRAP_TEXT_PROTO_PTE
40254025#define PMAP_BOOTSTRAP_TEXT_PROTO_PTE proto_ro_pte
4026- #else
4027- __USE (proto_ro_pte );
40284026#endif
40294027 pa = PMAP_BOOTSTRAP_VA_TO_PA (m68k_trunc_page (& kernel_text ));
40304028 pte = VA_PTE_BASE (& kernel_text , var );
@@ -4085,6 +4083,8 @@ pmap_bootstrap1(paddr_t nextpa, paddr_t reloff)
40854083 pmbm = (const struct pmap_bootmap * )
40864084 PMAP_BOOTSTRAP_RELOC_GLOB (machine_bootmap );
40874085 for (; pmbm -> pmbm_vaddr != (vaddr_t )- 1 ; pmbm ++ ) {
4086+ pt_entry_t proto ;
4087+
40884088 if (pmbm -> pmbm_size == 0 ||
40894089 (pmbm -> pmbm_flags & (PMBM_F_VAONLY | PMBM_F_KEEPOUT ))) {
40904090 continue ;
@@ -4103,8 +4103,20 @@ pmap_bootstrap1(paddr_t nextpa, paddr_t reloff)
41034103 }
41044104 pa = pmbm -> pmbm_paddr ;
41054105 pte = VA_PTE_BASE (va , var );
4106- pt_entry_t proto = (pmbm -> pmbm_flags & PMBM_F_CI ) ?
4107- proto_rw_ci_pte : proto_rw_pte ;
4106+ switch (pmbm -> pmbm_flags & (PMBM_F_CI |PMBM_F_RO )) {
4107+ case PMBM_F_CI |PMBM_F_RO :
4108+ proto = proto_rw_ci_pte | PTE_WP ;
4109+ break ;
4110+ case PMBM_F_CI :
4111+ proto = proto_rw_ci_pte ;
4112+ break ;
4113+ case PMBM_F_RO :
4114+ proto = proto_ro_pte ;
4115+ break ;
4116+ default :
4117+ proto = proto_rw_pte ;
4118+ break ;
4119+ }
41084120 for (vsize_t size = m68k_round_page (pmbm -> pmbm_size );
41094121 size != 0 ;
41104122 va += PAGE_SIZE , pa += PAGE_SIZE , size -= PAGE_SIZE ) {
0 commit comments