Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Sep 2001 20:48:53 +0200
From:      Wilko Bulte <wkb@freebie.xs4all.nl>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        Jim Pirzyk <Jim.Pirzyk@disney.com>, freebsd-alpha@FreeBSD.ORG
Subject:   Re: XFree86-4 and alpha DS10
Message-ID:  <20010903204853.A989@freebie.xs4all.nl>
In-Reply-To: <15250.28748.426132.928287@grasshopper.cs.duke.edu>; from gallatin@cs.duke.edu on Sun, Sep 02, 2001 at 01:45:48PM -0400
References:  <iss.430a.3b90248d.64c9f.1@mercury.fan.fa.disney.com> <15248.26093.985320.772619@grasshopper.cs.duke.edu> <20010901194419.B25898@freebie.xs4all.nl> <20010902115437.A28974@freebie.xs4all.nl> <15250.28748.426132.928287@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Sep 02, 2001 at 01:45:48PM -0400, Andrew Gallatin wrote:
> 
> Wilko Bulte writes:
> <...>
>  > (--) PCI:*(0:14:0) Matrox MGA 2164W rev 0, Mem @ 0x40000000/24,
>  > 0x018a0000/14, 0x01000000/23, BIOS @ 0x01880000/16
> <...>
>  > (WW) ****INVALID MEM ALLOCATION**** b: 0x18a0000 e: 0x18a3fff correcting
> 
> 
> Hmm.. "correcting" to what, I wonder?

This comes from:

common/xf86pciBus.c / ValidatePci()

            } else if (pvp->memBase[i]) {
                PV_M_RANGE(range,pvp,i,ResExcMemBlock);
                if (pvp->type[i] & PCI_MAP_MEMORY_CACHABLE) {
                    if (xf86IsSubsetOf(range,res_mp)
                        && ! ChkConflict(&range,own,SETUP)
                        && ! ChkConflict(&range,avoid,SETUP)
                        && ! ChkConflict(&range,NonSys,SETUP)) {
                        xf86FreeResList(own);
                        continue;
                    }
                }
                if (xf86IsSubsetOf(range,res_m_io)
                    && ! ChkConflict(&range,own,SETUP)
                    && ! ChkConflict(&range,avoid,SETUP)
                    && ! ChkConflict(&range,NonSys,SETUP)) {
                    xf86FreeResList(own);
                    continue;
                }
                xf86MsgVerb(X_WARNING, 0,
                        "****INVALID MEM ALLOCATION**** b: 0x%lx e: 0x%lx "
                        "correcting\a\n", range.rBegin,range.rEnd);
                if (ChkConflict(&range,own,SETUP)) {
                    xf86MsgVerb(X_INFO,3,"own\n");
                    xf86PrintResList(3,own);
                }
                if (ChkConflict(&range,avoid,SETUP)) {
                    xf86MsgVerb(X_INFO,3,"avoid\n");
                    xf86PrintResList(3,avoid);
                }
                if (ChkConflict(&range,NonSys,SETUP)) {
                    xf86MsgVerb(X_INFO,3,"NonSys\n");
                    xf86PrintResList(3,NonSys);
                }


> Can you insert enough debugging code to find out why it doesn't like
> this address and what it  is being corrected to?
> 
>  > (EE) MGA(0): No valid MMIO address in PCI config space

The code is probably:

#if !defined(__powerpc__)
    if (pMga->device->IOBase != 0) {
        /* Require that the config file value matches one of the PCI values.
*/
        if (!xf86CheckPciMemBase(pMga->PciInfo, pMga->device->IOBase)) {
            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                "IOBase 0x%08lX doesn't match any PCI base register.\n",
                pMga->device->IOBase);
            MGAFreeRec(pScrn);
            return FALSE;
        }
        pMga->IOAddress = pMga->device->IOBase;
        from = X_CONFIG;
    } else {
        /* details: mgabase1 sdk pp 4-11 */
        int i = ((pMga->Chipset == PCI_CHIP_MGA1064 && pMga->ChipRev < 3) ||
                    pMga->Chipset == PCI_CHIP_MGA2064) ? 0 : 1;
        if (pMga->PciInfo->memBase[i] != 0) {
            pMga->IOAddress = pMga->PciInfo->memBase[i] & 0xffffc000;
            from = X_PROBED;
        } else {
            xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
                        "No valid MMIO address in PCI config space\n");
            MGAFreeRec(pScrn);
            return FALSE;
        }
    }

out of drivers/mga/mga_driver.c

> Is the "MMIO" address the address mentioned above?  Can you trace this
> down thru the XF86-4 sources?

Well, a bit. But I do not pretend to understand too much about it to be
honest. 

-- 
|   / o / /  _   	Arnhem, The Netherlands    	email: wilko@FreeBSD.org
|/|/ / / /( (_) Bulte	

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?20010903204853.A989>