Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 26 Jan 1999 05:28:12 -0500 (EST)
From:      Simon Shapiro <shimon@simon-shapiro.org>
To:        Matthew Jacob <mjacob@feral.com>
Cc:        freebsd-alpha@FreeBSD.ORG
Subject:   Re: Alpha Driver Help Requested
Message-ID:  <XFMail.990126052812.shimon@simon-shapiro.org>
In-Reply-To: <Pine.LNX.4.04.9901261825410.22055-100000@feral-gw>

next in thread | previous in thread | raw e-mail | index | archive | help

Matthew Jacob, On 27-Jan-99 you wrote:
>  
>  Simon- I even have a DPT and an Alpha (PC164), but lack of time, really,
>  to help much with this.

I appreciate the though, but I am rather capable of handling the DPT part. 
Why outl panics on a ``lie'' is a bit beyond my immediate knowledge.

I narrowed down the failure to line 467 in sys/alpha/bus.h which simply
says:

        outl(bsh + offset, value);

In turn, outl is really a bizzare thing;  In chipset.h we find:

typedef void          alpha_chipset_outl_t(u_int32_t port,
                                           u_int32_t data);

Later, in the same file, there is a structure called alpha_chipset:

typedef struct alpha_chipset {
    /*
     * I/O port access
     */
    alpha_chipset_inb_t*        inb;
    alpha_chipset_inw_t*        inw;
    alpha_chipset_inl_t*        inl;
    alpha_chipset_outb_t*       outb;
    alpha_chipset_outw_t*       outw;
    alpha_chipset_outl_t*       outl;
    ...

    void*           
} alpha_chipset_t;

extern alpha_chipset_t chipset;

Now, in sys/alpha/alpha/machdep.c there is a global declaration:

alpha_chipset_t chipset;

I tried to find references to chipset elsewhere, but there is none.  It
must be that it is initialized by some black magin in the boot process.

I am quite certain that the function pointer outl in chipset is bogus, or
points to a function other than outl, or the function it points to takes
different arguments than specified in the source.

I hope for someone who already knows the mysteries of the chipsets to come
to my rescue...

>  
>  Which  alpha  platform are you using?

I have two;  Source is on a PW 433au.  The panics are on some no name
Motherboard in a box.  Here is the dmesg top portion.  Interesting how the
panic form te PREVIOUS boot is there in the buffer.  How do they do that?

machine/bus.h.467
machine/bus.h.473

fatal kernel trap:

    trap entry = 0x4 (unaligned access fault)
    a0         = 0xfffffca900010192
    a1         = 0x2c
    a2         = 0x11
    pc         = 0xfffffc00004a77bc
    ra         = 0xfffffc000034f958
    curproc    = 0

ddbprinttrap(0xfffffca900010192, 0x2c, 0x11, 0x4)
panic: trap
panic
Rebooting...
Copyright (c) 1992-1998 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California. All rights reserved.
FreeBSD 3.0-19981108-SNAP #0: Sun Nov  8 16:51:40 GMT 1998
    root@sloth.noc.erols.net:/usr/src/sys/compile/GENERIC
EB164
Digital AlphaPC 164LX 533 MHz, 531MHz
8192 byte page size, 1 processor.
real memory  = 669138944 (653456K bytes)
avail memory = 646782976 (631624K bytes)
Preloaded elf kernel "kernel" at 0xfffffc00005ac000.
cia0: <2117x PCI adapter>
cia0: Pyxis, pass 1
cia0: extended capabilities: 1<BWEN>
isa0
Probing for devices on PCI bus 0:
de0: <Digital 21140A Fast Ethernet> rev 0x22 int a irq 2 on pci0.5.0
de0: DEC DE500-AA 21140A [10-100Mb/s] pass 2.2
de0: address 00:00:f8:10:7d:5b
Qlogic ISP Driver, FreeBSD CAM Version 0.97, Core Version 1.3
isp0: <Qlogic ISP 10X0 PCI SCSI Adapter> rev 0x05 int a irq 1 on pci0.7.0
isp0: using Memory space register mapping
isp0: Board Revision 1040B, loaded F/W Revision 7.55
isp0: Last F/W revision was 5.53
chip0: <Intel 82378IB PCI to ISA bridge> rev 0x43 on pci0.8.0
vga0: <S3 Trio graphics accelerator> rev 0x00 int a irq 3 on pci0.9.0
mcclock0: <MC146818A real time clock> at 0x70-0x71 on isa0

>  
>  
>  On Tue, 26 Jan 1999, Simon Shapiro wrote:
>  
> > [ Sorry for the incomplete message.  Slip of the trackball :-( ]
> > 
> > Hi Y'll
> > 
> > I am back to trying to get the DPT drivers to work in FreeBSD on the
> > Alpha.
> > I feel I need some expoert help to get this driver to work.
> > 
> > Pogress Summary (current state):
> > 
> > *  I have upgraded to source tree to 1990114.
> > 
> > *  This is a pristine source tree, uncontaminated by any of my HAS
> > work.
> > 
> > *  I have removed most of the assumptions (in the CAM version I am
> > working
> >    from) that 32bit integer and a physical address and a pointer are
> >    all
> >    synonyms.  these changes are syntatically kludgy but, for the case
> >    in
> >    hand (only i386 and alpha on the tree, with i386 being 32bit
> >    pointers)
> >    they appear correct.  Either way, this is not where the problem is.
> > 
> > *  The driver panics on trap entry 0x4 (unaligned access fault).  This
> >    happens in the following code snippet:
> > 
> >         dpt_outl(dpt, HA_WDMAADDR, cmd_busaddr);
> > 
> >    All the arguments are of the correct type.
> > 
> > *  Dpt_outl parses as per this macro:
> > 
> > #define dpt_outl(dpt, port, value)    \
> >         bus_space_write_4((dpt)->tag, (dpt)->bsh, port, value)
> > 
> > *  I have tried to track what bus_space_write_4 does, and it seems to
> > me it
> >    does what it should.
> > 
> > I would really like to have this problem licked so I can get the driver
> > working.  Quite a bit IRT FreeBSD at my place of employment rides on
> > being
> > able to complete this task.
> > 
> > Logistically, I have a dedicated source machine and a dedicate dtest
> > machine, both can be available if one desires to login and try
> > something.
> > 
> > 
> > 
> > Sincerely,
> > 
> > Simon Shapiro
> > Research Fellow, Office of Technology         ShapiroS@MindSpring.com
> > MindSpring Enterprises, Inc.                   404.815.0770 ext. 2057
> > 
> > 
> > To Unsubscribe: send mail to majordomo@FreeBSD.org
> > with "unsubscribe freebsd-alpha" in the body of the message
> > 
>  



Sincerely Yours,                 Shimon@Simon-Shapiro.ORG
                                             770.265.7340
Simon Shapiro

Unwritten code has no bugs and executes at twice the speed of mouth


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-alpha" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.990126052812.shimon>