Alexander Holler wrote: > atmel_nand.c with HW-ECC doesn't compile with the new SoC access. > Using CONFIG_AT91_LEGACY to circumvent the compile errors only leaves > the driver in a state where it doesn't find the NAND. > > To use HW-ECC with atmel_nand one has to use > CONFIG_SYS_NAND_ECC_BASE AT91_ECC0_BASE (instead of AT91_ECC0) > for an AT91SAM9263 or AT91_ECC_BASE for an AT91SAM9260. >
Nak The new Soc access is the preferred method. The fix should use the Soc access, not the legacy method. Tom > I've removed three unused variables too. > --- > drivers/mtd/nand/atmel_nand.c | 7 +++---- > 1 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c > index d5eb54a..5f10a02 100644 > --- a/drivers/mtd/nand/atmel_nand.c > +++ b/drivers/mtd/nand/atmel_nand.c > @@ -35,9 +35,9 @@ > > /* Register access macros */ > #define ecc_readl(add, reg) \ > - readl(AT91_BASE_SYS + add + ATMEL_ECC_##reg) > + readl(add + ATMEL_ECC_##reg) > #define ecc_writel(add, reg, value) \ > - writel((value), AT91_BASE_SYS + add + ATMEL_ECC_##reg) > + writel((value), add + ATMEL_ECC_##reg) > > #include "atmel_nand_ecc.h" /* Hardware ECC registers */ > > @@ -79,7 +79,6 @@ static struct nand_ecclayout atmel_oobinfo_small = { > static int atmel_nand_calculate(struct mtd_info *mtd, > const u_char *dat, unsigned char *ecc_code) > { > - struct nand_chip *nand_chip = mtd->priv; > unsigned int ecc_value; > > /* get the first 2 ECC bytes */ > @@ -167,7 +166,7 @@ static int atmel_nand_correct(struct mtd_info *mtd, > u_char *dat, > u_char *read_ecc, u_char *isnull) > { > struct nand_chip *nand_chip = mtd->priv; > - unsigned int ecc_status, ecc_parity, ecc_mode; > + unsigned int ecc_status; > unsigned int ecc_word, ecc_bit; > > /* get the status from the Status Register */ _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot