Subject: PCIe ASPM causes machine (HP Compaq 6735s) to sometimes freeze hard at boot at PCI initialization time

From: Thomas Renninger <[email-masked]>
Date: Fri, 28 Nov 2008 13:28:54 +0100

Hi,

The hang does not always happen.
On latest vanilla 2.6.28-rc6 it nearly always hangs, on a .27 SUSE kernel 
maybe 1 out for 3 times.

I very much expect (I am pretty sure now) it is PCIE ASPM.

I tried to compile out:
CONFIG_PCIEAER=y
CONFIG_PCIEASPM=y

Both disabled survived a reasonable amount of reboots, but when enabling 
CONFIG_PCIEASPM it did not boot anymore on the second try.

The machine is hanging at the network card's PCI initialization rather early, 
here is a photo of the hang:
ftp.suse.com/pub/people/trenn/HP_pci_aspm_hang.jpg

This is the network card:
Marvell 11ab:4357 (PCI ID) using the sky2 driver.
Once the machine booted (even with aspm enabled, the network device works
properly).

Possibly unrelated, because the machine hangs far before the sky2 driver kicks
in or does PCI subsystem already need to set something similar?:

The sky2 driver has some extra ASPM poking in its power_on routine:
/* set all bits to 0 except bits 15..12 and 8 */
                reg &= P_ASPM_CONTROL_MSK;
                sky2_pci_write32(hw, PCI_DEV_REG4, reg);

It seem to be this Marval/Yukon card:
CHIP_ID_YUKON_UL_2 = 0xba, /* YUKON-2 Ultra 2 */

Oh wait,
The SubDevice PCI ID (via hwinfo --netcard) is 0xba, but the driver thinks it
is a (via dmesg):
CHIP_ID_YUKON_FE_P = 0xb8, /* YUKON-2 FE+ */

Any ideas from people with more knowledge in the PCI(e) area is very much 
appreciated.

Thanks,

      Thomas