pci: Map bars with offset and length
Evolve dm_pci_map_bar() to include an offset and length parameter. These allow a portion of the memory to be mapped and range checks to be applied. Passing both the offset and length as zero results in the previous behaviour and this is used to migrate the previous callers. Signed-off-by: Andrew Scull <ascull@google.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -59,7 +59,7 @@ static int designware_i2c_pci_of_to_plat(struct udevice *dev)
|
||||
priv->regs = (struct i2c_regs *)dm_pci_read_bar32(dev, 0);
|
||||
} else {
|
||||
priv->regs = (struct i2c_regs *)
|
||||
dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, PCI_REGION_MEM);
|
||||
dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, 0, 0, PCI_REGION_MEM);
|
||||
}
|
||||
if (!priv->regs)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -251,7 +251,7 @@ static int intel_i2c_probe(struct udevice *dev)
|
||||
ulong base;
|
||||
|
||||
/* Save base address from PCI BAR */
|
||||
priv->base = (ulong)dm_pci_map_bar(dev, PCI_BASE_ADDRESS_4,
|
||||
priv->base = (ulong)dm_pci_map_bar(dev, PCI_BASE_ADDRESS_4, 0, 0,
|
||||
PCI_REGION_IO);
|
||||
base = priv->base;
|
||||
|
||||
|
||||
@@ -792,7 +792,7 @@ static int octeon_i2c_probe(struct udevice *dev)
|
||||
|
||||
debug("TWSI PCI device: %x\n", bdf);
|
||||
|
||||
twsi->base = dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0,
|
||||
twsi->base = dm_pci_map_bar(dev, PCI_BASE_ADDRESS_0, 0, 0,
|
||||
PCI_REGION_MEM);
|
||||
} else {
|
||||
twsi->base = dev_remap_addr(dev);
|
||||
|
||||
Reference in New Issue
Block a user