спасибо, завтра сравню регистры и конфиги для старого ядра.
сегодня весь день провел за программированием ФС в нанд.
все казалось бы делаю по инструкции, все вроде отрабатывает, а ядро при загрузке вот паникует и вываливает следующий лог:
Код
U-Boot > loadb
## Ready for binary (kermit) download to 0xC0700000 at 115200 bps...
## Total Size = 0x001d48c0 = 1919168 Bytes
## Start Addr = 0xC0700000
U-Boot > bootm
## Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-3.1.6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1919104 Bytes = 1.8 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
mem.start: c0000000
mem.size: 2000000 bytes 32 MB
Starting kernel ...
debug: jump to c0008000 address
debug: start boot params address: c0000100
debug: data
debug: machID 1781
Uncompressing Linux... done, booting the kernel.
Linux version 3.1.6 (xxx@ubuntu) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-
203) ) #10 PREEMPT Tue Dec 27 11:33:39 MSK 2011
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DA830/OMAP-L137/AM17x EVM
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writethrough
DaVinci da830/omap-l137 rev2.0 variant 0x9
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: console=ttyS2,115200n8 mem=32M earlyprintk ip=off root=/dev
/mtdblock0 rw rootfstype=jffs2
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 28584k/28584k available, 4184k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xff000000 - 0xffe00000 ( 14 MB)
vmalloc : 0xc2800000 - 0xfea00000 ( 962 MB)
lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc0358508 (3394 kB)
.init : 0xc0359000 - 0xc037a000 ( 132 kB)
.data : 0xc037a000 - 0xc039f080 ( 149 kB)
.bss : 0xc039f0a4 - 0xc03c40ac ( 149 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:245
Console: colour dummy device 80x30
Calibrating delay loop... 148.88 BogoMIPS (lpj=744448)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 128 gpio irqs
print_constraints: dummy:
NET: Registered protocol family 16
bio: create slab <bio-0> at 0
Switching to clocksource timer0_0
Switched to NOHz mode on CPU #0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
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 named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
msgmni has been set to 55
io scheduler noop registered (default)
start plist test
end plist test
Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c42000 (irq = 25) is a 16550A
serial8250.0: ttyS1 at MMIO 0x1d0c000 (irq = 53) is a 16550A
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
console [ttyS2] enabled, bootconsole disabled
console [ttyS2] enabled, bootconsole disabled
brd: module loaded
ONFI flash detected
ONFI param page 0 valid
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron MT29F1G08ABADAWP)
Creating 1 MTD partitions on "davinci_nand.1":
0x000000000000-0x000008000000 : "filesystem"
davinci_nand davinci_nand.1: controller rev. 2.5
spi_davinci spi_davinci.0: DMA: supported
spi_davinci spi_davinci.0: DMA: RX channel: 14, TX channel: 15, event queue: 0
spi_davinci spi_davinci.0: Controller at 0xfec41000
davinci_mdio davinci_mdio.0: davinci mdio revision 1.5
davinci_mdio davinci_mdio.0: detected phy mask fffffff1
davinci_mdio.0: probed
davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
davinci_mdio davinci_mdio.0: phy[2]: device 0:02, driver unknown
davinci_mdio davinci_mdio.0: phy[3]: device 0:03, driver unknown
rtc-test rtc-test.0: rtc core: registered test as rtc0
rtc-test rtc-test.1: rtc core: registered test as rtc1
i2c /dev entries driver
watchdog watchdog: heartbeat 60 sec
SoftDog: cannot register miscdev on minor=130 (err=-16)
cpuidle: using governor ladder
cpuidle: using governor menu
TCP cubic registered
NET: Registered protocol family 17
davinci_emac davinci_emac.1: using random MAC addr: d2:0d:54:78:68:1c
console [netcon0] enabled
netconsole: network logging started
rtc-test rtc-test.0: setting system clock to 1970-01-01 00:00:02 UTC (2)
Root-NFS: no NFS server address
VFS: Unable to mount root fs via NFS, trying floppy.
List of all partitions:
No filesystem could mount root, tried: jffs2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[<c000d830>] (unwind_backtrace+0x0/0xf8) from [<c0284cd4>] (panic+0x60/0x1a8)
[<c0284cd4>] (panic+0x60/0x1a8) from [<c0359dcc>] (mount_block_root+0x1c8/0x224)
[<c0359dcc>] (mount_block_root+0x1c8/0x224) from [<c0359ea8>] (mount_root+0x80/0
xc8)
[<c0359ea8>] (mount_root+0x80/0xc8) from [<c0359ffc>] (prepare_namespace+0x10c/0
x1c8)
[<c0359ffc>] (prepare_namespace+0x10c/0x1c8) from [<c035928c>] (kernel_init+0xec
/0x12c)
[<c035928c>] (kernel_init+0xec/0x12c) from [<c0009c9c>] (kernel_thread_exit+0x0/
0x8)
BOOTME
bootargs=console=ttyS2,115200n8 mem=32M earlyprintk root=/dev/mtdblock0 rw rootfstype=jffs2 ip=off
корневую ФС базовую скачал с офиц. сайта.
распаковал и установил туда kernel headers and modules.
собирал jffs2.bin следующим образом:
# mkfs.jffs2 -p -d rootfs -s 2048 -e 0x20000 -l -q -o rootfs.jffs2 -v –n
NAND Organization:
– Page size x8: 2112 bytes (2048 + 64 bytes)
– Page size x16: 1056 words (1024 + 32 words)
– Block size: 64 pages (128K + 4K bytes)
– Device size: 1Gb: 1024 blocks
получившийся образ ФС я заливаю по терминалу в оперативку борды, затем делаю:
1. nand erase 0 0x08000000
2. nand write.jffs2 0xc0700000 0 $filesize
все удачно программируется, затем гружу ядро( NAND & JFFS2 включены при сборке ядра)
куда копать и что делать?
подскажите пожалуйста.
и еще, почему ядро первым делом пытается примонтировать ФС по NFS, когда я ему четко указал откуда брать корневую ФС?