Forums » Software Development »
Boot failure
Added by Dennis Volper about 14 years ago
I've inherited a board that got bricked. I'm having boot problems. The kernel loads, but gets an error: it can't mount the root file system. It's tried ext3..., and just about everything else except jffs2. I've reinstalled the kernel from the CD, reinstalled the jffs2 from the CD; but the message persists. The uboot printenv states the root file system is jffs2 in a couple of places. I suspect I've missed uboot environment variable, but I'm not sure.
Replies (4)
RE: Boot failure - Added by Michael Williamson about 14 years ago
Hi Dennis,
Please send me (or post) a dump of your terminal with the following:
- Stop in u-Boot and do a "printenv"
- Boot and allow to run until the mount error is displayed
This will help us determine the cause of the boot problem.
Thanks.
-Mike
RE: Boot failure - Added by Dennis Volper about 14 years ago
Script started on Fri 15 Oct 2010 10:26:41 AM PDT
cianna@ubuntudv:~$ kermit
C-Kermit 8.0.211, 10 Apr 2004, for Linux
Copyright (C) 1985, 2004,
Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/cianna/) C-Kermit>connect
Connecting to /dev/ttyS0, speed 115200
Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
U-Boot > printenv
bootargs=mem=96M console=ttyS1,115200n8 root=/dev/mtdblock0 rw rootwait
bootcmd=sf probe 0;sf read 0xc0700000 0x100000 0x280000;bootm 0xc0700000
bootdelay=3
baudrate=115200
bootfile="uImage"
flashuboot=tftp 0xc0700000 mityomap/u-boot-ubl.bin; sf probe 0; sf erase 0x10000 0x80000; sf write 0xc0700000 0x10000 ${filesize}
flashkernel=tftp 0xc0700000 mityomap/uImage; sf probe 0; sf erase 0x100000 0x280000; sf write 0xc0700000 0x100000 ${filesize}
flashrootfs=tftp 0xc0000000 mityomap/mityomap-base-mityomapl138.jffs2; nand erase 0 0x08000000; nand write.jffs2 0xc0000000 0 ${filesize}
serverip=192.168.0.23
autoload=no
mtdids=nand0=nand
mtdparts=mtdparts=nand:128M(rootfs),-(userfs)
bootargsbase=mem=96M console=ttyS1,115200n8
flashargs=setenv bootargs ${bootargsbase} ${mtdparts} root=/dev/mtdblock0 rw rootfstype=jffs2
ethaddr=00:50:c2:bf:df:ff
mask=255.255.0.0
netmask=255.255.255.0
ipaddr=192.168.1.167
hostname=cianna4
gateway=192.168.1.1
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2009.11-00162-g649c446 (Jun 28 2010 - 08:12:30)
U-Boot > boot
8192 KiB M25P64 at 0:0 is now current device
- Booting kernel from Legacy Image at c0700000 ...
Image Name: Linux-2.6.34-rc1-07430-g2e70fb6
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1818012 Bytes = 1.7 MB
Load Address: c0008000
Entry Point: c0008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Linux version 2.6.34-rc1-07430-g2e70fb6 (mikew@mikew-ubuntu-vm) (gcc version 4.3.3 (GCC) ) #114 PREEMPT Fri Jun 25 13:44:48 EDT 2010
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: MityDSP-L138
Peripheral Config Block Found
Enet_Config = 2
EMAC = 00:50:C2:BF:DF:FF
PHYMask = 0x8
No LCD Configured
UART0 = 0, 0, 0, 115200
UART1 = 1, 1, 0, 115200
UART2 = 0, 0, 0, 115200
SPI0 = 0, 0, 00, 0, 0
SPI1 = 1, 1, 01, 0, 30000000
Memory policy: ECC disabled, Data cache writethrough
DaVinci da850/omap-l138 variant 0x0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 24384
Kernel command line: mem=96M console=ttyS1,115200n8 root=/dev/mtdblock0 rw rootwait
PID hash table entries: 512 (order: 1, 2048 bytes)> 1350 mV at 1200 mV
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 96MB = 96MB total
Memory: 93652k/93652k available, 4652k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xff000000 - 0xffe00000 ( 14 MB)
vmalloc : 0xc6800000 - 0xfea00000 ( 898 MB)
lowmem : 0xc0000000 - 0xc6000000 ( 96 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc0028000 ( 128 kB)
.text : 0xc0028000 - 0xc034d000 (3220 kB)
.data : 0xc0364000 - 0xc0384f80 ( 132 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:245
start_kernel(): bug: interrupts were enabled early
Console: colour dummy device 80x30
Calibrating delay loop... 149.50 BogoMIPS (lpj=747520)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 144 gpio irqs
regulator: core version 0.5
NET: Registered protocol family 16
mityomapl138_init...
mityomapl138_init: no LCD device enabled
MUX: initialized MMCSD0_DAT_0
MUX: Setting register MMCSD0_DAT_0
PINMUX10 (0x00000028) = 0x00000000 -> 0x00000200
MUX: initialized MMCSD0_DAT_1
MUX: Setting register MMCSD0_DAT_1
PINMUX10 (0x00000028) = 0x00000200 -> 0x00002200
MUX: initialized MMCSD0_DAT_2
MUX: Setting register MMCSD0_DAT_2
PINMUX10 (0x00000028) = 0x00002200 -> 0x00022200
MUX: initialized MMCSD0_DAT_3
MUX: Setting register MMCSD0_DAT_3
PINMUX10 (0x00000028) = 0x00022200 -> 0x00222200
MUX: initialized MMCSD0_CLK
MUX: Setting register MMCSD0_CLK
PINMUX10 (0x00000028) = 0x00222200 -> 0x00222202
MUX: initialized MMCSD0_CMD
MUX: Setting register MMCSD0_CMD
PINMUX10 (0x00000028) = 0x00222202 -> 0x00222222
MUX: initialized GPIO4_0
MUX: Setting register GPIO4_0
PINMUX10 (0x00000028) = 0x00222222 -> 0x80222222
MUX: initialized GPIO4_1
MUX: Setting register GPIO4_1
PINMUX10 (0x00000028) = 0x80222222 -> 0x88222222
MUX: initialized AHCLKX
MUX: Setting register AHCLKX
PINMUX0 (0x00000000) = 0x00440000 -> 0x00140000
MUX: initialized ACLKX
MUX: Setting register ACLKX
PINMUX0 (0x00000000) = 0x00140000 -> 0x00140010
MUX: initialized AFSX
MUX: Setting register AFSX
PINMUX0 (0x00000000) = 0x00140010 -> 0x00141010
MUX: initialized AHCLKR
MUX: Setting register AHCLKR
PINMUX0 (0x00000000) = 0x00141010 -> 0x00111010
MUX: initialized ACLKR
MUX: Setting register ACLKR
PINMUX0 (0x00000000) = 0x00111010 -> 0x00111011
MUX: initialized AFSR
MUX: Setting register AFSR
PINMUX0 (0x00000000) = 0x00111011 -> 0x00111111
MUX: initialized AMUTE
MUX: Setting register AMUTE
PINMUX0 (0x00000000) = 0x00111111 -> 0x01111111
MUX: initialized AXR_13
MUX: Setting register AXR_13
PINMUX1 (0x00000004) = 0x00000000 -> 0x00000100
bio: create slab <bio-0> at 0
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
regulator: VDCDC1: 1150 <-
regulator: VDCDC2: 1710 <--> 1910 mV at 3300 mV
regulator: VDCDC3: 1120 <--> 1320 mV at 1800 mV
regulator: LDO1: 1800 mV
regulator: LDO2: 3300 mV
Switching to clocksource timer0_1
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
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.
EMAC: MII PHY configured, RMII PHY will not be functional
mityomapl138_init: setting phy_mask to 8
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 182
io scheduler noop registered (default)
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
console [ttyS1] enabled
serial8250.0: ttyS2 at MMIO 0x1d0d000 (irq = 61) is a 16550A
brd: module loaded
at24 1-0050: 256 byte 24c02 EEPROM (writable)
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron NAND 256MiB 3,3V 16-bit)
Creating 2 MTD partitions on "davinci_nand.0":
0x000000000000-0x000008000000 : "rootfs"
mtd: Giving out device 0 to rootfs
ftl_cs: FTL header not found.
0x000008000000-0x000010000000 : "homefs"
mtd: Giving out device 1 to homefs
ftl_cs: FTL header not found.
davinci_nand davinci_nand.0: controller rev. 2.5
m25p80 spi1.0: m25p64 (8192 Kbytes)
Creating 3 MTD partitions on "m25p80":
0x000000000000-0x000000010000 : "UBL"
mtd: Giving out device 2 to UBL
ftl_cs: FTL header not found.
0x000000010000-0x000000090000 : "U-Boot"
mtd: Giving out device 3 to U-Boot
ftl_cs: FTL header not found.
0x000000090000-0x000000800000 : "Spare"
mtd: Giving out device 4 to Spare
ftl_cs: FTL header not found.
spi_davinci spi_davinci.1: Controller at 0xfef0e000
console [netcon0] enabled
netconsole: network logging started
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci ohci.0: DA8xx OHCI
ohci ohci.0: new USB bus registered, assigned bus number 1
Waiting for USB PHY clock good...
ohci ohci.0: irq 59, io mem 0x01e25000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0001
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: DA8xx OHCI
usb usb1: Manufacturer: Linux 2.6.34-rc1-07430-g2e70fb6 ohci_hcd
usb usb1: SerialNumber: ohci.0
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mice: PS/2 mouse device common for all mice
omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
omap_rtc: RTC power up reset detected
omap_rtc: already running
i2c /dev entries driver
watchdog watchdog: heartbeat 60 sec
cpuidle: using governor ladder
cpuidle: using governor menu
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
TCP cubic registered
NET: Registered protocol family 17
Clocks: disable unused i2c1
Clocks: disable unused emac
Clocks: disable unused mcasp
Clocks: disable unused lcdc
Clocks: disable unused mmcsd
Clocks: disable unused spi0
Clocks: disable unused mcbsp0
Clocks: disable unused mcbsp1
Clocks: disable unused vpif
regulator_init_complete: incomplete constraints, leaving LDO2 on
regulator_init_complete: incomplete constraints, leaving LDO1 on
regulator_init_complete: incomplete constraints, leaving VDCDC3 on
regulator_init_complete: incomplete constraints, leaving VDCDC2 on
regulator_init_complete: incomplete constraints, leaving VDCDC1 on
emac-mii: probed
omap_rtc omap_rtc: setting system clock to 2000-01-01 15:55:10 UTC (946742110)
List of all partitions:
1f00 131072 mtdblock0 (driver?)
1f01 131072 mtdblock1 (driver?)
1f02 64 mtdblock2 (driver?)
1f03 512 mtdblock3 (driver?)
1f04 7616 mtdblock4 (driver?)
No filesystem could mount root, tried: ext3 ext2 cramfs vfat msdos
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,0)
[<c002d804>] (unwind_backtrace+0x0/0xdc) from [<c02890bc>] (panic+0x40/0xcc)
[<c02890bc>] (panic+0x40/0xcc) from [<c0008f90>] (mount_block_root+0x1d4/0x21c)
[<c0008f90>] (mount_block_root+0x1d4/0x21c) from [<c0009240>] (prepare_namespace+0x164/0x1c8)
[<c0009240>] (prepare_namespace+0x164/0x1c8) from [<c0008484>] (kernel_init+0x118/0x160)
[<c0008484>] (kernel_init+0x118/0x160) from [<c0029938>] (kernel_thread_exit+0x0/0x8)
(Back at ubuntudv.quicksilver.com)
----------------------------------------------------
(/home/cianna/) C-Kermit>quit
Closing /dev/ttyS0...OK
cianna@ubuntudv:~$ exit
Script done on Fri 15 Oct 2010 10:27:16 AM PDT
RE: Boot failure - Added by Michael Williamson about 14 years ago
Hi Dennis,
It looks like the bootargs environment variable in u-Boot has become corrupted.
At the u-Boot prompt, try running:
U-Boot> run flashargs U-Boot> boot
This will set the bootargs to a known good setting to boot from NAND flash. If it works, you should do:
U-Boot> run flashargs U-Boot> saveenv U-Boot> boot
this will save your environment so that the bootargs are stored permanently.
The key arguement in the bootargs you need is the "rootfs=jffs2". Jffs2 is not tried by the kernel by default when trying to mount a filesystem. Not sure why.
-Mike
RE: Boot failure - Added by Dennis Volper about 14 years ago
That worked. We are up and running.
A little search of the kernel source tree shows that in arch/arm/configs most of the "defconfig" files have CONFIG_CMDLINE set to a string that includes "rootfstype=jffs2", but the mityomapl138_defconfig leaves that string empty. We've got to do some kernel rebuilding to accommodate the new TSC/LCD and audio, so if I get a chance I'll try it.