Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Nov 2000 18:40:23 +0100
From:      Bernd Walter <ticso@cicely8.cicely.de>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        Wilko Bulte <wkb@freebie.demon.nl>, Mike Eldridge <diz@cafes.net>, freebsd-current@freebsd.org
Subject:   Re: Patch for current on LCA based alphas
Message-ID:  <20001130184022.A48497@cicely8.cicely.de>
In-Reply-To: <14885.23282.73569.898582@grasshopper.cs.duke.edu>; from gallatin@cs.duke.edu on Wed, Nov 29, 2000 at 02:47:54PM -0500
References:  <20001125193430.A40717@cicely8.cicely.de> <Pine.LNX.4.10.10011271439450.21970-100000@mail.cafes.net> <20001127224321.F1846@freebie.demon.nl> <20001128014038.A44759@cicely8.cicely.de> <14885.23282.73569.898582@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Nov 29, 2000 at 02:47:54PM -0500, Andrew Gallatin wrote:
> 
> 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...

I also needed to change the prototype in alpha/pci/lcavar.h.
The host booted fine but we should clear if 32 bit is the correct
way to do it. I don't have any device over 12 so it may not be
visible if there is a fault.

> 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:

-- 
B.Walter              COSMO-Project         http://www.cosmo-project.de
ticso@cicely.de         Usergroup           info@cosmo-project.de



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




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