From owner-freebsd-current Wed Nov 29 11:48: 6 2000 Delivered-To: freebsd-current@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 15D4A37B400 for ; Wed, 29 Nov 2000 11:48:02 -0800 (PST) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id OAA02959; Wed, 29 Nov 2000 14:47:55 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.1/8.9.1) id eATJltC00801; Wed, 29 Nov 2000 14:47:55 -0500 (EST) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Wed, 29 Nov 2000 14:47:54 -0500 (EST) To: Bernd Walter Cc: Wilko Bulte , Mike Eldridge , freebsd-current@freebsd.org Subject: Re: Patch for current on LCA based alphas In-Reply-To: <20001128014038.A44759@cicely8.cicely.de> References: <20001125193430.A40717@cicely8.cicely.de> <20001127224321.F1846@freebie.demon.nl> <20001128014038.A44759@cicely8.cicely.de> X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <14885.23282.73569.898582@grasshopper.cs.duke.edu> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Bernd Walter writes: > > trap entry = 0x2 (memory management fault) > a0 = 0xfffffbf1e0000018 > a1 = 0x1 > a2 = 0x0 > pc = 0xfffffc0000557a10 > ra = 0xfffffc000055791c > curproc = 0xfffffc000062f118 > pid = 0, comm = swapper Bernd, Note the faulting address. It is not a k0seg address. This means something went negative, most likely in the LCA_CFGOFF macro. Here's why.. After Doug's busspace changes, the *pcib_{read,write}_config() functions were introduced. They take signed args and pass them to the CFGOFF macro. Previously, the arguments to the LCA_CFGOFF macro were provided by the lca_cfg{read,write}{b,w,l} functions and were unsigned. Can you try the following patch (after backing yours out). A similar patch fixes the same problem on an AlphaServer 2100. I'd like to fix this in all the pcib_{read,write}_config functions at once... Cheers, Drew Index: lca_pci.c =================================================================== RCS file: /home/ncvs/src/sys/alpha/pci/lca_pci.c,v retrieving revision 1.7 diff -u -r1.7 lca_pci.c --- lca_pci.c 2000/08/31 16:19:27 1.7 +++ lca_pci.c 2000/11/29 19:39:27 @@ -130,8 +130,8 @@ } while (0) u_int32_t -lca_pcib_read_config(device_t dev, int b, int s, int f, - int reg, int width) +lca_pcib_read_config(device_t dev, u_int b, u_int s, u_int f, + u_int reg, int width) { switch (width) { case 1: @@ -147,8 +147,8 @@ } static void -lca_pcib_write_config(device_t dev, int b, int s, int f, - int reg, u_int32_t val, int width) +lca_pcib_write_config(device_t dev, u_int b, u_int s, u_int f, + u_int reg, u_int32_t val, int width) { switch (width) { case 1: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message