diff options
| author | Stefano Babic <sbabic@denx.de> | 2012-12-08 12:02:45 +0100 | 
|---|---|---|
| committer | Stefano Babic <sbabic@denx.de> | 2012-12-08 12:02:45 +0100 | 
| commit | 05a860c228fe6c8f2e7aced8cc8ef88bc1038363 (patch) | |
| tree | 764536da9202b9de387a0d957829f64dfba818b7 /drivers/pci/fsl_pci_init.c | |
| parent | 393ff47ba3123208f7c4f08d63f114300a41d0c4 (diff) | |
| parent | fd4d564b3c80b111f18c93adb14233a6a7ddb0e9 (diff) | |
| download | olio-uboot-2014.01-05a860c228fe6c8f2e7aced8cc8ef88bc1038363.tar.xz olio-uboot-2014.01-05a860c228fe6c8f2e7aced8cc8ef88bc1038363.zip | |
Merge branch 'master' of git://git.denx.de/u-boot into master
Conflicts:
	drivers/power/power_fsl.c
	include/configs/mx35pdk.h
	include/configs/mx53loco.h
	include/configs/woodburn_common.h
	board/woodburn/woodburn.c
These boards still use the old old PMIC framework, so they
do not merge properly after the power framework was merged into
mainline.
Fix all conflicts and update woodburn to use Power Framework.
Signed-off-by: Stefano Babic <sbabic@denx.de>
Diffstat (limited to 'drivers/pci/fsl_pci_init.c')
| -rw-r--r-- | drivers/pci/fsl_pci_init.c | 22 | 
1 files changed, 22 insertions, 0 deletions
| diff --git a/drivers/pci/fsl_pci_init.c b/drivers/pci/fsl_pci_init.c index 48ae16374..77ac1f7c7 100644 --- a/drivers/pci/fsl_pci_init.c +++ b/drivers/pci/fsl_pci_init.c @@ -470,6 +470,28 @@ void fsl_pci_init(struct pci_controller *hose, struct fsl_pci_info *pci_info)  		}  #endif +#ifdef CONFIG_SYS_P4080_ERRATUM_PCIE_A003 +		if (enabled == 0) { +			serdes_corenet_t *srds_regs = (void *)CONFIG_SYS_FSL_CORENET_SERDES_ADDR; +			temp32 = in_be32(&srds_regs->srdspccr0); + +			if ((temp32 >> 28) == 3) { +				int i; + +				out_be32(&srds_regs->srdspccr0, 2 << 28); +				setbits_be32(&pci->pdb_stat, 0x08000000); +				in_be32(&pci->pdb_stat); +				udelay(100); +				clrbits_be32(&pci->pdb_stat, 0x08000000); +				asm("sync;isync"); +				for (i=0; i < 100 && ltssm < PCI_LTSSM_L0; i++) { +					pci_hose_read_config_word(hose, dev, PCI_LTSSM, <ssm); +					udelay(1000); +				} +				enabled = ltssm >= PCI_LTSSM_L0; +			} +		} +#endif  		if (!enabled) {  			/* Let the user know there's no PCIe link */  			printf("no link, regs @ 0x%lx\n", pci_info->regs); |