Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: About support for rtVAX300



Holm Tiffe wrote:

> Anders Magnusson wrote:
> 
> > On 01/12/2013 11:53 PM, Holm Tiffe wrote:
> > >[..]
> > >
> > >I'm no on that point, weher I should be able to talk with the UART.
> > >
> > >The machine boots int my (incomplete) scncnprobe().
> > >
> > >void
> > >scncnprobe(struct consdev *cn)
> > >{
> > >  
> > >//static  vaddr_t dz_regs;
> > >
> > >         extern vaddr_t iospace;
> > >         vaddr_t * du_base;
> > >         int diagcons;
> > >         paddr_t ioaddr = 0x20100000;
> > >         extern const struct cdevsw scn_cdevsw;
> > >
> > >         switch(vax_boardtype) {
> > >         case VAX_BTYP_RT300:
> > >                 diagcons = 0;
> > >                 break;
> > >         default:
> > >                 cn->cn_pri = CN_DEAD;
> > >                 return;
> > >         }
> > >         if (diagcons)
> > >                 cn->cn_pri = CN_REMOTE;
> > >         else
> > >                 cn->cn_pri = CN_NORMAL;
> > >         cn->cn_dev = makedev(cdevsw_lookup_major(&scn_cdevsw), diagcons);
> > >         du_base = (void *)iospace;
> > >         ioaccess(iospace, ioaddr, 1);
> > >         du_base[0xc]=0xa;
> > >         DELAY(10000);
> > >         du_base[0xc]=(u_char)0x42;
> > >         DELAY(10000);
> > >         __asm("halt");
> > >  
> > >}
> > >
> > The code above is correct. iospace is set to a hole in the virtual 
> > address space already, ioaccess() just maps ioaddr to that hole.
> > 
> > If it just ends with this halt (no machine checks) then there is 
> > something where you write, and the most likely error is that you are not 
> > writing correctly to the UART :-)
> > 
> > You can try from the console to get it output something maybe, like
> > >>> D/P/B 2010000C 42
> 
> That works, no problem.
> > 
> > or whatever syntax the UART has.
> > 
> > -- Ragge
> 
> I swa the first character appering when I changed vaddr_t du_base to
> volatile u_char * du_base.
> 
> In the meantime I got a lot more:
> 
> Using IP address: 192.168.50.20
> myip: rtvax (192.168.50.20)
> root addr=192.168.50.50 path=/data/home/exports/rtvax
> 2070876+92264 [155104+148119]=0x25a65c
> 
> scncprobe passed.
> Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
>     2006, 2007, 2008, 2009, 2010, 2011, 2012
>     The NetBSD Foundation, Inc.  All rights reserved.
> Copyright (c) 1982, 1986, 1989, 1991, 1993
>     The Regents of the University of California.  All rights reserved.
> 
> NetBSD 6.0 (RTVAX300-test) #156: Sun Jan 13 12:48:13 CET 2013
> 
> holm%beast.freibergnet.de@localhost:/home/holm/tmp/netbsd/root6/usr/src/sys/arch/vax/compile/RTVAX
> VAXstation RTVAX
> total memory = 16380 KB
> avail memory = 13064 KB
> r0=00000000 r1=00000005 r2=00000000 r3=00000018 r4=802f1800 r5=00000000
> r6=8025ae00 r7=8007fdc8
> r8=00400c3c r9=8025a65c r10=00000000 r11=00000003
> ap=8025c790 fp=8025c77c sp=ffffffff pc=80001293
> panic: SEGV in kernel mode: pc 0x80001293 addr 0x201ffffc
> ý
> 
> I'm curios about that "VAXstation RTVAX" thing is coming from, at least the
> first part of it, and I don't think taht there are 16MB of memory at all.
> Interresting is the panic, sine there is the LED Register address involved.
> I'll try to look from where that comes, must be one of my experiments..
> 
> 
> At least that kernel just saying "Hello " as you wrote..
> 
> 
> Regards,
> 
> Holm
> 
> -- 

Ok, after a bit cleaning of LED Register stuff and some __asm("halts")
it ends now here:

2070876+92264 [155104+148119]=0x25a65c

scncprobe passed.
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
    2006, 2007, 2008, 2009, 2010, 2011, 2012
    The NetBSD Foundation, Inc.  All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
    The Regents of the University of California.  All rights reserved.

NetBSD 6.0 (RTVAX300-test) #158: Sun Jan 13 13:01:32 CET 2013

holm%beast.freibergnet.de@localhost:/home/holm/tmp/netbsd/root6/usr/src/sys/arch/vax/compile/RTVAX
VAXstation RTVAX
total memory = 16380 KB
avail memory = 13064 KB
mainbus0 (root)
cpu0 at mainbus0: RTVAX300, CVAX microcode rev 6 Firmware rev 17
rtvbus0 at mainbus0
r0=81800e00 r1=00000001 r2=8028c820 r3=00010080 r4=00000001 r5=00000200
r6=80fdf640 r7=801ee848
r8=801fff68 r9=801ee848 r10=80fcd900 r11=8025c68c
ap=8025c4e0 fp=8025c4b4 sp=ffffffff pc=800f104c
panic: SEGV in kernel mode: pc 0x800f104c addr 0
ý

..which is in my cloned rtvbus.c file, in rtvbus_dma_start():

void
rtvbus_dma_start(struct rtvbus_dma *vd)
{
         
        SIMPLEQ_INSERT_TAIL(&rtvbus_dma, vd, vd_q);
         
        if (rtvbus_active == 0)
                rtvbus_dma_intr();
}

Don't know what this stuff is doing at all..

I'm going into the kitchen now, helping my wife a little..
I'm back in about a hour I think.

Regards,

Holm
-- 
      Technik Service u. Handel Tiffe, www.tsht.de, Holm Tiffe, 
     Freiberger Straße 42, 09600 Oberschöna, USt-Id: DE253710583
  www.tsht.de, info%tsht.de@localhost, Fax +49 3731 74200, Mobil: 0172 8790 741


Home | Main Index | Thread Index | Old Index