From: Kumar Gala:
...
Fixed RTC support that requires a dummy memory read on the P2P
bridge to unlock the RTC and setup the default of the RTC alarm
registers to match with a basic x86 style CMOS RTC.
...
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/platforms/fsl_uli1575.c
...
+/* We have to do a dummy read on the P2P for the RTC to work, WTF
+static void __devinit quirk_final_uli5249(struct pci_dev *dev)
...
+ for (i =3D 0; i < PCI_BUS_NUM_RESOURCES; i++) {
+ if ((bus->resource[i]) &&
+ (bus->resource[i]->flags & IORESOURCE_MEM)) {
+ dummy =3D ioremap(bus->resource[i]->start, 0x4);
+ if (dummy) {
+ in_8(dummy);
This read (to resource->start) can cause a hang on 8572ds when there
is a PCI card plugged into the uli slot and the card is configured
(but not enabled) in the memory space.
The read is going to the slot, 2.11, which has 0x8000_0000 assigned.
=20
To be safe, the read needs to go to a device internal to the uli.
-ELS