PCI Radeon RV100 detection hang on sparc64

Meelis Roos mroos at linux.ee
Tue Oct 1 01:43:20 PDT 2013


> > > That looks quite strange. I guess the kernel should map the ROM at the
> > > address OpenBoot/OF assigned to it. ( 10020000 ).
> > 
> > The address you see is a raw physical I/O address, which is a concatenation
> > of the I/O window physical address for that PCI controller and the
> > PCI bus assigned address.
> > 
> > This is what we store in the resource values.
> > 
> > The pci_assign_resource() path must have some bug that causes the
> > resource values to be set incorrectly or similar.
> > 
> > Meelis, what is the value of pci_resource_start(pdev, PCI_ROM_RESOURCE)
> > before the pci_map_rom() call?
> 
> [drm] radeon_read_bios: pci_resource_start(ROM)=000001FF10020000
> 
> I am a little confused here. ROM addressis OK but after pci_map_rom it 
> results in address that corresponds to another device?

I read more code and tried a couple of more things.

Using ofpci_debug=1 I get sensible output for scsi:

PCI: scan_bus[/pci at 1f,0/pci at 1] bus no 2
  * /pci at 1f,0/pci at 1/scsi at 1
    create device, devfn: 8, type: scsi-2
    class: 0x10000 device name: 0000:02:01.0
    parse addresses (40 bytes) @ fffff8003fedc1c0
  start: 1ff00002000, end: 1ff000020ff, i: 14
  start: 1ff00010000, end: 1ff0001ffff, i: 30
    adding to system ...

adding to system refers to pci_device_add(dev, bus) and that does not 
modify the PCI bus available windows in any way, at least by my reafing 
of the PCI code, so the PCI code does not know the resource ranges are 
now busy?

-- 
Meelis Roos (mroos at linux.ee)


More information about the dri-devel mailing list