mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-18 21:21:37 +00:00
pci: pci_mvebu: set BAR0 after memory space is set
The non-DM version of this driver used to set BAR0 register after the calls to pci_set_region. I found out that for some strange reason the ath10k driver in kernel fails to work if this is done the other way around. I know that Linux's driver should not depend on how U-Boot does things, but for some strange reason it does and this seems to be the simplest solution. Fix it since it caused regressions on Omnia. Signed-off-by: Marek Behún <marek.behun@nic.cz> Cc: Stefan Roese <sr@denx.de> Cc: Dirk Eibach <dirk.eibach@gdsys.cc> Cc: Mario Six <mario.six@gdsys.cc> Cc: Chris Packham <chris.packham@alliedtelesis.co.nz> Cc: Phil Sutter <phil@nwl.cc> Cc: VlaoMao <vlaomao@gmail.com> Tested-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
6de5a717c7
commit
193a1e9f19
1 changed files with 4 additions and 4 deletions
|
@ -313,10 +313,6 @@ static int mvebu_pcie_probe(struct udevice *dev)
|
||||||
reg |= BIT(10); /* disable interrupts */
|
reg |= BIT(10); /* disable interrupts */
|
||||||
writel(reg, pcie->base + PCIE_CMD_OFF);
|
writel(reg, pcie->base + PCIE_CMD_OFF);
|
||||||
|
|
||||||
/* Set BAR0 to internal registers */
|
|
||||||
writel(SOC_REGS_PHY_BASE, pcie->base + PCIE_BAR_LO_OFF(0));
|
|
||||||
writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
|
|
||||||
|
|
||||||
/* PCI memory space */
|
/* PCI memory space */
|
||||||
pci_set_region(hose->regions + 0, pcie->mem.start,
|
pci_set_region(hose->regions + 0, pcie->mem.start,
|
||||||
pcie->mem.start, PCIE_MEM_SIZE, PCI_REGION_MEM);
|
pcie->mem.start, PCIE_MEM_SIZE, PCI_REGION_MEM);
|
||||||
|
@ -326,6 +322,10 @@ static int mvebu_pcie_probe(struct udevice *dev)
|
||||||
PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);
|
PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);
|
||||||
hose->region_count = 2;
|
hose->region_count = 2;
|
||||||
|
|
||||||
|
/* Set BAR0 to internal registers */
|
||||||
|
writel(SOC_REGS_PHY_BASE, pcie->base + PCIE_BAR_LO_OFF(0));
|
||||||
|
writel(0, pcie->base + PCIE_BAR_HI_OFF(0));
|
||||||
|
|
||||||
bus++;
|
bus++;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue