Skip to content

Instantly share code, notes, and snippets.

@tsutsui
Created November 26, 2025 16:46
Show Gist options
  • Select an option

  • Save tsutsui/91276d5fb62a881b594d8bc9f71c9047 to your computer and use it in GitHub Desktop.

Select an option

Save tsutsui/91276d5fb62a881b594d8bc9f71c9047 to your computer and use it in GitHub Desktop.
NetBSD/m68k 11.99.4 (20251126) new pmap patch for 040 (and nono 1.6.2)
Index: pmap_68k.c
===================================================================
RCS file: /cvsroot/src/sys/arch/m68k/m68k/pmap_68k.c,v
retrieving revision 1.29
diff -u -p -d -r1.29 pmap_68k.c
--- pmap_68k.c 24 Nov 2025 21:56:19 -0000 1.29
+++ pmap_68k.c 26 Nov 2025 16:44:43 -0000
@@ -1600,8 +1600,10 @@ pmap_pv_pte(struct pv_entry * const pv)
* the storage for the new PV entry.
*
* We are responsible for storing the new PTE into the destination
- * table. We are also guaranteed that no mapping exists there, so
- * no ATC invlidation for the new mapping is required.
+ * table. We are also guaranteed that no mapping exists there, but
+ * at least 851/030 ATC has "negative" entry which could cause a
+ * bus error without table search, so explicit ATC invlidation for
+ * the new mapping is also required.
*/
static void
pmap_pv_enter(pmap_t pmap, struct vm_page *pg, vaddr_t va,
@@ -1651,6 +1653,11 @@ pmap_pv_enter(pmap_t pmap, struct vm_pag
}
#endif
+ /* XXX debug 040 */
+ if (active_pmap(pmap)) {
+ TBIS(va);
+ }
+
/*
* If the page is marked as being cache-inhibited, it means
* there is at least one user-requested CI mapping already
@@ -2680,6 +2687,11 @@ pmap_enter(pmap_t pmap, vaddr_t va, padd
* will also set the PTE in the table.
*/
pmap_pv_enter(pmap, pg, va, pt, npte, newpv);
+ /* XXX debug 040 */
+ if (MMU_IS_68040_CLASS) {
+ DCFP(pa);
+ ICPP(pa);
+ }
/*
* The new mapping takes ownership of the PT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment