Subject: Re: NEC RiscServer 2200
To: Noriyuki Soda <soda@sra.co.jp>
From: bob meader <bob@cci.net>
List: port-arc
Date: 08/03/2000 09:57:28
Actually it's still not quite right (which is why a sent a complete file)..
Really what is needed is the clock read and clock write routines need
to be changed... specifically NEC_R96 jazz internal setup address
for the clock is 'PICA' but the chip data address is NEC_R94...
example:
static u_int
mc_read_r96(csc, reg)
struct clock_softc *csc;
u_int reg;
{
int i,as;
as = in32(PICA_SYS_ISA_AS) & 0x80;
out32(PICA_SYS_ISA_AS, as | reg);
i = inb(RD94_SYS_CLOCK);
return(i);
}
Notice I have tested that my proposed clock 'write' code is correct
since I have yet to get to single-user login prompt.
Noriyuki Soda wrote:
> > > Hmm, that means the patch attached below is needed?
>
> >>>>> On Wed, 02 Aug 2000 11:15:14 -0700,
> bob meader <bob@cci.net> wrote:
>
> > Actually that's not quite right ... I should have looked at my notes
> > more closely
> > (been 3 months..)
> > This is the way the file should be ...
> >
> > The kernel may still not boot (this is about where I stopped working on RISC
> > server port in May )...
> > but with this change it should now mount successfully a nfs root...
>
> Thanks. Your change to clock_mc.c certainly makes sense.
>
> I think the patch attached below is equivalent to your change,
> and put a new kernel with this patch on the following URL:
> ftp://ftp.sra.co.jp/pub/os/NetBSD/misc/arc/netbsd.COMCONS.2000-08-01.ecoff.gz
>
> BTW,
> RISCstation 2200 (NEC_R94) may have to be treated as similar to
> RISCserver 2200...
> --
> soda
>
> --- clock_mc.c- Thu Aug 3 18:13:42 2000
> +++ clock_mc.c Thu Aug 3 18:12:12 2000
> @@ -135,10 +135,15 @@
> mc146818_write(csc, MC_REGB, MC_REGB_BINARY | MC_REGB_24HR);
> break;
>
> + case NEC_R96:
> + csc->sc_init = mcclock_init_rd94;
> + csc->sc_data = &mcclockdata_pica;
> + mc146818_write(csc, MC_REGB, MC_REGB_BINARY | MC_REGB_24HR);
> + break;
> +
> case NEC_R94:
> case NEC_RAx94:
> case NEC_RD94:
> - case NEC_R96:
> csc->sc_init = mcclock_init_rd94;
> csc->sc_data = &mcclockdata_rd94;
> mc146818_write(csc, MC_REGB, MC_REGB_BINARY | MC_REGB_24HR);