mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-16 10:20:30 +00:00
Unbreak memory sizing for SMP.
This commit is contained in:
parent
4ea5ad99d5
commit
26f13ad079
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=47688
@ -35,7 +35,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
|
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
|
||||||
* $Id: machdep.c,v 1.337 1999/06/01 18:19:40 jlemon Exp $
|
* $Id: machdep.c,v 1.338 1999/06/01 18:25:26 jlemon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "apm.h"
|
#include "apm.h"
|
||||||
@ -1352,7 +1352,12 @@ getmemsize(int first)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* XXX former point of mp_probe() and pmap_bootstrap() */
|
#ifdef SMP
|
||||||
|
/* look for the MP hardware - needed for apic addresses */
|
||||||
|
mp_probe();
|
||||||
|
#endif
|
||||||
|
/* call pmap initialization to make new kernel address space */
|
||||||
|
pmap_bootstrap(first, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Size up each available chunk of physical memory.
|
* Size up each available chunk of physical memory.
|
||||||
@ -1361,8 +1366,11 @@ getmemsize(int first)
|
|||||||
pa_indx = 0;
|
pa_indx = 0;
|
||||||
phys_avail[pa_indx++] = physmap[0];
|
phys_avail[pa_indx++] = physmap[0];
|
||||||
phys_avail[pa_indx] = physmap[0];
|
phys_avail[pa_indx] = physmap[0];
|
||||||
|
#if 0
|
||||||
pte = (pt_entry_t)vtopte(KERNBASE);
|
pte = (pt_entry_t)vtopte(KERNBASE);
|
||||||
*pte = (1 << PAGE_SHIFT) | PG_RW | PG_V;
|
#else
|
||||||
|
pte = (pt_entry_t)CMAP1;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* physmap is in bytes, so when converting to page boundaries,
|
* physmap is in bytes, so when converting to page boundaries,
|
||||||
@ -1376,7 +1384,11 @@ getmemsize(int first)
|
|||||||
end = trunc_page(physmap[i + 1]);
|
end = trunc_page(physmap[i + 1]);
|
||||||
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
|
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
|
||||||
int tmp, page_bad;
|
int tmp, page_bad;
|
||||||
|
#if 0
|
||||||
int *ptr = 0;
|
int *ptr = 0;
|
||||||
|
#else
|
||||||
|
int *ptr = (int *)CADDR1;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* block out kernel memory as not available.
|
* block out kernel memory as not available.
|
||||||
@ -1650,14 +1662,6 @@ init386(first)
|
|||||||
vm86_initialize();
|
vm86_initialize();
|
||||||
getmemsize(first);
|
getmemsize(first);
|
||||||
|
|
||||||
#ifdef SMP
|
|
||||||
/* look for the MP hardware - needed for apic addresses */
|
|
||||||
mp_probe();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* call pmap initialization to make new kernel address space */
|
|
||||||
pmap_bootstrap(first, 0);
|
|
||||||
|
|
||||||
/* now running on new page tables, configured,and u/iom is accessible */
|
/* now running on new page tables, configured,and u/iom is accessible */
|
||||||
|
|
||||||
/* Map the message buffer. */
|
/* Map the message buffer. */
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
|
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
|
||||||
* $Id: machdep.c,v 1.337 1999/06/01 18:19:40 jlemon Exp $
|
* $Id: machdep.c,v 1.338 1999/06/01 18:25:26 jlemon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "apm.h"
|
#include "apm.h"
|
||||||
@ -1352,7 +1352,12 @@ getmemsize(int first)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* XXX former point of mp_probe() and pmap_bootstrap() */
|
#ifdef SMP
|
||||||
|
/* look for the MP hardware - needed for apic addresses */
|
||||||
|
mp_probe();
|
||||||
|
#endif
|
||||||
|
/* call pmap initialization to make new kernel address space */
|
||||||
|
pmap_bootstrap(first, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Size up each available chunk of physical memory.
|
* Size up each available chunk of physical memory.
|
||||||
@ -1361,8 +1366,11 @@ getmemsize(int first)
|
|||||||
pa_indx = 0;
|
pa_indx = 0;
|
||||||
phys_avail[pa_indx++] = physmap[0];
|
phys_avail[pa_indx++] = physmap[0];
|
||||||
phys_avail[pa_indx] = physmap[0];
|
phys_avail[pa_indx] = physmap[0];
|
||||||
|
#if 0
|
||||||
pte = (pt_entry_t)vtopte(KERNBASE);
|
pte = (pt_entry_t)vtopte(KERNBASE);
|
||||||
*pte = (1 << PAGE_SHIFT) | PG_RW | PG_V;
|
#else
|
||||||
|
pte = (pt_entry_t)CMAP1;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* physmap is in bytes, so when converting to page boundaries,
|
* physmap is in bytes, so when converting to page boundaries,
|
||||||
@ -1376,7 +1384,11 @@ getmemsize(int first)
|
|||||||
end = trunc_page(physmap[i + 1]);
|
end = trunc_page(physmap[i + 1]);
|
||||||
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
|
for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) {
|
||||||
int tmp, page_bad;
|
int tmp, page_bad;
|
||||||
|
#if 0
|
||||||
int *ptr = 0;
|
int *ptr = 0;
|
||||||
|
#else
|
||||||
|
int *ptr = (int *)CADDR1;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* block out kernel memory as not available.
|
* block out kernel memory as not available.
|
||||||
@ -1650,14 +1662,6 @@ init386(first)
|
|||||||
vm86_initialize();
|
vm86_initialize();
|
||||||
getmemsize(first);
|
getmemsize(first);
|
||||||
|
|
||||||
#ifdef SMP
|
|
||||||
/* look for the MP hardware - needed for apic addresses */
|
|
||||||
mp_probe();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* call pmap initialization to make new kernel address space */
|
|
||||||
pmap_bootstrap(first, 0);
|
|
||||||
|
|
||||||
/* now running on new page tables, configured,and u/iom is accessible */
|
/* now running on new page tables, configured,and u/iom is accessible */
|
||||||
|
|
||||||
/* Map the message buffer. */
|
/* Map the message buffer. */
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: vm86.c,v 1.25 1999/05/12 21:38:45 luoqi Exp $
|
* $Id: vm86.c,v 1.26 1999/06/01 18:19:48 jlemon Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
@ -453,12 +453,14 @@ vm86_initialize(void)
|
|||||||
|
|
||||||
vm86pcb = pcb;
|
vm86pcb = pcb;
|
||||||
|
|
||||||
|
#if 0
|
||||||
/*
|
/*
|
||||||
* use whatever is leftover of the vm86 page layout as a
|
* use whatever is leftover of the vm86 page layout as a
|
||||||
* message buffer so we can capture early output.
|
* message buffer so we can capture early output.
|
||||||
*/
|
*/
|
||||||
msgbufinit((vm_offset_t)vm86paddr + sizeof(struct vm86_layout),
|
msgbufinit((vm_offset_t)vm86paddr + sizeof(struct vm86_layout),
|
||||||
ctob(3) - sizeof(struct vm86_layout));
|
ctob(3) - sizeof(struct vm86_layout));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
vm_offset_t
|
vm_offset_t
|
||||||
|
Loading…
Reference in New Issue
Block a user