9.0-Release and Asus P5-NE motherboard

John Baldwin jhb at freebsd.org
Fri Jan 20 18:25:19 UTC 2012


On Friday, January 20, 2012 12:25:52 pm Matthieu Volat wrote:
> On Fri, 20 Jan 2012 09:28:55 -0500
> John Baldwin <jhb at freebsd.org> wrote:
> 
> > On Friday, January 20, 2012 8:21:28 am Matthieu Volat wrote:
> > > Hello,
> > > 
> > > For a week, I have been trying to boot the FreeBSD 9 installation media 
> > (usb, cdrom) on a computer with an Asus P5-NE motherboard (amd64, nvidia MCP51 
> > controller), but the kernel fails to initialize correctly.
> > 
> > I think the problem is with the nvidia chipset and MSI support.  There's not
> > an easy way to fix it via a tunable unfortunately.  You can try hacking
> > sys/dev/pci/pci.c to disable this code:
> > 
> > #if defined(__i386__) || defined(__amd64__) || defined(__powerpc__)
> > 	/*
> > 	 * Enable the MSI mapping window for all HyperTransport
> > 	 * slaves.  PCI-PCI bridges have their windows enabled via
> > 	 * PCIB_MAP_MSI().
> > 	 */
> > 	if (cfg->ht.ht_slave != 0 && cfg->ht.ht_msimap != 0 &&
> > 	    !(cfg->ht.ht_msictrl & PCIM_HTCMD_MSI_ENABLE)) {
> > 		device_printf(pcib,
> > 	    "Enabling MSI window for HyperTransport slave at pci%d:%d:%d:%d\n",
> > 		    cfg->domain, cfg->bus, cfg->slot, cfg->func);
> > 		 cfg->ht.ht_msictrl |= PCIM_HTCMD_MSI_ENABLE;
> > 		 WREG(cfg->ht.ht_msimap + PCIR_HT_COMMAND, cfg->ht.ht_msictrl,
> > 		     2);
> > 	}
> > #endif
> > 
> > -- 
> > John Baldwin
> 
> Thanks, you are absolutely right, I compiled a kernel disabling MSI-X support and it booted.
> 
> I wonder how this worked previously and not now. From what I see, there is a blacklist to disable unsupported chipsets... 

In 8.2 we did not have that chunk of code.  Some HT chipsets are fixed by this
code, some are not.  Linux has a lot of quirks for enabling MSI with different
HT chipsets that have not been ported to FreeBSD yet.  However, I'm largely
tempted to just blacklist the chipsets that don't work rather than adding lots
of quirks.

> Maybe this chipset should be added as a workaround (I wonder if I'm the only one with the problem)... 

No, there are a few other folks who have run into this, it's just not easy to
fix, and I have no way of testing possible fixes. :(

> The only references I found about MCP51 and MSI-X (<http://lists.freebsd.org/pipermail/svn-src-head/2010-November/022551.html>) seems to 
indicates that the chipset should work, but maybe with extra code...
> 
> I'm willing to test patches & so if somebody wants to have a look. 
> 
> -- 
> Matthieu Volat <mazhe at alkumuna.eu>
> 

-- 
John Baldwin


More information about the freebsd-stable mailing list