8.0/amd64 does not detect ata channels on nVidia nForce MCP55
John Baldwin
jhb at freebsd.org
Tue Sep 29 12:04:09 UTC 2009
On Monday 28 September 2009 10:35:28 am Nick Hilliard wrote:
> Hello,
>
> this was previously brought up on -current, but they suggested moving the
> topic over here.
>
> As the subject suggests, freebsd 8.0 on amd64 does not detect all ata
> channels on nVidia nForce MCP55, unless you configure hw.pci.mcfg=0 in
> loader.conf. There was some discussion here:
>
> > http://lists.freebsd.org/pipermail/freebsd-current/2009-August/011137.html
> >
http://lists.freebsd.org/pipermail/freebsd-current/2009-September/011162.html
>
> and more here:
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=128686
> http://www.freebsd.org/cgi/query-pr.cgi?pr=132372
> http://www.freebsd.org/cgi/query-pr.cgi?pr=137942
>
> If there is a developer interested in fixing this, I have a machine running
> 8.0 off a flash disk which is displaying this problem, and can set up an
> account for remote access.
>
> Any takers?
Try this patch obtaining the dmesg output for both the MCFG and !MCFG case:
Index: ata-nvidia.c
===================================================================
--- ata-nvidia.c (revision 197581)
+++ ata-nvidia.c (working copy)
@@ -154,11 +154,14 @@
ctlr->r_type2 = SYS_RES_IOPORT;
else
ctlr->r_type2 = SYS_RES_MEMORY;
+ printf("%s: r_type2 = %s\n", __func__, ctlr->r_type2 == SYS_RES_IOPORT ?
+ "I/O" : "memory");
ctlr->r_rid2 = PCIR_BAR(5);
if ((ctlr->r_res2 = bus_alloc_resource_any(dev, ctlr->r_type2,
&ctlr->r_rid2, RF_ACTIVE))) {
int offset = ctlr->chip->cfg1 & NV4 ? 0x0440 : 0x0010;
+ pritnf("%s: allocated res2 ok\n", __func__);
ctlr->ch_attach = ata_nvidia_ch_attach;
ctlr->ch_detach = ata_pci_ch_detach;
ctlr->reset = ata_nvidia_reset;
--
John Baldwin
More information about the freebsd-amd64
mailing list