yogeshwar sonawane wrote: > Hi all, > > By reading the PCI BAR value from PCI config space, one gets BAR > region starting address for that PCI device. > If device is 32-bit capable, then max 6 BARs are possible, but for > 64-bit PCI card, only 3 BAR regions are possible. ok. > > Generally, BIOS sets the address/value in these BARs which device > driver reads & access the device. I am referring linux OS. > So the BAR region address range OR starting address assignment is done by BIOS. > Can we change this address through device driver, by writing the PCI > BARs in PCI config space ? > There are apis to read/write to PCI config space. i don't think this is possible for a driver to reassign pci resources. > > Can i map a BAR region of a PCI device, above 4 GB (i.e. 64-bit addr) > instead of 32bit address(higher 32bits as 0) ? > If possible, how to do this ? check your bios: AMI bioses can work with PCI 64b devices. but i don't know if linux can be forced to assign 64b pci devices above 4GB. > > Writing/changing BAR register value through device driver, will > propagate till PCI root controller ? > Can setpci command be used for this ? i dont think you want to do that. the pci enumeration is the responsibility of the kernel, and you can't change this from a driver. look at /proc/iomem and you will see your device is part of a pci bus within a given MMIO window. maybe you can change yr device BARs within that window...but even this i dont recommend. the kernel parameter "pci=assign-busses" is supposed to re-enumerate the PCI hierarchy and you may like what linux did in that area better than what the bios did. i am saying all this with a grain of salt. i am also wondering how pci enumeration/resource allocation really works....i have recently looked at the code and it is not easy to figure out if on an arch like x86_64, devices can be set > 4GB, if and when they are moved... but i'll look more and get back to you if i find anything -jfs -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ