Subject: Re: NOTICE: thorpej-mips-cache branch will be merged today
To: None <cgd@broadcom.com, port-mips@netbsd.org>
From: UCHIYAMA Yasushi <uch@polyphony.co.jp>
List: port-mips
Date: 11/22/2001 14:56:57
 | > Do you think about this patch? 
 | > ftp://ftp.netbsd.org/pub/NetBSD/misc/uch/mips.cache.conf.patch
 | > And this patch reduce kernel size.(don't link unneeded code)
 | > it is important for small memory machines.
 |
 | This type of thing really is something where you'd like a library
 | which causes stuff to be pulled in only if needed, or some other good
 | mechanism to derive cache options from e.g. machine types which are
 | selected.

I want its selection range to be flexible. I think it is not good that
explicitly unused code is linked into kernel.
$ ls -aln cache_*
-rw-r-----  1 1009  1000  11072 Nov 21 17:54 cache_r4k.o
-rw-r-----  1 1009  1000   5180 Nov 21 17:54 cache_r5900.o
-rw-r-----  1 1009  1000   8396 Nov 21 17:54 cache_r5k.o
for playstation2, cache_r4k.o and cache_r5k.o are not needed.
and the other machines, cache_r5900.o is not needed.

 | People shouldn't need to know what kind of CPU is actually in their
 | machine to configure a kernel for it, esp. when there are as many
 | possible CPU variants as there are in the MIPS world.  It should be
 | derived from machine type.
 | This is made worse by the fact that in fact, even if they know what
 | CPU is in their machine, often they _cannot_ specify it.
 | e.g. MIPS1_2000.  No, that's MIPS1_3000, which includes R2000
 | support.

I think it is no problem.

People (developer)
 You know what kind of CPU is supported by kernel. You will prepare
GENERIC configuration file that all CPU types supported.
And then GENERIC kernel will select appropriate ops. from machine type.

People (user)
 Some people may remove unneeded CPU type from GENERIC.

 | +# Invalid combinations are     
 | +#  * MIPS1_3000 && (MIPS1_3900 || MIPS1_3920)
 | +#  * (MIPS3_4000 || MIPS3_4600 || MIPS3_5000) && MIPS3_4100
 | +#  * (MIPS3_4000 || MIPS3_4600 || MIPS3_5000) && MIPS3_5900
 | +#  * MIPS3_4100 && MIPS3_5900
 | 
 | Why are these actually invalid combinations?  (that seems bogus...)

It's -current implementation.

---
UCHIYAMA Yasushi
uch@polyphony.co.jp