a bit late....
you should check teh cvs rep for these files..
peter's already checked it in... :-)
On Thu, 1 Jul 1999, Andrew Gallatin wrote:
>
> Peter Wemm writes:
>
> Peter,
>
> Thanks for the details. I wasn't sure if it was something that was
> supposed to work... I assume it still works when built in by config &
> should be left in place for that reason though, right? (haven't tried
> it here..)
>
> > Personally, I think we should use a kernel environment variable passed in
> > from loader, since kern_envp is available *real early*, from the very
> > beginning of init386(), which is called form locore just after going
> > virtual. It needs a couple of tweaks to get this to work, and in
> > particular, the environment variable will have to override the VM86
> > calls.
>
> Great idea! I'd thought about adding a boot flag, but didn't realize
> the kernel environment variable route was so easy.
>
> The following hack seems to work here. At least it should have the
> same effect as building with MAXMEM. The only bit that concerns me is
> the movement of the movement of the kern_envp initialzation. I don't
> know diddly about the early stages of the boot & I don't know if
> moving it so that environment variables are available in getmemsize()
> is safe. Can you take a peek at this patch please?
>
> Index: machdep.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/i386/i386/machdep.c,v
> retrieving revision 1.342
> diff -u -b -B -c -r1.342 machdep.c
> cvs diff: conflicting specifications of output style
> *** machdep.c 1999/06/18 14:32:14 1.342
> --- machdep.c 1999/07/01 23:28:50
> ***************
> *** 153,158 ****
> --- 153,164 ----
> CTLFLAG_RD, &tlb_flush_count, 0, "");
> #endif
>
> + int i386_maxmem=0;
> +
> + SYSCTL_INT(_machdep, OID_AUTO, maxmem, CTLFLAG_RD,
> + &i386_maxmem, 0, "override memory auto-size at boottime");
> +
> +
> #ifdef PC98
> static int ispc98 = 1;
> #else
> ***************
> *** 1331,1337 ****
>
> /*
> * If a specific amount of memory is indicated via the MAXMEM
> ! * option or the npx0 "msize", then don't do the speculative
> * memory probe.
> */
> #ifdef MAXMEM
> --- 1337,1344 ----
>
> /*
> * If a specific amount of memory is indicated via the MAXMEM
> ! * option or the npx0 "msize", or the machdep.maxmem kernel
> ! * environment variable, then don't do the speculative
> * memory probe.
> */
> #ifdef MAXMEM
> ***************
> *** 1347,1352 ****
> --- 1354,1365 ----
> }
> }
> #endif
> + if (getenv_int("machdep.maxmem", &i386_maxmem) != 0) {
> + if(i386_maxmem != 0) {
> + Maxmem = i386_maxmem / 4;
> + speculative_mprobe = FALSE;
> + }
> + }
>
> #ifdef SMP
> /* look for the MP hardware - needed for apic addresses */
> ***************
> *** 1656,1661 ****
> --- 1669,1680 ----
> dblfault_tss.tss_ldt = GSEL(GLDT_SEL, SEL_KPL);
>
> vm86_initialize();
> + /*
> + * XXXX moved here to make machdep.maxmem available in
> + * getmemsize. Not sure if this is safe
> + */
> + if (bootinfo.bi_envp)
> + kern_envp = (caddr_t)bootinfo.bi_envp + KERNBASE;
> getmemsize(first);
>
> /* now running on new page tables, configured,and u/iom is accessible */
> ***************
> *** 1700,1707 ****
> preload_metadata = (caddr_t)bootinfo.bi_modulep + KERNBASE;
> preload_bootstrap_relocate(KERNBASE);
> }
> - if (bootinfo.bi_envp)
> - kern_envp = (caddr_t)bootinfo.bi_envp + KERNBASE;
> }
>
> #if defined(I586_CPU) && !defined(NO_F00F_HACK)
> --- 1719,1724 ----
>
>
>
>
> Thanks,
>
> Drew
>
> ------------------------------------------------------------------------------
> Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin
> Duke University Email: [EMAIL PROTECTED]
> Department of Computer Science Phone: (919) 660-6590
>
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-hackers" in the body of the message
>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message