> > That's a position that would sound reasonable to someone working
> > on Linux for legacy DEC/SGI systems, but not one that I would
> > expect to satisfy someone working on embedded Linux. It would
> > need to be governed by a config option, but I would think
> > that ultimately we need to have a Linux that can be ROMed
> > and branched to directly from the reset vector. Why force
> > everyone doing an embedded MIPS/Linux widget to re-invent
> > the wheel?
> Because there are very good reasons for having a firmware seperate from
> the OS.
Yes, and there are also very good reasons for minimizing
the size and functionality of that bootloader. One could have
a minimalist but functional MIPS bootloader that runs in kseg1
and hasn't the faintest idea what a cache is. As I said in
an earlier message on this thread, we should either be explicit
about what we assume the bootloader will have done for us, or
prepare to have the relevant CPU/cache intitialization done
by the kernel.
> Otherwise, you're more or less proposing a new run-time-environment
> that has to do all the hardware sanitizations and initializations before
> get to the bootstrap environment. That's going to be so system-specific
> disparate from the kernel that it doesn't, IMHO, make any sense to put it
Cache tag initialization is CPU-specific, not system specific.
> This is especially true since *not* having it in the kernel
> the chance to exploit the same firmware environment for non-linux OS'es.
The systems I'm worried about don't *have* any non-Linux OSes.
I do not advocate unconditionally putting proper cache initialization
code into every MIPS/Linux kernel! I wouldn't dream of preventing
some one else from putting their full faith in the perfectly understood
and well-documented bootloaders on their Indy or DECstation. ;-)
And people who have otherwise found it to be a reasonable design
trade off to build a cache-aware bootloader should not have to pay
the time or footprint to initialize the cache twice.
But so long as there are people who want to build new, specialized devices
running embedded Linux, it is in their interest that the MIPS/Linux kernel
distribution provide them with as much of the generic processor startup
functionality as possible, so that they can concentrate their energies
on making their products different and better instead of re-re-implementing
cache initialization code (and maybe getting it wrong).
But in any case, have no fear, I'm unlikely to be submitting
any such patch any time soon!