This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

GET/SET ONFI nand feature

Guru 20755 points
Other Parts Discussed in Thread: OMAP3530

Hello,

We try to enable "on-die ecc" feature in nand in Micron's nand MT29F4G16ABBDA.

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit)

I am doing set&get from u-boot, but after enabling the feature, I keep reading that its values is still disabled.

Is there any idea what might be wrong?

 This is still a part of the ongoing struggle with ecc issue with omap3530.  We still have failures with our nand, our last hope is enabling the on-die feature.

 

#define NAND_CMD_GET_FEATURES 0xee
#define NAND_CMD_SET_FEATURES 0xef

int set_on_die_ecc(struct mtd_info *mtd)

{

struct nand_chip *chip = mtd->priv;
int addr = 0x90;
int i =0, status;
uint8_t data;
uint8_t buf[8];

buf[0] = 0x8;
chip->cmdfunc(mtd,NAND_CMD_SET_FEATURES,addr,-1);
ndelay(1000);
chip->write_buf(mtd, buf,4);
status = chip->waitfunc(mtd, chip);
if (status & NAND_STATUS_FAIL)
return -EIO;

}


int test_on_die_ecc(struct mtd_info *mtd)

{
struct nand_chip *chip = mtd->priv;
int i =0;
int addr = 0x90;

uint8_t data; chip->cmdfunc(mtd,NAND_CMD_GET_FEATURES,addr,-1);
ndelay(1000);
data = chip->read_byte(mtd);
printf("0x%x\n",data);
}

Any idea or advise will help, 

Ran