Date: Wed, 27 Jan 1999 13:32:25 +0100 (MET) From: Joerg Czeranski <jc@joerch.org> To: shimon@simon-shapiro.org Cc: freebsd-alpha@FreeBSD.ORG Subject: Re: Alpha Driver Help Requested Message-ID: <199901271232.NAA23834@zaphod.in.tu-clausthal.de> In-Reply-To: <XFMail.990126052812.shimon@simon-shapiro.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Simon Shapiro wrote: > * 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. And: > I narrowed down the failure to line 467 in sys/alpha/bus.h which simply > says: > > outl(bsh + offset, value); And: > fatal kernel trap: > > trap entry = 0x4 (unaligned access fault) > a0 = 0xfffffca900010192 > a1 = 0x2c > a2 = 0x11 > pc = 0xfffffc00004a77bc > ra = 0xfffffc000034f958 > curproc = 0 Decoding the values: /usr/src/sys/dev/dpt/dpt.h: #define HA_WDMAADDR 0x02 alpha/pci/ciareg.h: #define CIA_EV56_BWIO 0x8900000000UL The base address of the DPT probably is 0x10190. Thus a0 is a bus space address (for use with the Byte/Word/eXtension of >= EV56 implementations) aligned to a word (16bit), but it is used by outl for a longword (32bit) access. This results in the unaligned access fault. Either a 32 bit access wasn't intended (it overlaps with HW_WCODE and HW_WCODE2 anyway, maybe a bug?) or it must be split into two 16 bit writes. joerch 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?199901271232.NAA23834>