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
[EMAIL PROTECTED] Usergroup [EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message