PCI Radeon RV100 detection hang on sparc64

Meelis Roos mroos at linux.ee
Tue Sep 24 04:06:05 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?
> 
> That's certainly a bug.
> 
> So after pci_map_rom() pci_resource_start(ROM)=000001FF00000000, right?

I double checked it - yes:

before pci_map_rom:
[drm] radeon_read_bios: pci_resource_start(ROM)=000001FF10020000                                                                          

radeon 0000:02:02.0: BAR 6: assigned [mem 0x1ff00000000-0x1ff0001ffff]

after pci_map_rom:

[drm] radeon_read_bios, bios=000001ff00000000, pci_resource_start(ROM)=000001FF00000000, size=46592


[drm] radeon_read_bios: found ROM signature at 000001ff00000000
[drm] radeon_read_bios: bios=000001ff00000000, size=46592


-- 
Meelis Roos (mroos at linux.ee)


More information about the dri-devel mailing list