Oops, I copied wrong alternative of the ERRATA. Correct one this time.

Le 06/07/2017 à 13:12, Christophe LEROY a écrit :


Le 06/07/2017 à 12:56, Wolfgang Denk a écrit :
Dear Christophe,

In message <466a431b5430548a018c21222080ed4040596147.1499329461.git.christophe.le...@c-s.fr> you wrote:
Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr>
---
  arch/powerpc/cpu/mpc8xx/cpu_init.c | 8 ++++++++
  1 file changed, 8 insertions(+)

diff --git a/arch/powerpc/cpu/mpc8xx/cpu_init.c b/arch/powerpc/cpu/mpc8xx/cpu_init.c
index cf1280983a..52406e8483 100644
--- a/arch/powerpc/cpu/mpc8xx/cpu_init.c
+++ b/arch/powerpc/cpu/mpc8xx/cpu_init.c
@@ -51,6 +51,14 @@ void cpu_init_f(immap_t __iomem *immr)
      clrsetbits_be32(&immr->im_clkrst.car_sccr, ~SCCR_MASK,
              CONFIG_SYS_SCCR);
  +    /* BUG MPC866 GLL2 consideration */
+    reg = in_be32(&immr->im_clkrst.car_sccr);
+    /* probably we use the mode 1:2:1 */
+    if ((reg & 0x00060000) == 0x00020000) {
+        clrbits_be32(&immr->im_clkrst.car_sccr, 0x00060000);
+        setbits_be32(&immr->im_clkrst.car_sccr, 0x00020000);
+    }

Like a few lines above, you could/should use a single call to
clrsetbits_be32() here.  And as Heiko already commented, please use
readable names istead of the magic numbers.

I shall not use clrsetbits_be32(), because the ERRATA says:

The ERRATA says:
Reprogram the SCCR:
1.   Write 1'b00 to SCCR[EBDF].
2.   Write 1'b01 to SCCR[EBDF].
3.   Rewrite the desired value to the PLPRCR register

Christophe


Program the PLPRCR such that the PLL clock will change, then reprogram the PLPRCR value back to the desired value

Christophe


Reviewed-by: Wolfgang Denk <w...@denx.de>


Best regards,

Wolfgang Denk

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to