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