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.

About nand of DM368



Hi all;

     we used IPNC 368 MT5 to build our camera.  The camera run ok after flashing all the program. But run a long time(about one or tow month), some of cameras  had problem.

Using the uart, we see:

 U-Boot 2009.03-svn ( 2鏈?28 2011 - 11:17:14) 2011-02-28

I2C: ready
DRAM: 256 MB
NAND: NAND device: Manufacturer ID: 0x2c, Chip ID: 0x48 (Micron NAND 2GiB 3,3V 8-bit)
2048 MiB
*** Warning - bad CRC or NAND, using default environment

In: serial
Out: serial
Err: serial
Ethernet PHY: GENERIC @ 0x00
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x2400000, size 0x100
256 bytes read: OK

NAND read: device 0 offset 0xb400000, size 0xa00000
10485760 bytes read: OK

Loading from NAND 2GiB 3,3V 8-bit, offset 0xb000000
Image Name: Linux-2.6.18_pro500-davinci_IPNC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1841440 Bytes = 1.8 MB
Load Address: 80008000
Entry Point: 80008000
## Booting kernel from Legacy Image at 80700000 ...
Image Name: Linux-2.6.18_pro500-davinci_IPNC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1841440 Bytes = 1.8 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux........................................................................................................................... done, booting the kernel.
Linux version 2.6.18_pro500-davinci_IPNC_DM368_2.0_20110223 (root@fengxin.localdomain) (gcc 鐗堟湰 4.2.0 (MontaVista 4.2.0-16.0.32.0801914 2008-08-30)) #1 PREEMPT Thu Feb 24 09:07:14 CST 2011 2010-11-18
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
Machine: DaVinci DM368 IPNC
Memory policy: ECC disabled, Data cache writeback
DaVinci DM0365 variant 0x8
PLL0: fixedrate: 24000000, commonrate: 170000000, vpssrate: 340000000
PLL0: vencrate_sd: 68000000, ddrrate: 340000000 mmcsdrate: 48571428
PLL1: armrate: 432000000, voicerate: 14896551, vencrate_hd: 72000000
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 4, 32 byte lines, 128 sets
CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
Built 1 zonelists. Total pages: 24576
Kernel command line: mem=96M console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x82000000,16M ip=192.168.0.231:192.168.0.2:192.168.0.2:255.255.255.0:::off eth=00:21:49:00:00:35
TI DaVinci EMAC: kernel boot params Ethernet address: 00:21:49:00:00:35
PID hash table entries: 512 (order: 9, 2048 bytes)
Clock event device timer0_0 configured with caps set: 07
Console: colour dummy device 80x30
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 96MB = 96MB total
Memory: 76928KB available (3145K code, 651K data, 180K init)
Security Framework v1.0.0 initialized
Capability LSM initialized
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd
Freeing initrd memory: 16384K
NET: Registered protocol family 16
MUX: initialized GPIO79
MUX: initialized GPIO80
MUX: initialized GPIO81
MUX: initialized GPIO82
MUX: initialized GPIO83
MUX: initialized GPIO90
MUX: initialized GPIO33
MUX: initialized GPIO31
DaVinci: 104 gpio irqs
MUX: initialized GPIO20
MUX: initialized I2C_SCL
MUX: initialized GPIO87
MUX: initialized PWM2_G88
MUX: initialized KEYPAD
Generic PHY: Registered new driver
ch0 default output "COMPOSITE", mode "NTSC"
VPBE Encoder Initialized
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 4096 bind 2048)
TCP reno registered
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
squashfs: version 3.1 (2006/08/19) Phillip Lougher
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
yaffs Feb 24 2011 09:33:38 Installing.
SGI XFS with no debug enabled
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered (default)
LTT : ltt-facilities init
LTT : ltt-facility-core init in kernel
DAVINCI-WDT: DaVinci Watchdog Timer: heartbeat 60 sec
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO map 0x1c20000 mem 0xfbc20000 (irq = 40) is a 16550A
serial8250.0: ttyS1 at MMIO map 0x1d06000 mem 0xfbd06000 (irq = 41) is a 16550A
RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
Davinci EMAC MII Bus: probed
MAC address is 00:21:49:00:00:35
TI DaVinci EMAC Linux version updated 4.0
netconsole: not configured, aborting
Linux video capture interface: v2.00
Trying to register davinci display video device.
layer=c5548e00,layer->video_dev=c5548f60
Trying to register davinci display video device.
layer=c5548c00,layer->video_dev=c5548d60
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
i2c /dev entries driver
nand_davinci nand_davinci.0: Using 4-bit hardware ECC
NAND device: Manufacturer ID: 0x2c, Chip ID: 0x48 (Micron NAND 2GiB 3,3V 8-bit)
Creating 12 MTD partitions on "nand_davinci.0":
0x00080000-0x00c80000 : "UBL"
0x00c80000-0x01900000 : "uboot"
0x02000000-0x02400000 : "params"
0x02400000-0x02500000 : "otherparams"
0x03000000-0x03400000 : "kernel1"
0x03400000-0x0b000000 : "filesystem1"
0x0b000000-0x0b400000 : "kernel2"
0x0b400000-0x13000000 : "filesystem2"
0x13000000-0x14000000 : "ite_conf"
0x14000000-0x1c000000 : "ite_app"
0x1c000000-0x24000000 : "ite_bak"
0x24000000-0x80000000 : "data"
nand_davinci nand_davinci.0: hardware revision: 2.3
MUX: initialized SPI1_SDO
dm_spi.0: davinci SPI Controller driver at 0xc6865800 (irq = 43) use_dma=0
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
musb_hdrc: version 6.0, pio, host, debug=0
MUX: initialized GPIO32
musb_hdrc: USB Host mode controller at c6868000 using PIO, IRQ 12
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
dummy_hcd dummy_hcd: USB Host+Gadget Emulator, driver 02 May 2005
dummy_hcd dummy_hcd: Dummy host controller
dummy_hcd dummy_hcd: new USB bus registered, assigned bus number 2
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
davinci-mmc davinci-mmc.0: Supporting 4-bit mode
davinci-mmc davinci-mmc.0: Using DMA mode
IPv4 over IPv4 tunneling driver
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Time: timer0_1 clocksource has been installed.
Clock event device timer0_0 configured with caps set: 08
Switched to high resolution mode on CPU 0
IP-Config: Complete:
device=eth0, addr=192.168.0.231, mask=255.255.255.0, gw=192.168.0.2,
host=192.168.0.231, domain=, nis-domain=(none),
bootserver=192.168.0.2, rootserver=192.168.0.2, rootpath=
RAMDISK: cramfs filesystem found at block 0
RAMDISK: Loading 7008KiB [1 disk] into ram disk... done.
VFS: Mounted root (cramfs filesystem) readonly.
Freeing init memory: 180K
INIT: version 2.86 booting
0
mkdir: Cannot create directory `/dev/.test': Read-only file system
Error -3 while decompressing!
Starting the hotc03d2a02(2597)->c0da8000(4096)
plug events dispatcher: udevdSegmentation fault

failed!
0
Starting portmap daemon: portmap/etc/init.d/init-functions: line 70: /var/run/portmap.pid: No such file or directory
 

Our parameters is:

bootdelay=2
baudrate=115200
bootfile="uImage"
ethaddr=00:21:48:59:26:73
bootcmd=nboot.e 0x80700000 0 0x3000000;bootm 0x80700000
bootargs=mem=96M console=ttyS0,115200n8 root=/dev/ram0 rootfstype=cramfs rw initrd=0x82000000,10M ip=192.168.42.84:192.168.42.2:202.106.46.151:255.255.255.0:::off eth=00:21:49:00:01:22

 we used cramfs and it flash to mtdblock7;


.And appear decompressing error. Enter the system  and using command of 'dd' to read the nand flash and also appear error:

end_request: I/O error, dev mtdblock7, sector 6408
Buffer I/O error on device mtdblock7, logical block 801
end_request: I/O error, dev mtdblock7, sector 6408
Buffer I/O error on device mtdblock7, logical block 801

I think the cramfs is wrong, but i don't hnow why?  Anybody have good idea? 

  • HI,

     

    this error can happen when decompressing of NAND filesystem has failed.

    i see that you have given 0xa00000 as the NAND filesytem size, with development the size would have increased of your filesystem.

    So please increase it to higher size and see that if this issue exists

    Also, isee that you are using v2.0, you can move to latest version 2.6 to get software updates.

    One more thing, you can run the filesystem from NAND rather than copying to DDR. This botargs change can be seen in v2.6 userguide

     

    Regards,

     

    Raghu

     

  • Thank you for your apply at first!

    The filesystem had modified by us, it's small than 0xa00000.

    We also had modified the uboot, read the cramfs to memory, and do CRC verified, if the checkout is not correct, it will switch to run the filesystem from NAND.

    I just want to know,  what do lead the cramfs to  become error?  Why did it happen after a long time running?

    Thanks again!

  • Hi,

    OK, thanks for the details.

    So, based on the details you hva egiven i suspect that in long run there will be some stary access done by the system which is corrupting the NAND intrun the filsystem.

    This might be the reason it shows "error decompressing" message.

    Also, which are the processes that youa running? is the ARM load running high at any time? you can monitor memory usage in long run.

     

    Regards,

     

    Raghu

     

  • Hi,

      Thanks for your reply at first.

     I'm sure that the running processes don't operate to  cramfs filesystem partition. But they would operate the other partition(0x24000000-0x80000000 : "data") of NAND to record log.

      My running processes are:

    :

     and arm load is not very high.

    .

     In our recent test, we found the process of 'dh_daemon' had memory leak and resolve this bug.

    Do you think the problem is related to  the memory leak?

  • Hi,

    Have you solved this problem? We have the same issue on our custom board based on DM368 and using cramfs as rootfs type.

    Is there an explanation for this problem? We need your help.

    Thank you in advance.

  • Unfortunately we have the same issue

    We can confirm it is not due to stray access to NAND, as it happens even when the device is simply powered off for a few months

    Many of the units from a manufacturing lot from last year that were fully programmed and tested and working at that time, simply don't work any more due to NAND failures

    This is very disappointing