If you use UEFI boot, have EFIRT compiled in kernel (the case of
GENERIC) or pre-loaded as module, and efirt is not disabled by a tunable,
and the machine resets during kernel initialization, try this.

diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index d5d795ab502..c9334eab916 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -1188,7 +1188,7 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
                        kernel_pmap->pm_pcids[i].pm_pcid = PMAP_PCID_KERN;
                        kernel_pmap->pm_pcids[i].pm_gen = 1;
                }
-               PCPU_SET(pcid_next, PMAP_PCID_KERN + 1);
+               PCPU_SET(pcid_next, PMAP_PCID_KERN + 2);
                PCPU_SET(pcid_gen, 1);
                /*
                 * pcpu area for APs is zeroed during AP startup.
@@ -2651,8 +2651,8 @@ pmap_pinit0(pmap_t pmap)
        bzero(&pmap->pm_stats, sizeof pmap->pm_stats);
        pmap->pm_flags = pmap_flags;
        CPU_FOREACH(i) {
-               pmap->pm_pcids[i].pm_pcid = PMAP_PCID_NONE;
-               pmap->pm_pcids[i].pm_gen = 0;
+               pmap->pm_pcids[i].pm_pcid = PMAP_PCID_KERN + 1;
+               pmap->pm_pcids[i].pm_gen = 1;
                if (!pti) {
                        __pcpu[i].pc_kcr3 = PMAP_NO_CR3;
                        __pcpu[i].pc_ucr3 = PMAP_NO_CR3;
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to