Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jan 2012 13:25:17 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Matthieu Volat <mazhe@alkumuna.eu>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: 9.0-Release and Asus P5-NE motherboard
Message-ID:  <201201201325.17907.jhb@freebsd.org>
In-Reply-To: <20120120182552.683bba8b.mazhe@alkumuna.eu>
References:  <20120120142128.0c6ba578.mazhe@alkumuna.eu> <201201200928.55558.jhb@freebsd.org> <20120120182552.683bba8b.mazhe@alkumuna.eu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Friday, January 20, 2012 12:25:52 pm Matthieu Volat wrote:
> On Fri, 20 Jan 2012 09:28:55 -0500
> John Baldwin <jhb@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@alkumuna.eu>
> 

-- 
John Baldwin



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