> On Mon, Jul 20, 1998 at 09:10:34AM -0700, William J. Earl wrote:
> > IRIX looks at the environment when booting. That is, it finds
> > argc, argv, and envp in $a0, $a1, and $a2. It copies them to
> > private storage before starting up, since they are in memory
> > which will be overlaid by dynamic memory allocation. All of the
> > NVRAM and temporary environment variables are passed via envp.
> > IRIX looks for root= on the command line (in argv) first, and then
> > in the environment, before falling back on a default. linux could
> > do the same.
> That looks like a good idea; it can be implemented easily and nicely
> within Linux. And for transparency we should. What will stay different
> is the naming convention of Linux partitions.
That is good, but you might consider translating incoming IRIX-format
and ARCS-format names to Linux names, just as IRIX translates ARCS-format
names to IRIX-format names.
> The environment is allocated in ``Firmware Temporary'' memory, isn't it?
> We don't free that yet but we should, for low memory configurations that
> should be a significant amount of memory.
Yes, the environment is in firmware temporary memory, along with
a copy of the firmware. The non-volatile environment is in the Dallas
part, but the user, via PROM or sash, may have replaced one or more
of the variables after the environment was copied to memory.
I would guess that, depending on how the system was booted,
firmware temporary memory could be 4 MB or more, although the
actual environment and argument values are of course much smaller.
Once you free the firmware area, you can no longer use the firmware
entries (except to leave linux and reboot or halt).