diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2023-04-21 12:14:02 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2023-05-23 09:11:27 +0200 |
commit | 299e18703d7c75ab57e5067530f50da2fc39cc0a (patch) | |
tree | 4bd1a39c6e814b65ae44f133af7a85596420fd63 /drivers | |
parent | 60c6ea8d80bbdbf3b92e789c96d46c781766eec2 (diff) | |
download | barebox-299e18703d7c75ab57e5067530f50da2fc39cc0a.tar.gz barebox-299e18703d7c75ab57e5067530f50da2fc39cc0a.tar.xz |
pci: set upper word for 64bit base addresses
Set the upper word correctly when the PCI address space is outside
the 32bit range.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/pci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 57a7a75f84..3fb3e6165b 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -221,9 +221,11 @@ static void setup_device(struct pci_dev *dev, int max_bar) } *last_addr = ALIGN(*last_addr, size); - pci_write_config_dword(dev, pci_base_address_0, *last_addr); + pci_write_config_dword(dev, pci_base_address_0, + lower_32_bits(*last_addr)); if (mask & PCI_BASE_ADDRESS_MEM_TYPE_64) - pci_write_config_dword(dev, pci_base_address_1, 0); + pci_write_config_dword(dev, pci_base_address_1, + upper_32_bits(*last_addr)); start = *last_addr; *last_addr += size; } else { |