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: galla...@cs.duke.edu
> Department of Computer Science                Phone: (919) 660-6590
> 
> 
> To Unsubscribe: send mail to majord...@freebsd.org
> with "unsubscribe freebsd-hackers" in the body of the message
> 



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to