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>
index | next in thread | previous in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010903204853.A989>
