TI中文支持网
TI专业的中文技术问题搜集分享网站

DM385 + IPNC RDK3.8 -> 8-bit NAND flash is not detected in uboot?

Hi,

I'm working on custom DM385 board which uses 8-bit nand. Two boards with different NAND chip.(S34ML01G1 & MT29F1G08) but not a single NAND is getting detected. if we use same uboot in x16 bit DM385 board. It is detecting NAND.

When we read maf_id and device_id  i get 0x17 & 0x17 in uboot.

GPMC_CONFIG1 -> 0x00000800

CONTROL_STATUS -> 0x00000317

UBOOT  -> http://arago-project.org/git/projects/?p=u-boot-ipnc-rdk-dm81xx.git;a=summary
KERNEL -> http://arago-project.org/git/projects/?p=linux-ipnc-rdk-dm81xx.git;a=summary

can anybody help to solve these.

Thanks & regards,

Ganesh

Chris Meng:

Ganesh,

What is your HW pull-up/pull-down for BTMODE[12] (ball R3)?

http://arago-project.org/git/projects/?p=u-boot-ipnc-rdk-dm81xx.git;a=blobdiff;f=arch/arm/cpu/arm_cortexa8/ti81xx/sys_info.c;h=d8f7d3a7e47824bd9d65382063312c4f2026ec4c;hp=446f0d22673d6d6dfe505ef027447ad9739d2401;hb=f8466a54a20c05484c1f3d179dfe7ed97e280ffd;hpb=d4600377385cb7b35c77ec7d60f1a5edc540687b

        bw = __raw_readl(CONTROL_STATUS) & (SYSBOOT_BW_MASK);        bw >>= SYSBOOT_BW_POS;

Ganesh Biradar:

回复 Chris Meng:

Hi Chris,

BTMODE12 -> pull-down to ground.

In our case, we call get_sysboot_ipnc_bw(void)

So we changed  #define SYSBOOT_IPNC_BW_POS    (12) to (16)and also these  bw = __raw_readl(CONTROL_STATUS) & (SYSBOOT_IPNC_BW_MASK); bw >>= SYSBOOT_IPNC_BW_POS; if (bw == 0)    /* 8-bit nand if BTMODE BW pin on board is OFF */       return 0; else if (bw == 1)/* 16-bit nand if BTMODE BW pin on board is ON */       return 1;

regard,

Ganesh

Chris Meng:

回复 Ganesh Biradar:

Ganesh,

Device ID 0x17 is not in the Table 4-14. Supported NAND Devices of TRM.

Ganesh Biradar:

回复 Chris Meng:

Hi Chris,that is the problem,device_id & maf_id is 0x17 which is totally wrong.i tried to read device_id and maf_id two timeschip->cmdfunc(mtd, NAND_CMD_RESET, -1, -1);/* Send the command for reading device ID */chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);/* Read manufacturer and device IDs */*maf_id = chip->read_byte(mtd);dev_id = chip->read_byte(mtd);chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);/* Read manufacturer and device IDs */tmp_manf = chip->read_byte(mtd);tmp_id = chip->read_byte(mtd);printk(KERN_INFO "%s: second ID read did not match ""%02x,%02x,%02x,%02x against %02x,%02x\n", __func__,*maf_id, dev_id, third_id, fourth_id, tmp_manf, tmp_id);nand_get_flash_type: second ID read did not match 17,17 against 17,17.which is wrong. i need to know how to solve these problem.

But if convert 0x17 in binary format it is more like 10111 -> If see schematic it is actually reading BTMODE[0]-BTMODE[4] value which is SD Boot.

To confirm what i'm assuming, i removed jumper from BTMODE[2] now it is GND and i'm getting maf_id and dev_id as 0x13 & 0x13 -> 10011[NAND boot value].

Can you tell me the reason why it is acting like these.

regards,Ganesh

赞(1)
未经允许不得转载:TI中文支持网 » DM385 + IPNC RDK3.8 -> 8-bit NAND flash is not detected in uboot?
分享到: 更多 (0)