Bug 436324

Summary: RHEL4 installer kernels don't boot on a Intel DG965RY motherboard (G965 chipset)
Product: Red Hat Enterprise Linux 4 Reporter: David Howells <dhowells>
Component: kernelAssignee: David Howells <dhowells>
Status: CLOSED DUPLICATE QA Contact: Martin Jenner <mjenner>
Severity: low Docs Contact:
Priority: low    
Version: 4.6CC: tao
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-03-12 15:17:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Disable PCI IO & MEM access on a device we're probing for BAR size none

Description David Howells 2008-03-06 15:11:44 UTC
Description of problem:

I tried to install the x86_64 RHEL-4 U6 installer kernel on my test machine, 
which has a DG965RY chipset - this has Intel's onboard 3D graphics controller.

The boot locks solidly during the probing of the PCI hardware as far as I can 
tell:

  ...
  PCI: Using configuration type 1
  PCI: Using MMCONFIG at f0000000
  mtrr: v2.0 (20020519)
  ACPI: Subsystem revision 20040816
  ACPI: Interpreter enabled
  ACPI: Using IOAPIC for interrupt routing
  ACPI: PCI Root Bridge [PCI0] (00:00)
  PCI: Probing PCI hardware (bus 00)

At this point, the computer must be given a hard reset.

I've tried various other RHEL-4 installer kernels too, including gold, and 
both AS and Desktop, but to no avail.  All fail in the same manner.  RHEL-5 
kernels, various Fedora kernels, and all the 2.6 kernels I've built for it 
since Sept 2006 work.  Also, i386 kernels show the same malfunction.

The same kernels do, however, boot on my desktop box, which has a DP965LT of 
similar age.  This lacks the on-board graphics.

My test box has no PCI devices plugged into the expansion bus.

Comment 1 David Howells 2008-03-11 19:40:08 UTC
I put some printks into the PCI probing code, and have determined that the box 
locks up when pci_read_bases() attempts to determine the size of 
PCI_BASE_ADDRESS_2 with this line:

		reg = PCI_BASE_ADDRESS_0 + (pos << 2);
		pci_read_config_dword(dev, reg, &l);
		pci_write_config_dword(dev, reg, ~0);  <<<<<<<<<< here
		pci_read_config_dword(dev, reg, &sz);
		pci_write_config_dword(dev, reg, l);


Comment 2 David Howells 2008-03-11 19:44:07 UTC
Adding "pci=nommconf" to the command line fixes the problem.

Comment 3 David Howells 2008-03-11 23:38:00 UTC
Created attachment 297689 [details]
Disable PCI IO & MEM access on a device we're probing for BAR size

The G965 graphics hardware BARs can be probed, provided that access through the
I/O and Memory regions on that device are disabled for the duration of the
probe.	I'm told by an Intel engineer that PCI_COMMAND_{IO,MEMORY} should
always be disabled during BAR probing.

Comment 4 Prarit Bhargava 2008-03-12 15:17:25 UTC

*** This bug has been marked as a duplicate of 250313 ***