I meet a problem when i migrate dm368 rdk2.0 to rdk4.0.0.
The rdk4.0.0 kernel version is 2.6.37.
When I add the rtc (m41t83) driver to the kernel, the rtc driver could not enter m41t80_probe function. It's very strange. The rtc driver work ok in linux 2.6.18.
When I add a char driver to the kernel, the driver could not make the node under /dev auto. Also, the char driver could not work . It's very strange. The same driver work ok in linux 2.6.18
Everything seems abnormal if I make a change or add a driver to the kernel. When the system boot up, the cmem driver couldnot work ok.
Buf if I do nothing to the kernel, the kernel work fine, the cmem driver work fine. That's very strange.
The following the the log info when I add the RTC M41T83 I2c driver.
Loading from NAND 128MiB 3,3V 8-bit, offset 0x500000
Image Name: Linux-2.6.37_IPNC_DM365_4.0.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3851008 Bytes = 3.7 MB
Load Address: 80008000
Entry Point: 80008000
## Booting kernel from Legacy Image at 80700000 ...
Image Name: Linux-2.6.37_IPNC_DM365_4.0.0
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3851008 Bytes = 3.7 MB
Load Address: 80008000
Entry Point: 80008000
Loading Kernel Image ... OK
OK
Starting kernel ...
[ 0.000000] Linux version 2.6.37_IPNC_DM365_4.0.0 (root@johnlin) (gcc version 4.3.3 (GCC) ) #26 PREEMPT Tue May 14 10:24:27 CST 2013
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine: DaVinci DM36x IPNC
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] DaVinci dm36x_rev1.2 variant 0x8
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 12192
[ 0.000000] Kernel command line: console=ttyS1,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=$(nfshost):$(rootpath), nolock mem=48M cmemk.phys_start="0x83000000" cmemk.phys_end="0x88000000" cmemk.phys_start_1="0x00001000" cmemk.phys_end_1="0x00008000" cmemk.pools_1="1x28672" cmemk.allowOverlap=1 eth=$(ethaddr) lpj=1077248 nohz=off highres=off
[ 0.000000] TI DaVinci EMAC: kernel boot params Ethernet address: $(ethaddr)
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 48MB = 48MB total
[ 0.000000] Memory: 44764k/44764k available, 4388k reserved, 0K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] DMA : 0xff000000 - 0xffe00000 ( 14 MB)
[ 0.000000] vmalloc : 0xc3800000 - 0xfea00000 ( 946 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc3000000 ( 48 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .init : 0xc0008000 - 0xc002a000 ( 136 kB)
[ 0.000000] .text : 0xc002a000 - 0xc038e000 (3472 kB)
[ 0.000000] .data : 0xc038e000 - 0xc03b4300 ( 153 kB)
[ 0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptable hierarchical RCU implementation.
[ 0.000000] RCU-based detection of stalled CPUs is disabled.
[ 0.000000] Verbose stalled-CPUs detection is disabled.
[ 0.000000] NR_IRQS:245
[ 0.000000] Console: colour dummy device 80x30
[ 0.000299] Calibrating delay loop (skipped) preset value.. 215.44 BogoMIPS (lpj=1077248)
[ 0.000354] pid_max: default: 32768 minimum: 301
[ 0.000640] Mount-cache hash table entries: 512
[ 0.001439] CPU: Testing write buffer coherency: ok
[ 0.005938] DaVinci: 8 gpio irqs
[ 0.006565] NET: Registered protocol family 16
[ 0.018493] <HWZT> Start to do evm_init_i2c......
[ 0.021661] EVM: (null) video input
[ 0.098440] bio: create slab <bio-0> at 0
[ 0.103481] SCSI subsystem initialized
[ 0.107334] usbcore: registered new interface driver usbfs
[ 0.108673] usbcore: registered new interface driver hub
[ 0.109569] usbcore: registered new device driver usb
[ 0.113670] vpss vpss: dm365_vpss vpss probed
[ 0.113730] vpss vpss: dm365_vpss vpss probe success
[ 0.115667] Advanced Linux Sound Architecture Driver Version 1.0.23.
[ 0.117619] Switching to clocksource timer0_1
[ 0.180686] NET: Registered protocol family 2
[ 0.180998] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.181810] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.181953] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.182041] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.182072] TCP reno registered
[ 0.182110] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.182171] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.182683] NET: Registered protocol family 1
[ 0.183718] RPC: Registered udp transport module.
[ 0.183760] RPC: Registered tcp transport module.
[ 0.183789] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.257270] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[ 0.258020] JFFS2 version 2.2. (NAND) 漏 2001-2006 Red Hat, Inc.
[ 0.261999] msgmni has been set to 87
[ 0.265945] io scheduler noop registered (default)
[ 0.267446] CSL: Module install successful, device major num = 253
[ 0.267492] CSL: Module version 0.10.00, built on May 7 2013 16:44:47
[ 0.267541] I2C: Module install successful, device major num = 252
[ 0.267579] DMA: Module install successful, device major num = 251
[ 0.267606] DRV: Module install successful
[ 0.267630] DRV: Module built on May 8 2013 12:01:15
[ 0.267654] DRV: EDMACC.QUEPRI = 00002777
[ 0.267675] DRV: SYSTEM.MSTPRI0 = 00440011
[ 0.267696] DRV: SYSTEM.MSTPRI1 = 00000444
[ 0.267717] DRV: ISP.BCR = 00000002
[ 0.267739] DRV: SYSTEM.MISC = 00000399
[ 0.267760] EDMAK module: built on May 8 2013 at 12:00:59
[ 0.267789] Reference Linux version 2.6.37
[ 0.267811] File /opt/ipnc_dm368_4.0/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
[ 0.269283] IRQK module: built on May 8 2013 at 12:00:57
[ 0.269329] Reference Linux version 2.6.37
[ 0.269354] File /opt/ipnc_dm368_4.0/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
[ 0.271023] irqk initialized
[ 0.271097] CMEMK module: built on May 8 2013 at 12:00:50
[ 0.271134] Reference Linux version 2.6.37
[ 0.271158] File /opt/ipnc_dm368_4.0/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
[ 0.275848] allocated heap buffer 0xc4000000 of size 0x5000000
[ 0.275897] CMEM Range Overlaps Kernel Physical - allowing overlap
[ 0.275932] CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
[ 0.276076] cmemk initialized
[ 0.276130] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[ 0.300324] serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
[ 0.322257] serial8250.0: ttyS1 at MMIO 0x1d06000 (irq = 41) is a 16550A
[ 0.854246] console [ttyS1] enabled
[ 0.861240] brd: module loaded
[ 0.872118] NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung )
[ 0.880758] Bad block table not found for chip 0
[ 0.886731] Bad block table not found for chip 0
[ 0.891469] Scanning device for bad blocks
[ 0.987629] Creating 7 MTD partitions on "davinci_nand.0":
[ 0.993251] 0x000000000000-0x000000300000 : "bootloader"
[ 1.002591] 0x000000300000-0x000000500000 : "params"
[ 1.011637] 0x000000500000-0x000000900000 : "kernel"
[ 1.020821] 0x000000900000-0x000003100000 : "filesystem1"
[ 1.030607] 0x000003100000-0x000003300000 : "data1"
[ 1.039650] 0x000003300000-0x000005b00000 : "filesystem2"
[ 1.049582] 0x000005b00000-0x000008000000 : "data2"
[ 1.058971] davinci_nand davinci_nand.0: controller rev. 2.3
[ 1.120108] davinci_mdio davinci_mdio.0: davinci mdio revision 1.4
[ 1.126315] davinci_mdio davinci_mdio.0: detected phy mask 0
[ 1.181529] davinci_mdio.0: probed
[ 1.184973] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown
[ 1.192512] davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver LXT971
[ 1.199501] davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown
[ 1.206733] davinci_mdio davinci_mdio.0: phy[3]: device 0:03, driver unknown
[ 1.213923] davinci_mdio davinci_mdio.0: phy[4]: device 0:04, driver unknown
[ 1.221057] davinci_mdio davinci_mdio.0: phy[5]: device 0:05, driver unknown
[ 1.228122] davinci_mdio davinci_mdio.0: phy[6]: device 0:06, driver unknown
[ 1.235239] davinci_mdio davinci_mdio.0: phy[7]: device 0:07, driver unknown
[ 1.242352] davinci_mdio davinci_mdio.0: phy[8]: device 0:08, driver unknown
[ 1.249416] davinci_mdio davinci_mdio.0: phy[9]: device 0:09, driver unknown
[ 1.256517] davinci_mdio davinci_mdio.0: phy[10]: device 0:0a, driver unknown
[ 1.263702] davinci_mdio davinci_mdio.0: phy[11]: device 0:0b, driver unknown
[ 1.270901] davinci_mdio davinci_mdio.0: phy[12]: device 0:0c, driver unknown
[ 1.278051] davinci_mdio davinci_mdio.0: phy[13]: device 0:0d, driver unknown
[ 1.285250] davinci_mdio davinci_mdio.0: phy[14]: device 0:0e, driver unknown
[ 1.292446] davinci_mdio davinci_mdio.0: phy[15]: device 0:0f, driver unknown
[ 1.299596] davinci_mdio davinci_mdio.0: phy[16]: device 0:10, driver unknown
[ 1.306790] davinci_mdio davinci_mdio.0: phy[17]: device 0:11, driver unknown
[ 1.313988] davinci_mdio davinci_mdio.0: phy[18]: device 0:12, driver unknown
[ 1.321184] davinci_mdio davinci_mdio.0: phy[19]: device 0:13, driver unknown
[ 1.328334] davinci_mdio davinci_mdio.0: phy[20]: device 0:14, driver unknown
[ 1.335527] davinci_mdio davinci_mdio.0: phy[21]: device 0:15, driver unknown
[ 1.342725] davinci_mdio davinci_mdio.0: phy[22]: device 0:16, driver unknown
[ 1.349876] davinci_mdio davinci_mdio.0: phy[23]: device 0:17, driver unknown
[ 1.357070] davinci_mdio davinci_mdio.0: phy[24]: device 0:18, driver unknown
[ 1.364264] davinci_mdio davinci_mdio.0: phy[25]: device 0:19, driver unknown
[ 1.371460] davinci_mdio davinci_mdio.0: phy[26]: device 0:1a, driver unknown
[ 1.378610] davinci_mdio davinci_mdio.0: phy[27]: device 0:1b, driver unknown
[ 1.385802] davinci_mdio davinci_mdio.0: phy[28]: device 0:1c, driver unknown
[ 1.392999] davinci_mdio davinci_mdio.0: phy[29]: device 0:1d, driver unknown
[ 1.400197] davinci_mdio davinci_mdio.0: phy[30]: device 0:1e, driver unknown
[ 1.407347] davinci_mdio davinci_mdio.0: phy[31]: device 0:1f, driver unknown
[ 1.415132] m41t80_rtc_init enter .......
[ 1.420568] i2c /dev entries driver
[ 1.426096] Linux media interface: v0.10
[ 1.430835] Linux video capture interface: v2.00
[ 1.437533] vpbe-osd vpbe-osd: OSD sub device probe success
[ 1.444109] vpbe-venc vpbe-venc: VENC sub device probe success
[ 1.451053] vpbe-v4l2 vpbe-v4l2: vpbe v4l2 device registered
[ 1.456884] Setting default output to Composite
[ 1.461698] Setting default mode to ntsc
[ 1.465731] vpbe-v4l2 vpbe-v4l2: Trying to register VPBE display device.
[ 1.472562] vpbe-v4l2 vpbe-v4l2: layer=c29bcc00,layer->video_dev=c29bcce8
[ 1.480253] vpbe-v4l2 vpbe-v4l2: Trying to register VPBE display device.
[ 1.486981] vpbe-v4l2 vpbe-v4l2: layer=c29bc000,layer->video_dev=c29bc0e8
[ 1.495703] watchdog watchdog: heartbeat 60 sec
[ 1.505466] Error: Driver 'davinci-mcbsp' is already registered, aborting...
[ 1.514746] ALSA device list:
[ 1.517764] No soundcards found.
[ 1.522775] TCP cubic registered
[ 1.526038] NET: Registered protocol family 17
[ 1.537826] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 1.546155] net eth0: attached PHY driver [LXT971] (mii_bus:phy_addr=0:01, id=1378e2)
[ 1.570348] Sending DHCP requests .
[ 3.540396] PHY: 0:01 - Link is Up - 100/Full
Please help me. Any suggestion would be grateful