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