Date: Mon, 13 Jul 2009 08:03:16 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-acpi@freebsd.org Subject: Re: SunFire x4275 Message-ID: <200907130803.17161.jhb@freebsd.org> In-Reply-To: <17574_1247071910_4A54CEA6_17574_42_1_4A54CE95.4090503@davisvision.com> References: <17574_1247071910_4A54CEA6_17574_42_1_4A54CE95.4090503@davisvision.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 08 July 2009 12:51:33 pm Jesse Kempf wrote: > Hi, > We recently got in a SunFire x4275, one of Sun's new Nehalem boxes. The > full server architecture whitepaper is here: > https://www.sun.com/offers/details/X4x70_server_architecture.html > (requires registration). > > The upshot of the system is that there are a pair of "intelligent" > risers in the machine, which take a x8 PCIe link and mux it to a pair of > x8 PCIe links. Sun uses the IDT PES24T6G2 PCIe switch to do the muxing. > > FreeBSD, when it boots, can't see past the risers. This holds for both > 7.2p1 and 8-CURRENT. It can see the IDT PCIe switches, and if a PCIe > card is moved off the intelligent riser, to the one dumb riser in the > machine, the card can be seen. Interestingly, when I boot FreeBSD with > ACPI turned off, all the devices past the risers can be seen, but device > attachment fails spectacularly. > > I've tried setting debug.acpi.disabled for individual subsystems that > make sense, and have not been able to come up with a combination that > allows the system to boot as well as see past the risers. From what I > understand, this is not too surprising. > > When I say "can't see past the risers", I mean: > > pcib9: <ACPI PCI-PCI bridge> at device 0.0 on pci25 > pcib9: domain 0 > pcib9: secondary bus 26 > pcib9: subordinate bus 38 > pcib9: I/O decode 0x8000-0x9fff > pcib9: memory decode 0xfaa00000-0xfabfffff > pcib9: no prefetched decode > device_attach: pcib9 attach returned 6 Hmm, I would add printfs to each failing return() in the attach methods of sys/dev/acpica/acpi_pcib_pci.c to see where it is failing. I bet you are failing on this: /* * Don't attach if we're not really there. * * XXX: This isn't entirely correct since we may be a PCI bus * on a hot-plug docking station, etc. */ if (!acpi_DeviceIsPresent(dev)) return_VALUE(ENXIO); I'm guessing both bridges are returning not present via _STA? -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907130803.17161.jhb>