|
@@ -11,6 +11,7 @@
|
|
#include <asm/processor.h>
|
|
#include <asm/processor.h>
|
|
#include <asm/fsl_law.h>
|
|
#include <asm/fsl_law.h>
|
|
#include <asm/errno.h>
|
|
#include <asm/errno.h>
|
|
|
|
+#include <asm/fsl_errata.h>
|
|
#include "fsl_corenet2_serdes.h"
|
|
#include "fsl_corenet2_serdes.h"
|
|
|
|
|
|
#ifdef CONFIG_SYS_FSL_SRDS_1
|
|
#ifdef CONFIG_SYS_FSL_SRDS_1
|
|
@@ -203,7 +204,7 @@ u64 serdes_init(u32 sd, u32 sd_addr, u32 sd_prctl_mask, u32 sd_prctl_shift)
|
|
|
|
|
|
sel = (sfp_spfr0 >> FUSE_VAL_SHIFT) & FUSE_VAL_MASK;
|
|
sel = (sfp_spfr0 >> FUSE_VAL_SHIFT) & FUSE_VAL_MASK;
|
|
|
|
|
|
- if (sel == 0x01 || sel == 0x02) {
|
|
|
|
|
|
+ if (has_erratum_a007186() && (sel == 0x01 || sel == 0x02)) {
|
|
for (pll_num = 0; pll_num < SRDS_MAX_BANK; pll_num++) {
|
|
for (pll_num = 0; pll_num < SRDS_MAX_BANK; pll_num++) {
|
|
pll_status = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
|
pll_status = in_be32(&srds_regs->bank[pll_num].pllcr0);
|
|
debug("A007186: pll_num=%x pllcr0=%x\n",
|
|
debug("A007186: pll_num=%x pllcr0=%x\n",
|