From: "Kevin D. Kissell" <kevink@mips.com>
To: <carlson@sibyte.com>
Cc: <linux-mips@oss.sgi.com>
Subject: Re: CONFIG_MIPS_UNCACHED
Date: Tue, 26 Jun 2001 10:50:50 +0200 [thread overview]
Message-ID: <008a01c0fe1d$1fbd9a00$0deca8c0@Ulysses> (raw)
In-Reply-To: 0106251042380I.00703@plugh.sibyte.com
> > 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
we
> get to the bootstrap environment. That's going to be so system-specific
and
> disparate from the kernel that it doesn't, IMHO, make any sense to put it
> there.
Cache tag initialization is CPU-specific, not system specific.
> This is especially true since *not* having it in the kernel
gives you
> 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!
Regards,
Kevin K.
WARNING: multiple messages have this Message-ID (diff)
From: "Kevin D. Kissell" <kevink@mips.com>
To: carlson@sibyte.com
Cc: linux-mips@oss.sgi.com
Subject: Re: CONFIG_MIPS_UNCACHED
Date: Tue, 26 Jun 2001 10:50:50 +0200 [thread overview]
Message-ID: <008a01c0fe1d$1fbd9a00$0deca8c0@Ulysses> (raw)
Message-ID: <20010626085050.c68Xk93X5wVumF5ykn79hhStPouUlKblS0SWDZAN23g@z> (raw)
In-Reply-To: 0106251042380I.00703@plugh.sibyte.com
> > 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
we
> get to the bootstrap environment. That's going to be so system-specific
and
> disparate from the kernel that it doesn't, IMHO, make any sense to put it
> there.
Cache tag initialization is CPU-specific, not system specific.
> This is especially true since *not* having it in the kernel
gives you
> 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!
Regards,
Kevin K.
next prev parent reply other threads:[~2001-06-26 8:46 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-23 16:05 CONFIG_MIPS_UNCACHED Jun Sun
2001-06-23 17:17 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-23 17:17 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-23 17:49 ` CONFIG_MIPS_UNCACHED Jun Sun
2001-06-23 20:15 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-23 20:15 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-25 4:42 ` CONFIG_MIPS_UNCACHED Jun Sun
2001-06-25 6:51 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-25 6:51 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-25 16:38 ` CONFIG_MIPS_UNCACHED Jun Sun
2001-06-25 17:35 ` CONFIG_MIPS_UNCACHED Justin Carlson
2001-06-26 8:50 ` Kevin D. Kissell [this message]
2001-06-26 8:50 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-26 13:11 ` CONFIG_MIPS_UNCACHED Maciej W. Rozycki
2001-06-25 13:22 ` CONFIG_MIPS_UNCACHED Maciej W. Rozycki
-- strict thread matches above, loose matches on Subject: below --
2001-01-23 23:26 CONFIG_MIPS_UNCACHED Quinn Jensen
2001-01-23 23:53 ` CONFIG_MIPS_UNCACHED Pete Popov
2001-01-24 20:10 ` CONFIG_MIPS_UNCACHED Jun Sun
2001-01-25 0:31 ` CONFIG_MIPS_UNCACHED Ralf Baechle
2001-01-25 1:09 ` CONFIG_MIPS_UNCACHED Pete Popov
2001-01-25 1:37 ` CONFIG_MIPS_UNCACHED Jun Sun
2001-01-26 10:02 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-01-26 10:02 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='008a01c0fe1d$1fbd9a00$0deca8c0@Ulysses' \
--to=kevink@mips.com \
--cc=carlson@sibyte.com \
--cc=linux-mips@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.