Pull up following revision(s) (requested by tsutsui in ticket #1205):
sys/arch/x68k/x68k/machdep.c: revision 1.204 Restore fixes for PR/51663 lost in r1.195 (uvm_hotplug(9) merge). The kernel crashdump and savecore(8) on NetBSD/x68k have been broken (even without EXTNEDED_MEMORY) since NetBSD 8.0. Oops. Should be pulled up to netbsd-9 and netbsd-8.
This commit is contained in:
parent
54ebbebc4b
commit
3c2e9902c7
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: machdep.c,v 1.200 2019/04/04 04:31:01 isaki Exp $ */
|
/* $NetBSD: machdep.c,v 1.200.4.1 2021/02/11 13:02:04 martin Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1988 University of Utah.
|
* Copyright (c) 1988 University of Utah.
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <sys/cdefs.h>
|
||||||
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.200 2019/04/04 04:31:01 isaki Exp $");
|
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.200.4.1 2021/02/11 13:02:04 martin Exp $");
|
||||||
|
|
||||||
#include "opt_ddb.h"
|
#include "opt_ddb.h"
|
||||||
#include "opt_kgdb.h"
|
#include "opt_kgdb.h"
|
||||||
|
@ -568,7 +568,10 @@ cpu_init_kcore_hdr(void)
|
||||||
{
|
{
|
||||||
cpu_kcore_hdr_t *h = &cpu_kcore_hdr;
|
cpu_kcore_hdr_t *h = &cpu_kcore_hdr;
|
||||||
struct m68k_kcore_hdr *m = &h->un._m68k;
|
struct m68k_kcore_hdr *m = &h->un._m68k;
|
||||||
uvm_physseg_t i;
|
psize_t size;
|
||||||
|
#ifdef EXTENDED_MEMORY
|
||||||
|
int i, seg;
|
||||||
|
#endif
|
||||||
|
|
||||||
memset(&cpu_kcore_hdr, 0, sizeof(cpu_kcore_hdr));
|
memset(&cpu_kcore_hdr, 0, sizeof(cpu_kcore_hdr));
|
||||||
|
|
||||||
|
@ -617,25 +620,20 @@ cpu_init_kcore_hdr(void)
|
||||||
/*
|
/*
|
||||||
* X68k has multiple RAM segments on some models.
|
* X68k has multiple RAM segments on some models.
|
||||||
*/
|
*/
|
||||||
m->ram_segs[0].start = lowram;
|
size = phys_basemem_seg.end - phys_basemem_seg.start;
|
||||||
m->ram_segs[0].size = mem_size - lowram;
|
m->ram_segs[0].start = phys_basemem_seg.start;
|
||||||
|
m->ram_segs[0].size = size;
|
||||||
i = uvm_physseg_get_first();
|
#ifdef EXTENDED_MEMORY
|
||||||
|
seg = 1;
|
||||||
for (uvm_physseg_get_next(i); uvm_physseg_valid_p(i); i = uvm_physseg_get_next(i)) {
|
for (i = 0; i < EXTMEM_SEGS; i++) {
|
||||||
if (uvm_physseg_valid_p(i) == false)
|
size = phys_extmem_seg[i].end - phys_extmem_seg[i].start;
|
||||||
break;
|
if (size == 0)
|
||||||
|
continue;
|
||||||
const paddr_t startpfn = uvm_physseg_get_start(i);
|
m->ram_segs[seg].start = phys_extmem_seg[i].start;
|
||||||
const paddr_t endpfn = uvm_physseg_get_end(i);
|
m->ram_segs[seg].size = size;
|
||||||
|
seg++;
|
||||||
KASSERT(startpfn != -1 && endpfn != -1);
|
|
||||||
|
|
||||||
m->ram_segs[i].start =
|
|
||||||
ctob(startpfn);
|
|
||||||
m->ram_segs[i].size =
|
|
||||||
ctob(endpfn - startpfn);
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue