On 05/07/2012 02:26 AM, Amit Virdi wrote:
> +     while (num_err--) {
> +             change_bit(0, &err_idx[i]);
> +             change_bit(1, &err_idx[i]);
> +
> +             if (err_idx[i] < 512 * 8) {
> +                     change_bit(err_idx[i], dat);
> +                     i++;
> +             }
> +     }

Is it normal to not count bit flips in the ECC itself?

> +{
> +     u_int ecc_tmp;
> +
> +     switch (fsmc_version) {
> +     case FSMC_VER8:
> +             /* Busy waiting for ecc computation to finish for 512 bytes */
> +             while (!(readl(&fsmc_regs_p->sts) & FSMC_CODE_RDY))
> +                     ;

Timeout?

> +     /*
> +      * ecc_oob is intentionally taken as u16. In 16bit devices, we end up
> +      * reading 14 bytes (7 words) from oob. The local array is to maintain
> +      * word alignment
> +      */
> +     uint16_t ecc_oob[7];
> +     uint8_t *oob = (uint8_t *)&ecc_oob[0];

Please use a union, or better an explicit alignment attribute.

> +enum {
> +     FSMC_VER1 = 1,
> +     FSMC_VER2,
> +     FSMC_VER3,
> +     FSMC_VER4,
> +     FSMC_VER5,
> +     FSMC_VER6,
> +     FSMC_VER7,
> +     FSMC_VER8,
> +};

Is this really necessary?

-Scott

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

Reply via email to