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.

Enabling Watchdog creates problem in DM355 DaVinci

Starting kernel ...

Linux version 2.6.10_mvl401 (cme@localhost.localdomain) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #413 Fri Nov 27 10:34:19 GMT 2009
CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
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
Machine: DaVinci DM355 EVM
Memory policy: ECC disabled, Data cache writeback
***** BC ***** map_io
DM0350
***** BC ***** mux_init 77 77
****PLL_CNTRL0 = 32768
****postdiv = 1
****PLL1_PLLM = 144
****Clock fixed rate = 24000000
****Clock arm rate = 216000000
****Clock common rate = 108000000
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
MUX: initialized UART2_TXD
MUX: initialized UART2_RXD
MUX: initialized UART2_CTS
MUX: initialized UART2_RTS
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
Built 1 zonelists
Kernel command line: mem=116M console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off v4l2_video_capture=device:OMV9655 video=davincifb:vid0=640x480x16,1800K:vid1=640x480x16,1800K:osd0=640x480x16,1800K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal
PID hash table entries: 512 (order: 9, 8192 bytes)
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: 116MB = 116MB total
Memory: 115200KB available (1849K code, 428K data, 156K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
spawn_desched_task(00000000)
desched cpu_callback 3/00000000
ksoftirqd started up.
desched cpu_callback 2/00000000
desched thread 0 started up.
NET: Registered protocol family 16
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_GPIO
DaVinci: 104 gpio irqs
Registering platform device 'serial8250.0'. Parent at platform
Registering platform device 'musb_hdrc'. Parent at platform
Registering platform device 'nand_davinci.0'. Parent at platform
Registering platform device 'mmc.0'. Parent at platform
Set up TRUSCENE GPIO requirements
MUX: initialized GPIO80
MUX: initialized GPIO31
MUX: initialized GPIO32
MUX: initialized GPIO54
MUX: initialized GPIO55_56
MUX: initialized GPIO57_67
MUX: initialized GPIO16
MUX: initialized GPIO17
MUX: initialized GPIO23
MUX: initialized GPIO24
MUX: initialized GPIO30
DaVinci I2C DEBUG: 12:15:42 Sep  9 2009
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_I2C
Registering platform device 'i2c'. Parent at platform
ch0 default output "COMPOSITE", mode "PAL"
VPBE Encoder Initialized
SCSI subsystem initialized
Registering platform device 'dm_spi.0'. Parent at platform
Registering platform device 'dm_spi.1'. Parent at platform
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
yaffs Sep  9 2009 12:15:20 Installing.
Initializing Cryptographic API
Registering platform device 'davincifb.0'. Parent at platform
davincifb davincifb.0: dm_osd0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_vid0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_osd1_fb: 720x576x4@0,0 with framebuffer size 1620KB
davincifb davincifb.0: dm_vid1_fb: 640x480x16@0,0 with framebuffer size 1800KB
watchdog: [davinci_wdt.c] TI DaVinci Watchdog Timer(not Enabled): timer margin 128 sec
Registering platform device 'davinci_pwm0.0'. Parent at platform
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_PWM0
MUX: initialized PWM0
Serial: 8250/16550 driver $Revision: 1.1.1.1 $ 4 ports, IRQ sharing disabled
Registering platform device 'serial8250'. Parent at platform
ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
ttyS1 at MMIO 0x1c20400 (irq = 41) is a 16550A
ttyS2 at MMIO 0x1e06000 (irq = 14) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
i2c /dev entries driver
Linux video capture interface: v1.00
MT9T001_I2C_STARTED
ovcamchip: v1.00 for Linux 2.6 : OV9655 I2C driver
 : ERROR: MSP430 register read error

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failed
 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failedOV Camera Version = 0x63
CME_camera_detect = 0
vpfe_init_started_CME
Registering platform device 'vpfe.1'. Parent at platform
OMV9655_in_init_CME
CME_OVM9655 present  0
CME_sops_init_called
OV9665_write_reg_finished
vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
Registering platform device 'DavinciDisplay.1'. Parent at platform
Trying to register davinci display video device.
layer=c09f0000,layer->video_dev=c09f0164
Trying to register davinci display video device.
layer=c09e1e00,layer->video_dev=c09e1f64
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
ipipe major#: 253, minor# 0
Registering platform device 'dm355_ipipe.2'. Parent at platform
ipipe driver registered
af major#: 252, minor# 0
Registering platform device 'dm355_af.2'. Parent at platform
aew major#: 251, minor# 0
Registering platform device 'dm355_aew.2'. Parent at platform
elevator: using anticipatory as default io scheduler
nand_davinci nand_davinci.0: Using 4-bit hardware ECC
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
2 NAND chips detected
nand_bbt: ECC error while reading bad block table
nand_bbt: ECC error while reading bad block table
Creating 5 MTD partitions on "nand_davinci.0":
0x00000000-0x003c0000 : "bootloader"
0x003c0000-0x00400000 : "params"
0x00400000-0x00800000 : "kernel"
0x00800000-0x02800000 : "root_filesystem"
0x02800000-0x22800000 : "camera_filesystem"
nand_davinci nand_davinci.0: hardware revision: 2.3
mice: PS/2 mouse device common for all mice
***** BC ***** dm355_setup_pinmux -DAVINCI_LPSC_MMC_SD0
mmc mmc.0: Supporting 4-bit mode
mmc mmc.0: Using DMA mode
NET: Registered protocol family 1
NET: Registered protocol family 17
mmcblk0: mmc0:96e9 SU01G 992000KiB
 mmcblk0: p1
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
VFS: Mounted root (yaffs2 filesystem).
Freeing init memory: 156K
INIT: Entering runlevel: 3
Sat Nov 28 16:49:00 UTC 2009

PWRMGMT: Starting Power Management Thread
Total Ign Time read = 1
PWRMGMT: RedThreshold=1200, OrangeThreshold=800
PWRMGMT: A2D is Down!
PWRMGMT: Flip Closed, blanking the screen
PWRMGMT: Off Cradle, start the Idle timer
OffCradleIdleTimer = 42949513
Starting internet superserver: inetd.
musb_hdrc: version 2.2a/db-0.4.8 [cppi-dma] [peripheral] [debug=0]
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_USB
musb_hdrc: ConfigData=0x06 (UTMI-8, dyn FIFOs, SoftConn)
musb_hdrc: MHDRC RTL version 1.300
musb_hdrc: USB Peripheral mode controller at c7866000 using DMA, IRQ 12
g_file_storage gadget: File-backed Storage Gadget, version: 20 October 2004
g_file_storage gadget: Number of LUNs=1
g_file_storage gadget-lun0: ro=0, file: /dev/mmcblk0
gpiodriver started
GPS Serial Reader - Attempting to use GPS on active console, not loading
gpsdriver started
dm_spi.0: davinci SPI Controller driver at 0xc786e000 (irq = 42) use_dma=0
dm_spi.1: davinci SPI Controller driver at 0xc7870800 (irq = 17) use_dma=0
PWRMGMT: A2D is Up!
PWRMGMT: Cancelled timer OffCradleIdleTimer
PWRMGMT: VBat State ON, start 2 minutes timer
GPRS module: V0.3 Nov 28 2009. Using port /dev/tts/2 16:08:41
Getting port settings for /dev/tts/2
Setting port to 4097
setserial sets custom speed on ttyS1. This is deprecated.
/dev/tts/1, UART: 16550A, Port: 0x0000, IRQ: 41, Flags: spd_cust
GPRS Modem GPIO detected
Send cmd: at =2 bytes
wait for ok
Resp[2]: OK (2 +4)
4f 4b
GPRS Modem autobaud detected
Send cmd: ate0 =4 bytes
wait for ok
Resp[2]: OK (2 +4)
4f 4b
Send cmd: at+cmgf=1 =9 bytes
wait for ok
Resp[2]: OK (2 +4)
4f 4b
Socket created
File /root/system_has_rebooted_for_update not found: No such file or directory
File /root/system_has_rebooted_as_requested not found: No such file or directory
File /root/system_has_rebooted_failed_update not found: No such file or directory
Send cmd: at+csq =6 bytes
Resp[10]: +CSQ: 9,99 (10 +4)
2b 43 53 51 3a 20 39 2c 39 39
Sig = 9
wait for ok
Resp[2]: OK (2 +4)
PWRMGMT: 4f 4b
New Gprs State, from GPRS_STATE_UNKNOWN to GPRS_STATE_OK
Send cmd: at+cmgl="rec unread" =20 bytes
Resp[2]: OK (2 +4)
4f 4b
Send cmd: at+cmgl="rec read" =18 bytes
Resp[2]: OK (2 +4)
4f 4b
sig = 9
ioremap_nocache(0x87400000, 12582912)=0xc7880000
allocated heap buffer 0xc7880000 of size 0xce000
cmem initialized 8 pools between 0x87400000 and 0x88000000
Encode demo started.
                    StartCapThread
                                  CME_UYVY
CME_MODESET=00002800
CME_CCDCFG=00008840
StartedCapThread
                File /root/system_has_rebooted_for_update not found: No such file or directory
                                                                                              File /root/system_has_rebooted_as_requested not found: No such file or directory
                                                    File /root/system_has_rebooted_failed_update not found: No such file or directory
           Send cmd: at+csq =6 bytes

MontaVista(R) Linux(R) Professional Edition 4.0.1 (0502020)

(none) login: PWRMGMT: Set CameraState to 1
Resp[10]: +CSQ: 9,99 (10 +4)
                            2b 43 53 51 3a 20 39 2c 39 39
                                                          Sig = 9
                                                                 wait for ok
                                                                            roResp[2]: OK (2 +4)
                                                                                                4f 4b
                                                                                                      Send cmd: at+cmgl="rec unread" =20 bytes
                    otResp[2]: OK (2 +4)
                                        4f 4b
                                              Send cmd: at+cmgl="rec read" =18 bytes
                                                                                    Resp[2]: OK (2 +4)
                                                                                                      4f 4b
                                                                                                            sig = 9



Welcome to MontaVista(R) Linux(R) Professional Edition 4.0.1 (0502020).

login[699]: root login  on `console'

# File /root/system_has_rebooted_for_update not found: No such file or directory
File /root/system_has_rebooted_as_requested not found: No such file or directory
File /root/system_has_rebooted_failed_update not found: No such file or directory
Send cmd: at+csq =6 bytes
Resp[10]: +CSQ: 9,99 (10 +4)
2b 43 53 51 3a 20 39 2c 39 39
Sig = 9
wait for ok
Resp[2]: OK (2 +4)
4f 4b
Send cmd: at+cmgl="rec unread" =20 bytes
Resp[2]: OK (2 +4)
4f 4b
Send cmd: at+cmgl="rec read" =18 bytes
Resp[2]: OK (2 +4)
4f 4b
sig = 9
File /root/system_has_rebooted_for_update not found: No such file or directory

Hi,

When we enable watchdog timer, after 175 hours (approx) we are facing file system crash (Kernel is booting up, but rcScripts & /opt/bin/binaries are not executed). Earlier we thought the issue was something with application modules and re-designed application modules. But this time i am very sure, the issue started after enabling Watchdog timer last week.

 

Work environment:

TI DaVinci processor (TMS320 DM355)  

Monta Vista Kernel (ported to busybox)

 

Doubts:

·         Do we need to add any extra hardware for enabling Watchdog timer? If so how it is working fine for 7 days (~175 hours)

·         I have copied ti watchdog file below (I have added davinci_wdt_enable() function call in wdt_init function), please look into it and let me know if i have to change any other parameters please

 

 /*
 * linux/drivers/char/watchdog/davinci_wdt.c
 *
 * Watchdog driver for the TI DAVINCI
 *
 * Copyright (c) 2006 Texas Instruments.
 *
 */

#include <linux/module.h>
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/miscdevice.h>
#include <linux/watchdog.h>
#include <linux/reboot.h>
#include <linux/smp_lock.h>
#include <linux/init.h>
#include <linux/err.h>
#include <asm/io.h>
#include <asm/uaccess.h>
#include <asm/hardware.h>
#include <asm/bitops.h>
#include <asm/hardware/clock.h>
#include <asm/arch/hardware.h>

#include <linux/moduleparam.h>
#include "davinci_wdt.h"

/* Instance of the private WDT device structure */
static struct wdt_davinci_device wdt_davinci_dev;

static int timer_margin = TIMER_MARGIN_CFG_VAL;    /* in seconds */
static int davinci_wdt_users;
static struct miscdevice davinci_wdt_miscdev;    /* Forward declaration */

static void davinci_wdt_ping(void)
{
    wdt_davinci_dev.regs->wdkey = 0xA5C6;
    wdt_davinci_dev.regs->wdkey = 0xDA7E;
    return;
}

static void davinci_wdt_enable(void)
{
    /* timer runs continuously */
    wdt_davinci_dev.regs->tcr |= 0x80;
    /* put watchdog in pre-active state */
    wdt_davinci_dev.regs->wdkey = 0xA5C6;
    /* put watchdog in active state */
    wdt_davinci_dev.regs->wdkey = 0xDA7E;

    return;
}

/*
 *    Allow only one person to hold it open
 */
static int davinci_wdt_open(struct inode *inode, struct file *file)
{
    if (test_and_set_bit(1, (unsigned long *)&davinci_wdt_users))
        return -EBUSY;

    davinci_wdt_enable();

    return 0;
}

static int davinci_wdt_release(struct inode *inode, struct file *file)
{
    return 0;
}

static loff_t davinci_wdt_llseek(struct file *file, loff_t offset, int whence)
{
    return -ESPIPE;        /* Not seekable */
}

static ssize_t
davinci_wdt_write(struct file *file, const char *data, size_t len,
          loff_t * ppos)
{
    /*  Can't seek (pwrite) on this device  */
    if (*ppos != file->f_pos)
        return -ESPIPE;

    /* Refresh LOAD_TIME. */
    if (len) {
        davinci_wdt_ping();
        return 1;
    }
    return 0;
}

static int
davinci_wdt_ioctl(struct inode *inode, struct file *file,
          unsigned int cmd, unsigned long arg)
{
    static struct watchdog_info ident = {
        .identity = "DaVinci Watchdog",
        .options = WDIOF_CARDRESET,
        .firmware_version = 0,
    };

    switch (cmd) {
    default:
        return -ENOIOCTLCMD;
    case WDIOC_GETSUPPORT:
        return copy_to_user((struct watchdog_info *)arg, &ident,
                    sizeof(ident));
    case WDIOC_GETSTATUS:
        return put_user(0, (int *)arg);
    case WDIOC_KEEPALIVE:
        davinci_wdt_ping();
        return 0;
    case WDIOC_GETTIMEOUT:
        return put_user(timer_margin, (int *)arg);
    }
}

static struct file_operations davinci_wdt_fops = {
    .owner = THIS_MODULE,
    .llseek = davinci_wdt_llseek,
    .write = davinci_wdt_write,
    .ioctl = davinci_wdt_ioctl,
    .open = davinci_wdt_open,
    .release = davinci_wdt_release,
};

static struct miscdevice davinci_wdt_miscdev = {
    .minor = WATCHDOG_MINOR,
    .name = "watchdog",
    .fops = &davinci_wdt_fops
};

static int __init davinci_wdt_init(void)
{
    int ret;

    ret = misc_register(&davinci_wdt_miscdev);

    if (ret)
        return ret;

    wdt_davinci_dev.regs = (davinci_wdtregsovly) DAVINCI_WDT_BASE;

    /* disable timer */
    wdt_davinci_dev.regs->tcr = 0x0;
    /* reset timer */
    wdt_davinci_dev.regs->tgcr = 0x0;

    /* configure timer2 as 64-bit */
    wdt_davinci_dev.regs->tgcr = 0x8;
    /* release timer from reset */
    wdt_davinci_dev.regs->tgcr |= 0x3;
    /* enable watchdog timer */
    wdt_davinci_dev.regs->wdtcr |= 0x4000;

    if (timer_margin < TIMER_MARGIN_MIN_VAL ||
        timer_margin > TIMER_MARGIN_MAX_VAL)
        timer_margin = TIMER_MARGIN_DEF_VAL;

    /* configure the period register */
    wdt_davinci_dev.regs->prd12 = CLOCK_TICK_RATE * timer_margin;

    printk(KERN_INFO "%s: [TI DaVinci] Watchdog Timer: timer margin %d sec\n",
           davinci_wdt_miscdev.name, timer_margin);

    davinci_wdt_enable();  // Santha - Added to enable watchdog timer

    return 0;
}

static void __exit davinci_wdt_exit(void)
{
    misc_deregister(&davinci_wdt_miscdev);
}

module_init(davinci_wdt_init);
module_exit(davinci_wdt_exit);

MODULE_AUTHOR("Texas Instruments");
MODULE_LICENSE("GPL");
module_param(timer_margin, int, 0);

 ==============================================================================

 

My application watchdog timer update file look like this

int main (void)
{
    int fd=0;

    int fd=open("/dev/watchdog",O_WRONLY);
    if (fd==-1) {
        perror("watchdog");
        exit(1);
    }

    while(1) {
        write(fd, "\0", 1);
        sleep(20);
    }

 return 0;
} //_________________________________________________________________________________. 

Chip initialization passed!
TI UBL Version: 1.30
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid MagicNum found.
   DONE
Jumping to entry point at 0x81080000.


U-Boot 1.2.0 (May 14 2009 - 17:15:32)

DRAM:  128 MB
NAND:  NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
2048 MiB
In:    serial
Out:   serial
Err:   serial
ARM Clock :- 216MHz
DDR Clock :- 171MHz
Hit any key to stop autoboot:  0
DM355 TS #
DM355 TS # setenv bootargs mem=116M console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off v4l2_video_capture=device:OMV9655 video=dav@FBAFBVA@0=640x080x11800K2vid1=640x480x16,1800K:osd0=640x480x16,1800K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal
DM355 TS #
DM355 TS #
DM355 TS # saveenv
Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
DM355 TS #
DM355 TS #
DM355 TS # boot

Loading from NAND 1GiB 3,3V 8-bit, offset 0x400000
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1091480 Bytes =  1 MB
   Load Address: 80008000
   Entry Point:  80008000
## Booting image at 80700000 ...
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1091480 Bytes =  1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.......................................................................
Linux version 2.6.10_mvl401 (cme@localhost.localdomain) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #619 Mon Feb 1 16:18:56 GMT 2010
CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
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
Machine: DaVinci DM355 EVM
Memory policy: ECC disabled, Data cache writeback
***** BC ***** map_io
DM0350
***** BC ***** mux_init 77 77
****PLL_CNTRL0 = 32768
****postdiv = 1
****PLL1_PLLM = 144
****Clock fixed rate = 24000000
****Clock arm rate = 216000000
****Clock common rate = 108000000
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
MUX: initialized UART2_TXD
MUX: initialized UART2_RXD
MUX: initialized UART2_CTS
MUX: initialized UART2_RTS
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
Built 1 zonelists
Kernel command line: mem=116M console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off v4l2_video_capture=device:OMV9655 video=davincifb:vid0=640x480x16,1800K:vid1=640x480x16,1800K:osd0=640x480x16,1800K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal
PID hash table entries: 512 (order: 9, 8192 bytes)
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: 116MB = 116MB total
Memory: 115200KB available (1849K code, 428K data, 156K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
spawn_desched_task(00000000)
desched cpu_callback 3/00000000
ksoftirqd started up.
desched cpu_callback 2/00000000
desched thread 0 started up.
NET: Registered protocol family 16
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_GPIO
DaVinci: 104 gpio irqs
Registering platform device 'serial8250.0'. Parent at platform
Registering platform device 'musb_hdrc'. Parent at platform
Registering platform device 'nand_davinci.0'. Parent at platform
Registering platform device 'mmc.0'. Parent at platform
Set up TRUSCENE GPIO requirements
MUX: initialized GPIO80
MUX: initialized GPIO31
MUX: initialized GPIO32
MUX: initialized GPIO54
MUX: initialized GPIO55_56
MUX: initialized GPIO57_67
MUX: initialized GPIO16
MUX: initialized GPIO17
MUX: initialized GPIO23
MUX: initialized GPIO24
MUX: initialized GPIO30
DaVinci I2C DEBUG: 12:15:42 Sep  9 2009
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_I2C
Registering platform device 'i2c'. Parent at platform
ch0 default output "COMPOSITE", mode "PAL"
VPBE Encoder Initialized
SCSI subsystem initialized
Registering platform device 'dm_spi.0'. Parent at platform
Registering platform device 'dm_spi.1'. Parent at platform
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
yaffs Sep  9 2009 12:15:20 Installing.
Initializing Cryptographic API
Registering platform device 'davincifb.0'. Parent at platform
davincifb davincifb.0: dm_osd0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_vid0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_osd1_fb: 720x576x4@0,0 with framebuffer size 1620KB
davincifb davincifb.0: dm_vid1_fb: 640x480x16@0,0 with framebuffer size 1800KB
watchdog: [TI DaVinci] Watchdog Timer-Enabled: timer margin 128 sec
Registering platform device 'davinci_pwm0.0'. Parent at platform
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_PWM0
MUX: initialized PWM0
Serial: 8250/16550 driver $Revision: 1.1.1.1 $ 4 ports, IRQ sharing disabled
Registering platform device 'serial8250'. Parent at platform
ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
ttyS1 at MMIO 0x1c20400 (irq = 41) is a 16550A
ttyS2 at MMIO 0x1e06000 (irq = 14) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
i2c /dev entries driver
Linux video capture interface: v1.00
MT9T001_I2C_STARTED
ovcamchip: v1.00 for Linux 2.6 : OV9655 I2C driver
 : ERROR: MSP430 register read error

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failed
 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failedOV Camera Version = 0x63
CME_camera_detect = 0
vpfe_init_started_CME
Registering platform device 'vpfe.1'. Parent at platform
OMV9655_in_init_CME
CME_OVM9655 present  0
CME_sops_init_called
OV9665_write_reg_finished
vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
Registering platform device 'DavinciDisplay.1'. Parent at platform
Trying to register davinci display video device.
layer=c09f0000,layer->video_dev=c09f0164
Trying to register davinci display video device.
layer=c09e1e00,layer->video_dev=c09e1f64
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
ipipe major#: 253, minor# 0
Registering platform device 'dm355_ipipe.2'. Parent at platform
ipipe driver registered
af major#: 252, minor# 0
Registering platform device 'dm355_af.2'. Parent at platform
aew major#: 251, minor# 0
Registering platform device 'dm355_aew.2'. Parent at platform
elevator: using anticipatory as default io scheduler
nand_davinci nand_davinci.0: Using 4-bit hardware ECC
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
2 NAND chips detected
nand_bbt: ECC error while reading bad block table
nand_bbt: ECC error while reading bad block table
Creating 5 MTD partitions on "nand_davinci.0":
0x00000000-0x003c0000 : "bootloader"
0x003c0000-0x00400000 : "params"
0x00400000-0x00800000 : "kernel"
0x00800000-0x02800000 : "root_filesystem"
0x02800000-0x22800000 : "camera_filesystem"
nand_davinci nand_davinci.0: hardware revision: 2.3
mice: PS/2 mouse device common for all mice
***** BC ***** dm355_setup_pinmux -DAVINCI_LPSC_MMC_SD0
mmc mmc.0: Supporting 4-bit mode
mmc mmc.0: Using DMA mode
NET: Registered protocol family 1
NET: Registered protocol family 17
mmcblk0: mmc0:f7e2 SU01G 992000KiB
 mmcblk0: p1
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
block 74 is bad
VFS: Mounted root (yaffs2 filesystem).
Freeing init memory: 156K

Chip initialization passed!
TI UBL Version: 1.30
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid MagicNum found.
   DONE
Jumping to entry point at 0x81080000.


U-Boot 1.2.0 (May 14 2009 - 17:15:32)

DRAM:  128 MB
NAND:  NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
2048 MiB
In:    serial
Out:   serial
Err:   serial
ARM Clock :- 216MHz
DDR Clock :- 171MHz
Hit any key to stop autoboot:  0

Loading from NAND 1GiB 3,3V 8-bit, offset 0x400000
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1091480 Bytes =  1 MB
   Load Address: 80008000
   Entry Point:  80008000
## Booting image at 80700000 ...
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1091480 Bytes =  1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.......................................................................
Linux version 2.6.10_mvl401 (cme@localhost.localdomain) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #619 Mon Feb 1 16:18:56 GMT 2010
CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
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
Machine: DaVinci DM355 EVM
Memory policy: ECC disabled, Data cache writeback
***** BC ***** map_io
DM0350
***** BC ***** mux_init 77 77
****PLL_CNTRL0 = 32768
****postdiv = 1
****PLL1_PLLM = 144
****Clock fixed rate = 24000000
****Clock arm rate = 216000000
****Clock common rate = 108000000
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
MUX: initialized UART2_TXD
MUX: initialized UART2_RXD
MUX: initialized UART2_CTS
MUX: initialized UART2_RTS
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
Built 1 zonelists
Kernel command line: mem=116M console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off v4l2_video_capture=device:OMV9655 video=davincifb:vid0=640x480x16,1800K:vid1=640x480x16,1800K:osd0=640x480x16,1800K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal
PID hash table entries: 512 (order: 9, 8192 bytes)
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: 116MB = 116MB total
Memory: 115200KB available (1849K code, 428K data, 156K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
spawn_desched_task(00000000)
desched cpu_callback 3/00000000
ksoftirqd started up.
desched cpu_callback 2/00000000
desched thread 0 started up.
NET: Registered protocol family 16
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_GPIO
DaVinci: 104 gpio irqs
Registering platform device 'serial8250.0'. Parent at platform
Registering platform device 'musb_hdrc'. Parent at platform
Registering platform device 'nand_davinci.0'. Parent at platform
Registering platform device 'mmc.0'. Parent at platform
Set up TRUSCENE GPIO requirements
MUX: initialized GPIO80
MUX: initialized GPIO31
MUX: initialized GPIO32
MUX: initialized GPIO54
MUX: initialized GPIO55_56
MUX: initialized GPIO57_67
MUX: initialized GPIO16
MUX: initialized GPIO17
MUX: initialized GPIO23
MUX: initialized GPIO24
MUX: initialized GPIO30
DaVinci I2C DEBUG: 12:15:42 Sep  9 2009
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_I2C
Registering platform device 'i2c'. Parent at platform
ch0 default output "COMPOSITE", mode "PAL"
VPBE Encoder Initialized
SCSI subsystem initialized
Registering platform device 'dm_spi.0'. Parent at platform
Registering platform device 'dm_spi.1'. Parent at platform
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
yaffs Sep  9 2009 12:15:20 Installing.
Initializing Cryptographic API
Registering platform device 'davincifb.0'. Parent at platform
davincifb davincifb.0: dm_osd0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_vid0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_osd1_fb: 720x576x4@0,0 with framebuffer size 1620KB
davincifb davincifb.0: dm_vid1_fb: 640x480x16@0,0 with framebuffer size 1800KB
watchdog: [TI DaVinci] Watchdog Timer-Enabled: timer margin 128 sec
Registering platform device 'davinci_pwm0.0'. Parent at platform
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_PWM0
MUX: initialized PWM0
Serial: 8250/16550 driver $Revision: 1.1.1.1 $ 4 ports, IRQ sharing disabled
Registering platform device 'serial8250'. Parent at platform
ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
ttyS1 at MMIO 0x1c20400 (irq = 41) is a 16550A
ttyS2 at MMIO 0x1e06000 (irq = 14) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
i2c /dev entries driver
Linux video capture interface: v1.00
MT9T001_I2C_STARTED
ovcamchip: v1.00 for Linux 2.6 : OV9655 I2C driver
 : ERROR: MSP430 register read error

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failed
 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failedOV Camera Version = 0x63
CME_camera_detect = 0
vpfe_init_started_CME
Registering platform device 'vpfe.1'. Parent at platform
OMV9655_in_init_CME
CME_OVM9655 present  0
CME_sops_init_called
OV9665_write_reg_finished
vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
Registering platform device 'DavinciDisplay.1'. Parent at platform
Trying to register davinci display video device.
layer=c09f0000,layer->video_dev=c09f0164
Trying to register davinci display video device.
layer=c09e1e00,layer->video_dev=c09e1f64
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
ipipe major#: 253, minor# 0
Registering platform device 'dm355_ipipe.2'. Parent at platform
ipipe driver registered
af major#: 252, minor# 0
Registering platform device 'dm355_af.2'. Parent at platform
aew major#: 251, minor# 0
Registering platform device 'dm355_aew.2'. Parent at platform
elevator: using anticipatory as default io scheduler
nand_davinci nand_davinci.0: Using 4-bit hardware ECC
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
2 NAND chips detected
nand_bbt: ECC error while reading bad block table
nand_bbt: ECC error while reading bad block table
Creating 5 MTD partitions on "nand_davinci.0":
0x00000000-0x003c0000 : "bootloader"
0x003c0000-0x00400000 : "params"
0x00400000-0x00800000 : "kernel"
0x00800000-0x02800000 : "root_filesystem"
0x02800000-0x22800000 : "camera_filesystem"
nand_davinci nand_davinci.0: hardware revision: 2.3
mice: PS/2 mouse device common for all mice
***** BC ***** dm355_setup_pinmux -DAVINCI_LPSC_MMC_SD0
mmc mmc.0: Supporting 4-bit mode
mmc mmc.0: Using DMA mode
NET: Registered protocol family 1
NET: Registered protocol family 17
mmcblk0: mmc0:f7e2 SU01G 992000KiB
 mmcblk0: p1
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
block 74 is bad
VFS: Mounted root (yaffs2 filesystem).
Freeing init memory: 156K

Chip initialization passed!
TI UBL Version: 1.30
Booting Catalog Boot Loader
BootMode = NAND
Starting NAND Copy...
Valid MagicNum found.
   DONE
Jumping to entry point at 0x81080000.


U-Boot 1.2.0 (May 14 2009 - 17:15:32)

DRAM:  128 MB
NAND:  NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
Bad block table found at page 524224, version 0x01
Bad block table found at page 524160, version 0x01
2048 MiB
In:    serial
Out:   serial
Err:   serial
ARM Clock :- 216MHz
DDR Clock :- 171MHz
Hit any key to stop autoboot:  0

Loading from NAND 1GiB 3,3V 8-bit, offset 0x400000
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1091480 Bytes =  1 MB
   Load Address: 80008000
   Entry Point:  80008000
## Booting image at 80700000 ...
   Image Name:   Linux-2.6.10_mvl401
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1091480 Bytes =  1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
OK

Starting kernel ...

Uncompressing Linux.......................................................................
Linux version 2.6.10_mvl401 (cme@localhost.localdomain) (gcc version 3.4.3 (MontaVista 3.4.3-25.0.104.0600975 2006-07-06)) #619 Mon Feb 1 16:18:56 GMT 2010
CPU: ARM926EJ-Sid(wb) [41069265] revision 5 (ARMv5TEJ)
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
Machine: DaVinci DM355 EVM
Memory policy: ECC disabled, Data cache writeback
***** BC ***** map_io
DM0350
***** BC ***** mux_init 77 77
****PLL_CNTRL0 = 32768
****postdiv = 1
****PLL1_PLLM = 144
****Clock fixed rate = 24000000
****Clock arm rate = 216000000
****Clock common rate = 108000000
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
MUX: initialized UART2_TXD
MUX: initialized UART2_RXD
MUX: initialized UART2_CTS
MUX: initialized UART2_RTS
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART0
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_UART1
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_UART2
Built 1 zonelists
Kernel command line: mem=116M console=ttyS0,115200n8 root=/dev/mtdblock3 rw rootfstype=yaffs2 ip=off v4l2_video_capture=device:OMV9655 video=davincifb:vid0=640x480x16,1800K:vid1=640x480x16,1800K:osd0=640x480x16,1800K davinci_enc_mngr.ch0_output=COMPOSITE davinci_enc_mngr.ch0_mode=pal
PID hash table entries: 512 (order: 9, 8192 bytes)
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: 116MB = 116MB total
Memory: 115200KB available (1849K code, 428K data, 156K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
spawn_desched_task(00000000)
desched cpu_callback 3/00000000
ksoftirqd started up.
desched cpu_callback 2/00000000
desched thread 0 started up.
NET: Registered protocol family 16
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_GPIO
DaVinci: 104 gpio irqs
Registering platform device 'serial8250.0'. Parent at platform
Registering platform device 'musb_hdrc'. Parent at platform
Registering platform device 'nand_davinci.0'. Parent at platform
Registering platform device 'mmc.0'. Parent at platform
Set up TRUSCENE GPIO requirements
MUX: initialized GPIO80
MUX: initialized GPIO31
MUX: initialized GPIO32
MUX: initialized GPIO54
MUX: initialized GPIO55_56
MUX: initialized GPIO57_67
MUX: initialized GPIO16
MUX: initialized GPIO17
MUX: initialized GPIO23
MUX: initialized GPIO24
MUX: initialized GPIO30
DaVinci I2C DEBUG: 12:15:42 Sep  9 2009
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_I2C
Registering platform device 'i2c'. Parent at platform
ch0 default output "COMPOSITE", mode "PAL"
VPBE Encoder Initialized
SCSI subsystem initialized
Registering platform device 'dm_spi.0'. Parent at platform
Registering platform device 'dm_spi.1'. Parent at platform
NetWinder Floating Point Emulator V0.97 (double precision)
JFFS2 version 2.2. (NAND) (C) 2001-2003 Red Hat, Inc.
yaffs Sep  9 2009 12:15:20 Installing.
Initializing Cryptographic API
Registering platform device 'davincifb.0'. Parent at platform
davincifb davincifb.0: dm_osd0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_vid0_fb: 640x480x16@0,0 with framebuffer size 1800KB
davincifb davincifb.0: dm_osd1_fb: 720x576x4@0,0 with framebuffer size 1620KB
davincifb davincifb.0: dm_vid1_fb: 640x480x16@0,0 with framebuffer size 1800KB
watchdog: [TI DaVinci] Watchdog Timer-Enabled: timer margin 128 sec
Registering platform device 'davinci_pwm0.0'. Parent at platform
***** BC ***** dm355_setup_pinmux - DAVINCI_LPSC_PWM0
MUX: initialized PWM0
Serial: 8250/16550 driver $Revision: 1.1.1.1 $ 4 ports, IRQ sharing disabled
Registering platform device 'serial8250'. Parent at platform
ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
ttyS1 at MMIO 0x1c20400 (irq = 41) is a 16550A
ttyS2 at MMIO 0x1e06000 (irq = 14) is a 16550A
io scheduler noop registered
io scheduler anticipatory registered
RAMDISK driver initialized: 1 RAM disks of 32768K size 1024 blocksize
loop: loaded (max 8 devices)
i2c /dev entries driver
Linux video capture interface: v1.00
MT9T001_I2C_STARTED
ovcamchip: v1.00 for Linux 2.6 : OV9655 I2C driver
 : ERROR: MSP430 register read error

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failed
 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 ERROR in MSP430 register write

 I2C write failedOV Camera Version = 0x63
CME_camera_detect = 0
vpfe_init_started_CME
Registering platform device 'vpfe.1'. Parent at platform
OMV9655_in_init_CME
CME_OVM9655 present  0
CME_sops_init_called
OV9665_write_reg_finished
vpfe vpfe.1: DaVinci v4l2 capture driver V1.0 loaded
Registering platform device 'DavinciDisplay.1'. Parent at platform
Trying to register davinci display video device.
layer=c09f0000,layer->video_dev=c09f0164
Trying to register davinci display video device.
layer=c09e1e00,layer->video_dev=c09e1f64
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
ipipe major#: 253, minor# 0
Registering platform device 'dm355_ipipe.2'. Parent at platform
ipipe driver registered
af major#: 252, minor# 0
Registering platform device 'dm355_af.2'. Parent at platform
aew major#: 251, minor# 0
Registering platform device 'dm355_aew.2'. Parent at platform
elevator: using anticipatory as default io scheduler
nand_davinci nand_davinci.0: Using 4-bit hardware ECC
***** BC ***** dm355_setup_pinmux for DAVINCI_LPSC_AEMIF
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xd3 (Micron NAND 1GiB 3,3V 8-bit)
2 NAND chips detected
nand_bbt: ECC error while reading bad block table
nand_bbt: ECC error while reading bad block table
Creating 5 MTD partitions on "nand_davinci.0":
0x00000000-0x003c0000 : "bootloader"
0x003c0000-0x00400000 : "params"
0x00400000-0x00800000 : "kernel"
0x00800000-0x02800000 : "root_filesystem"
0x02800000-0x22800000 : "camera_filesystem"
nand_davinci nand_davinci.0: hardware revision: 2.3
mice: PS/2 mouse device common for all mice
***** BC ***** dm355_setup_pinmux -DAVINCI_LPSC_MMC_SD0
mmc mmc.0: Supporting 4-bit mode
mmc mmc.0: Using DMA mode
NET: Registered protocol family 1
NET: Registered protocol family 17
mmcblk0: mmc0:f7e2 SU01G 992000KiB
 mmcblk0: p1
yaffs: dev is 32505859 name is "mtdblock3"
yaffs: Attempting MTD mount on 31.3, "mtdblock3"
block 74 is bad
VFS: Mounted root (yaffs2 filesystem).
Freeing init memory: 156K

 

Let me know if you need any other details please. It was now work stopper and looking for expertise advice to proceed further.

Thanks in Advance.

 

Note: I am new to this forum and please accept my apologies for coping whole files in this place and if this is not the right forum.

 

Thanks & Regards,

Santha

 

  • Dear Santha,

    as for my knowledge so far there are no specific known issues in relation to DM355 and the watchdog functionality

     

    also, I am not sure why you would need to modify the driver as it seems that watchdog is already supported within the released driver package

     

    I saw you are using DVSDK 1.30 - as a side comment the DVSDK 2.x watchdog driver has a radically different structure, but it seems that DM355 watchdog is not supported "as is" within the driver

     

    The latest driver as for the comments and datasheet is tested for DM644x / DM646x devices, so some porting might be needed - the latest DVSDK file source is different than the one you attached, but it might serve as a further check.

    You can find the DVSDK 2.x here:

    http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/dvsdk/DVSDK_2_00/latest/index_FDS.html

     

    Not sure whether how much Linux would suffer from such kind of reset, perhaps not so much as long as you don't write to the filesystem. However I would recommend giving it a try by using the standard evm released LSP. Maybe try to run the demo first, automatically when the device starts. Then add the watchdog with a reasonably long timeout without pinging it, so that it will time-out at some point and the board would reset. It should allow you to check if there is something wrong with the startup sequence after having got a watchdog reset vs. a hard reset or a sw reboot

     

    Some more comments on the functions you attached:

    - as for my understanding davinci_wdt_open will include already WDT enable - thus you are enabling the watchdog twice in the code - not sure you might want to do it this way

    - the wdt write function would take 4 parameters, actually, if I did not miss something

    - in the logs I noticed the following:

     

    yaffs: dev is 32505859 name is "mtdblock3"

    yaffs: Attempting MTD mount on 31.3, "mtdblock3"

    block 74 is bad

     

    maybe you want to check what is there within the flash block, to make sure there are no issues with the flash device - I guess you stored a different image after rebuilding the kernel.

    Maybe using an NFS mount could be an alternative to test, as you are using the flash based file system, seen from the logs. Make sure you have a consistent kernel image and file system before you rebuild, so that you don't get kernel or module mismatches


     

  • Dear Giancarlo,

     

    Thanks for your quick and detailed response for my query. I will do the necessary modifications as you suggested and then will let you know the status.

    Once again thanks for your response.

     

    Best Regards,

    Santha

    0044 790 2046 450

  • Hi all,

    I'm working with DM355EVM , a dvsdk 2.00.00.22 , gst-dmai 1.01.00 , LSP / PSP 2.00.00.140, MV toolchain 5.0, NFS. I followed this procedure:
    http://wiki.davincidsp.com/index.php/DMAI_GStreamer_Plug-In_Getting_Started_Guide#DM355_software_installation_.28DVSDK_2.00.00.22.29.

    I need to automatically reboot the system when it crashes.

    I found that watchdog can solve my issue, but I don't understand how it works. I see that it has a timer on /arch/arm/mach-davinci/timer.c that is compiles (there is the timer.o ) file.

    I searched in the SDK, but I don't find anything (I think that it's already included).

    1) Is it right?

    2) How can I manage the watchdog and its timer?

    3) How can I test if it works?

    Thank you for your attention.

     

    Best regards

    Lorenzo