lkml.org 
[lkml]   [2005]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Ignore disabled ROM resources at setup
    On 8/29/05, Linus Torvalds <torvalds@osdl.org> wrote:
    >
    >
    > On Tue, 30 Aug 2005, Benjamin Herrenschmidt wrote:
    > >
    > > pci_map_rom "sees" that the resource is unassigned by testing the parent
    > > pointer, and calls pci_assign_resource() which, with this new patch,
    > > will do nothing.
    >
    > Ehh.. It didn't do anything with the old code either for that case, so
    > there's apparently something else also going on.
    >
    > It would write the base address, but since it wouldn't _enable_ the ROM
    > mapping (only the "non-enabled" case changed by this commit), the end
    > result from a hw standpoint should be exactly the same: the ROM isn't
    > actually mapped.
    >
    > So after pci_assign_resource(), the resource has literally been assigned,
    > but that patch should not have mattered in any way whether it was actually
    > _enabled_ or not.
    >
    > Now, there's clearly a difference. What has always worked is then to do
    >
    > pci_write_config_dword(dev,
    > PCI_ROM_ADDRESS,
    > PCI_ROM_ADDRESS_ENABLE | res->start)
    >
    > (well, these days you're supposed to use "pcibios_resource_to_bus()" to
    > get the start value to write out).
    >
    > Much preferable is probably to just enable the resource manually _before_
    > calling pci_assign_resource, ie do something like.
    >
    > dev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_ENABLE;
    > pci_assign_resource(dev, PCI_ROM_RESOURCE);
    >
    > But yes, if something used to just blindly set PCI_ROM_ADDRESS_ENABLE,
    > then that got broken. I grepped for that and didn't see anything like it,
    > but I guess people are doing it with the magic constant "1"..

    Nothing in the driver tree should be using PCI_ROM_ADDRESS_ENABLE
    except drivers/pci/*. Drivers that are still manipulating ROMs
    directly should be converted to use the PCI ROM API.

    I started to fix these but some of the use is non-obvious. It is best
    if the maintainers do it. These files are still directly manipulating
    ROMs:

    ide/pci/aec62xx.c
    ide/pci/cmd64x.c
    ide/pci/hpt34x.c
    ide/pci/hpt366.c
    ide/pci/pdc202xx_new.
    ide/pci/pdc202xx_old.c
    mtd/maps/pci.c
    net/sungem.c
    net/sunhme.c
    scsi/qla2xxx/qla_init.c
    video/console/sticore.c
    video/matrox/matroxfb_misc.c
    video/sis/sis_main.c

    --
    Jon Smirl
    jonsmirl@gmail.com
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-08-30 06:49    [W:0.022 / U:30.524 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site