Subject: Re: Snapshot 20030927 available
To: None <wileyc@rezrov.net>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: port-sgimips
Date: 09/28/2003 23:34:41
Ok, I've looked most diffs and committed some of them.

In article <20030928064500.GA9966@rezrov.net>
wileyc@rezrov.net wrote:

> (things that can be committed now without breaking other platforms)
> * arch/sgimips (in toto)

I've checked these code, it seems some more cleanup is needed
(including original sources):

>> +++ ip32/sys/arch/sgimips/conf/majors.sgimips
 :
>>  device-major	ksyms		char 77			ksyms
>> +device-major	lpt		char 78			lpt
>>  device-major	pf		char 78			pf
>>  device-major	crypto		char 79			opencrypto

I think lpt should be 80. (merge botch?)
etc.sgimips/MAKEDEV also needs fix.

>> +++ ip32/sys/arch/sgimips/dev/crime.c
 :
>>  void *		crime_intr_establish(int, int, int, int (*)(void *), void *);
>>  void		crime_intr(u_int);
>> +void		crime_intr_mask(struct crime_softc *, unsigned int);
>> +

These functions are refered from other sources,
so they should be declared in crimevar.h.

>> +	crime_sc->iot = 1;

Maybe we should have some macro for MD bus space tag values.
(they are used only in bus.c:bus_space_{read,write}_{1,2}() ?)

>> +	crime_intr_mask(crime_sc, irq);
 :
>> +void
>> +crime_intr_mask(struct crime_softc *sc, unsigned int intr)

crime_intr_mask() always uses the global crime_sc,
so we don't have to pass it from callers.

>> +++ ip32/sys/arch/sgimips/dev/crimereg.h
 :
>> +#include <machine/bus.h>

Register definitions don't require bus.h.

>> +++ ip32/sys/arch/sgimips/dev/mace.c
 :
>> -void mace_intr(int irqs);
>> +void mace_intr(int);

This (and some other functions) should be declared in macevar.h.

>> +extern struct sgimips_bus_dma_tag sgimips_default_bus_dma_tag;

This isn't needed here because declared in <machine/bus.h>.

>> +	sc->iot = 3;

Also needs to define macro for bus space tag.

>> +        if ( (bus_dmamem_alloc(sc->dmat, 32768,
>> +                               PAGE_SIZE, 32768, &sc->seg,

We should have some macro for these "32768".

>> +++ ip32/sys/arch/sgimips/sgimips/machdep.c

This file contains flush_pcache_anyway hack and r5ksc/r10k stuff.
Which changes should be done for intermediate commit?

I've put modified (but untested) patch for sgimips specific part here:
http://www.ceres.dti.ne.jp/~tsutsui/netbsd/sgimips-chris-patch-20030928.diff


>  and the cosmetic arch/mips,

Some of these have been committed, but r5ksc and r10k stuff is not yet.
I have some questions about other diffs:

>> +++ ip32/sys/arch/mips/include/int_types.h
 :
>> #ifdef _LP64
>> -typedef long int	       __intptr_t;
>> -typedef unsigned long int     __uintptr_t;
>> +typedef long long	       __intptr_t;
>> +typedef unsigned long long     __uintptr_t;

On _LP64, long and unsigned long are 64bit, so I don't think
this change is needed.

>> +++ ip32/sys/arch/mips/mips/genassym.cf
 : 
>> -#if !defined(__mips_n32) && !defined(__mips_n64)
>> +if !defined(__mips_n32) && !defined(__mips_n64)
>>  # Use these only in code used by 32-bit processors (which cannot
>>  # use new-ABI).
 :
>> -#endif
>> +endif

Is these '#'s are just typo, or intentional?
Does this cause any problem for now?


> * distrib and etc (for sysinst and devices, respectively)

Still I'll leave them because we should have discussion
with portmasters and build maintainers what kernel sets
we should have etc.
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp