I'm working on Mistral evb AM/DM 3730 with ti-dvsdk_dm3730-evm_4_02_00_06 (linux-2.6.32-psp03.00.01.06.sdk) and I've set both bootloaders and Kerner and now I'm trying to boot Linux with root file system on the nand Nand (Hynix NAND 512MiB 1,8V 16-bit) using JFFS2
these are the steps I followed to take the root file system on the Nand
1) boot my kernel (on the nand) with root file system on SD card
2) erase nand partition and initialized with jffs2 by flash_eraseall -j /dev/mtd4
3) mount nand partition by mount -t jffs2 /dev/mtdblock4 /mnt/nand
4) copy fs on the partition by tar xzf <where_ever_your_root_fs_image_is_at_sd_card>/rootfs.tar.gz /mnt/nand
I've tryed this sequence several times (even erasing all Nand device using scrub etc.. and writing again boot loaders and kernel), but when I try to boot using the root file system I've put on the nand device Linux doesn't boot
whereas if I use FS on the SD card and the I mount the nand partition where I set the nand file system I can read and write it without any problem
this is my Linux boot log:
NAND read: device 0 offset 0x280000, size 0x400000
4194304 bytes read: OK
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-2.6.32
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2486600 Bytes = 2.4 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux............................................................................................................................................................ done, booting the kernel.
Linux version 2.6.32 (selex@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 Wed Jun 1 07:32:44 PDT 2011
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 EVM
Memory policy: ECC disabled, Data cache writeback
OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Reserving 4194304 bytes SDRAM for VRAM
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: console=ttyS0,115200n8 root=/dev/mtdblock4 rw rootfstype=jffs2
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 256MB = 256MB total
Memory: 250496KB available (4340K code, 377K data, 172K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:402
Clocking rate (Crystal/Core/MPU): 26.0/400/600 MHz
Reprogramming SDRC clock to 400000000 Hz
GPMC revision 5.0
IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
OMAP GPIO hardware version 2.5
OMAP clockevent source: GPTIMER1 at 32768 Hz
Console: colour dummy device 80x30
Calibrating delay loop... 597.64 BogoMIPS (lpj=2334720)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
omap3evmdc: Driver registration complete
OMAP DMA hardware revision 5.0
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz
twl4030: PIH (irq 7) chaining IRQs 368..375
twl4030: power (irq 373) chaining IRQs 376..383
twl4030: gpio (irq 368) chaining IRQs 384..401
regulator: VMMC1: 1850 <--> 3150 mV normal standby
regulator: VDAC: 1800 mV normal standby
regulator: VAUX2_4030: 2800 mV normal standby
regulator: VPLL2: 1800 mV normal standby
regulator: VSIM: 1800 <--> 3000 mV normal standby
i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz
i2c_omap i2c_omap.3: bus 3 rev4.0 at 400 kHz
Switching to clocksource 32k_counter
musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0
musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
omap-iommu omap-iommu.0: isp registered
AM37x/DM37x Linux PSP version 03.00.01.06 (OMAP3EVM)
NetWinder Floating Point Emulator V0.97 (double precision)
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
JFS: nTxBlock = 1959, nTxLock = 15672
msgmni has been set to 489
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
OMAP DSS rev 2.0
OMAP DISPC rev 3.0
OMAP VENC rev 2
OMAP DSI rev 1.0
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
console [ttyS0] enabled
serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
brd: module loaded
loop: module loaded
omap2-nand driver initializing
NAND device: Manufacturer ID: 0xad, Chip ID: 0xbc (Hynix NAND 512MiB 1,8V 16-bit)
Creating 5 MTD partitions on "omap2-nand.0":
0x000000000000-0x000000080000 : "xloader-nand"
0x000000080000-0x000000240000 : "uboot-nand"
0x000000240000-0x000000280000 : "params-nand"
0x000000280000-0x000000780000 : "linux-nand"
0x000000780000-0x000020000000 : "jffs2-nand"
OneNAND driver initializing
omap2-onenand omap2-onenand: Cannot request GPMC CS
omap2-onenand: probe of omap2-onenand failed with error -16
smsc911x: Driver version 2008-10-21.
smsc911x-mdio: probed
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:01, irq=-1)
net eth0: MAC Address: 00:50:c2:7e:96:77
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver dm9601
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: OMAP-EHCI Host Controller
usb usb1: Manufacturer: Linux 2.6.32 ehci_hcd
usb usb1: SerialNumber: ehci-omap.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 3 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbtest
g_ether gadget: using random self ethernet address
g_ether gadget: using random host ethernet address
usb0: MAC 92:98:cd:ce:45:b0
usb0: HOST MAC 4a:37:da:3d:f8:1d
g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
g_ether gadget: g_ether ready
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 2
usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: MUSB HDRC host driver
usb usb2: Manufacturer: Linux 2.6.32 musb-hcd
usb usb2: SerialNumber: musb_hdrc
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
mice: PS/2 mouse device common for all mice
input: TWL4030 Keypad as /devices/platform/i2c_omap.1/i2c-1/1-004a/twl4030_keypad/input/input0
ads7846 spi1.0: touchscreen, irq 335
input: ADS7846 Touchscreen as /devices/platform/omap2_mcspi.1/spi1.0/input/input1
twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
i2c /dev entries driver
Linux video capture interface: v2.00
tvp514x 3-005c: Registered to v4l2 master omap34xxcam!!
omap-iommu omap-iommu.0: isp: version 1.1
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
cpuidle: using governor ladder
cpuidle: using governor menu
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.21.
usbcore: registered new interface driver snd-usb-audio
No device for DAI omap-mcbsp-dai-0
No device for DAI omap-mcbsp-dai-1
No device for DAI omap-mcbsp-dai-2
No device for DAI omap-mcbsp-dai-3
No device for DAI omap-mcbsp-dai-4
OMAP3 EVM SoC init
asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
ALSA device list:
#0: omap3evm (twl4030)
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
Power Management for TI OMAP3.
Compensating OPP4 for 63mV Orig nvalue:0xaa978c New nvalue:0xab8afe
Compensating OPP3 for 63mV Orig nvalue:0xaabda9 New nvalue:0xaaa996
Compensating OPP2 for 50mV Orig nvalue:0x9a80e5 New nvalue:0xaae3ca
Compensating OPP1 for 50mV Orig nvalue:0x99ceb8 New nvalue:0x99ab98
SmartReflex driver initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:40 UTC (946684840)
tvp514x 3-005c: tvp5146m2 found at 0xb8 (OMAP I2C adapter)
omapdss DPI error: display already enabled
omap_vout omap_vout: 'lcd' Display already enabled
omapdss DPI error: display already enabled
omap_vout omap_vout: 'lcd' Display already enabled
omap_vout omap_vout: Buffer Size = 3686400
omap_vout omap_vout: : registered and initialized video device 1
omap_vout omap_vout: Buffer Size = 3686400
omap_vout omap_vout: : registered and initialized video device 2
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
mtd->read(0x400 bytes from 0x1ea80000) returned ECC error
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
mtd->read(0x1f9fc bytes from 0x1ea80604) returned ECC error
jffs2_scan_eraseblock(): Node at 0x1ea8da80 {0x1985, 0xe001, 0x0000000b) has invalid CRC 0x7d266ee6 (calculated 0xdd14c1d8)
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da84: 0x000b instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da88: 0x6ee6 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da8c: 0x12a8 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da90: 0x0005 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da94: 0x12a9 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da98: 0x71c8 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8da9c: 0x0403 instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8daa0: 0xbe3d instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x1ea8daa4: 0xa45a instead
Further such events for this erase block will not be printed
jffs2_scan_inode_node(): CRC failed on node at 0x1ea8daf0: Read 0x2d875d6f, calculated 0x1ede4359
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
mtd->read(0x400 bytes from 0x1eaa0000) returned ECC error
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
then it keeps on giving similar error for several minuts and at the end it says:
...bch correct(3 512 byte)
...bch correct(4 512 byte)
mtd->read(0xabf bytes from 0x1f72189c) returned ECC error
...bch correct(1 512 byte)
...bch correct(2 512 byte)
...bch correct(3 512 byte)
...bch correct(4 512 byte)
mtd->read(0x164 bytes from 0x1f84669c) returned ECC error
Kernel panic - not syncing: Attempted to kill init!
Am I doing something wrong?
Thank you