On Wed, 2011-02-02 at 11:27 -0600, Kumar Gala wrote:
> +void cpu_late_init_r(void)
> +{
> +#ifdef CONFIG_QE
> +     uint qe_base = CONFIG_SYS_IMMR + 0x00080000; /* QE immr base */
> +     qe_init(qe_base);
> +     qe_reset();
> +#endif
> +}
You did not move qe_reset() inside qe_init() as you recommended.:)

For NAND boot case, the microcode needs to be read from nand flash via
nand_read first, so you might add some more code like:
+void cpu_late_init_r(void)
 +{
 +#ifdef CONFIG_QE
 +#ifdef CONFIG_SYS_QE_FW_IN_NAND
 +      int ret;
 +      size_t fw_length = CONFIG_SYS_QE_FW_LENGTH;

 +      /* load QE firmware from NAND flash to DDR first */
 +       ret = nand_read(&nand_info[0],(loff_t)CONFIG_SYS_QE_FW_IN_NAND,
 +               &fw_length, (u_char *)CONFIG_SYS_QE_FW_ADDR);

 +       if (ret && ret == -EUCLEAN) {
 +              printf ("NAND read for QE firmware at offset %x failed %
d\n",
 +                               CONFIG_SYS_QE_FW_IN_NAND, ret);
 +       }
 +#endif
 +      uint qe_base = CONFIG_SYS_IMMR + 0x00080000; /* QE immr base */
 +      qe_init(qe_base);
 +      qe_reset();
 +#endif
 +}

Haiying



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

Reply via email to