This board is using kernel 2.6.21.1 with balloon mods
(
http://balloonboard.org/cgi-bin/viewcvs.cgi/balloon/trunk/kernel/ )
with what appears to be a yaffs around this vintage:
"$Id: yaffs_fs.c,v 1.59 2007/03/20 20:59:40 charles Exp $"
"$Id: yaffs_guts.c,v 1.48 2007/03/12 20:55:39 charles Exp $";
(see
http://balloonboard.org/cgi-bin/viewcvs.cgi/balloon/trunk/kernel/2.6.21.yaffs.patch?rev=163&view=log
)
It has a 1GB yaffs partition and after a couple of weeks use
(generally just being turned off, not unmounted) seems to
have got itself in a state where the checkpointing code oopses the
kernel (see log below).
I should have this on my desk shortly. Anyone got any suggestions what
might have gone wrong, as it would be good to avoid this, and I want
to give it an analyse?
----- Forwarded message from His Majesty <
balakkvj@gmail.com> -----
From: His Majesty <balakkvj@gmail.com>
Date: Mon, 30 Jul 2007 12:38:25 +0100
To: Wookey <wookey@aleph1.co.uk>
Subject: Achtung... Achtung .... Balloon would not boot up.
Reply-To: b.kolluru@dcs.shef.ac.uk
X-Spam-Status: No, score=-1.7 required=5.0 tests=AWL,BAYES_00,HTML_10_20,
HTML_MESSAGE autolearn=no version=3.1.7-deb, No
Hi Wookey,
It was good on friday when I switched it off.
However, the balloon wouldnot boot up this morning!!
Eagerly await your response.
This is the message I get on screen:
....
DUCK
VRSN
FFFFFFF9
STKP
A39F3FF0
&_start=00000000
FLASH_BASE=00000000
Large memory model selected, bank size 256Mbytes
Bank 0: A0000000-A7FFFFFC (128Mbytes), bank not full
Bank 1: B0000000-B7FFFFFC (128Mbytes), bank not full
Bank 2: 90000000: no RAM found
Bank 3: 80000000-87FFFFFC (128Mbytes), bank not full
enabling mmu
FLASH_BASE=00000000
PXA: Evacuating 1MB of Flash to DRAM at: A3E00000
done
Map Flash virtual section to DRAM at: A3E00000
MMU table entries
00000000 A3E00C0A
...
Using bit swapping...
Programming Device...
FPGA image size (bytes)=0x000625F8
FPGA Device Programmed OK
FPGA Version 0x
000000FF
Set 0x00000080
Clr 0x00000100
FPGA initialised
Peripheral Power established
Scanning for nand chips at 0x10E00000
Found MTDs: 0x00000001
Flash style = 1x16
verify flash size...
No non-CFI chip detected. Ignoring fake CFI table.
Resetting flash algorithm.
re-verifying flash size...
btflash_init: mfrid=00000004
devid=000022D7
mfrid=00000004
deviceid=000022D7
walking flash descriptors (1x16)
btflash_init: found flash MBM29LV650UE_1x16
flashDescriptor=000323A4
flashSectors=00032074
nsectors=00000080
flash_size=00800000
flash_address_mask=007FFFFF
protecting the bootldr
amdFlashProtectRange: unimplemented!!
root partition size set to 0x3FC00000
mach_type ->00000405
reset_partitions: partition_table = 0x00000000
reset_partitions: flashDescriptor = 0x000323A4
define_partition: base 0x00000000
define_partition: partition_table 0x00000000
allocated partition_table
defining partition: bootldr
define_partition: base 0x00100000
define_partition: partition_table 0xA3A01AB4
defining partition: fpga
define_partition: base 0x00200000
define_partition: partition_table 0xA3A01AB4
defining partition: kernel
define_partition: base 0x00000000
define_partition: partition_table 0xA3A01AB4
defining partition: boot
define_partition: base 0x00400000
define_partition: partition_table 0xA3A01AB4
defining partition: root
initialize_by_mach_type done
probing ram
Probing bank0 memory size...
max memory size is 0x10000000
bank0 memory size=08000000
MDCNFG=89D309D3
dram_size_ptr=00034590
Probing memory size bank 0
dram_base=A0000000
memory size=08000000
dram_size_ptr=000345A4
Probing memory size bank 1
dram_base=B0000000
memory size=08000000
dram_size_ptr=000345B8
Probing memory size bank 2
dram_base=90000000
seems to be no dram in bank 2
dram_size_ptr=000345CC
Probing memory size bank 3
dram_base=80000000
memory size=08000000
n_banks=00000003
dram_sizes[0]=08000000
dram_sizes[1]=08000000
dram_sizes[2]=FFFFFFFF
dram_sizes[3]=08000000
SDRAM size: 0x08000000
in megs: 128M
set_params_by_name 1
get_param: could not find parameter rootfs
partition <root> deleted
define_partition: base 0x00400000
define_partition: partition_table 0xA3A01AB4
defining partition: root
MTD device not found ...
yaffs_mount(/boot) ok
>> Compaq OHH BootLoader, Rev 2-21-13-tcl36 for Balloon
[LARGE_MEMORY_MODEL] [B]>> 07-05-27_14:44
>> Last link date: Fri Jun 29 08:44:10 UTC 2007
>> Contact: [1]bootldr@handhelds.org
Cpu company: INTEL
Cpu Architecture: XScale
Cpu Part: PXA270
>> ARM Processor Rev=00050000
>> (c) 2000-2001 Compaq Computer Corporation, provided with NO WARRANTY
under t.>> See [2]http://www.handhelds.org/bootldr/ for full license and
sourcesPress Retuu
params_eval: prefix_in =bootldr:
params_eval: just_show =00000000
RXSTAT error: 000000FF
booting yaffs...
Rootfs is "yaffs2"
Kernel filesize = 0x0012F780
Booting file "/boot/zImage"...
kernel partition base A0008000
kernel_magic=E1A00000
kernel_region_words[9]=016F2818
Linux ELF flash_imgstart=A0008000 size=0012F780 dest=A0000000
offset=00008000
MMU Control=00000079
MMU PIDVAM=00000000
copying Linux kernel ... done
A0008000: E1A00000
A0008004: E1A00000
A0008008: E1A00000
A000800C: E1A00000
A0008010: E1A00000
A0008014: E1A00000
A0008018: E1A00000
A000801C: E1A00000
A0008020: EA000002
A0008024: 016F2818
root_filesystem_name=yaffs2
Grabbed linuxargs, argc = 00000003
Using mach_type 00000405
pre unparse setting boot parameters to
noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttyS2,115200
setting boot parameters to
noinitrd root=/dev/mtdblock1 init=/linuxrc console=ttyS2,115200
Making core tag at A0000100
Making cmdline tag at A0000114
Making mem32 tag at A00001C8
Making mem32 tag at A00001D8
Making mem32 tag at A00001E8
command line is: noinitrd root=/dev/mtdblock1 init=/linuxrc
console=ttyS2,1152
linuxEntryPoint=A0008000
Booting Linux image
Uncompressing
Linux.............................................................Linux
version 2.6.21.1-pxa270 (wookey@eisluft) (gcc version 4.1.2 20061115
(pre7CPU: XScale-PXA270 [69054114] revision 4 (ARMv5TE), cr=0000397f
Machine: Balloon3
Memory policy: ECC disabled, Data cache writeback
Running balloon3_map_io()
calling pxa_map_io()
Run Mode clock: 208.00MHz (*16)
Turbo Mode clock: 520.00MHz (*2.5, active)
Memory clock: 104.00MHz (/2)
System bus clock: 104.00MHz
pxa_map_io() done
iotable_init() done
CPU0: D VIVT undefined 5 cache
CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets
Built 1 zonelists. Total pages: 64768
Kernel command line: noinitrd root=/dev/mtdblock1 init=/linuxrc
console=ttyS2,
balloon3_init_irq: chained handler installed - irq 126 automatically
enabled
PID hash table entries: 1024 (order: 10, 4096 bytes)
Console: colour dummy device 80x30
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 128MB 128MB 0MB = 256MB total
Memory: 257152KB available (2244K code, 183K data, 92K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
Running balloon3_init()
NET: Registered protocol family 2
Time: pxa_timer clocksource has been installed.
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
NetWinder Floating Point Emulator V0.97 (double precision)
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
yaffs Jul 3 2007 14:42:23 Installing.
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
balloon3_backlight_power: power is on
Console: switching to colour frame buffer device 60x40
pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART
pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART
pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART
NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB
3,3V 8-b)4 NAND chips detected
Scanning device for bad blocks
Bad eraseblock 2590 at 0x143c0000
Bad eraseblock 3937 at 0x1ec20000
Bad eraseblock 5984 at 0x2ec00000
cmdlinepart partition parsing not available
Creating 2 MTD partitions on "balloon3-nand":
0x00000000-0x00400000 : "Boot"
0x00400000-0x40000000 : "Root fs"
mice: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
XScale iWMMXt coprocessor detected.
yaffs: dev is 32505857 name is "mtdblock1"
yaffs: Attempting MTD mount on 31.1, "mtdblock1"
block 2559 is bad
block 3906 is bad
block 5953 is bad
Freechunks verification failure 485768 242888 242880
VFS: Mounted root (yaffs2 filesystem).
Freeing init memory: 92K
Failed to execute /linuxrc. Attempting defaults...
INIT: version 2.86 booting
Starting the hotplug events dispatcher: udevd.
Synthesizing the initial hotplug events...done.
Waiting for /dev to be fully populated...done.
Activating swap...done.
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd = d72e4000
[00000000] *pgd=b7233031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
Modules linked in:
CPU: 0
PC is at yaffs_CheckpointClose+0x2c/0x184
LR is at yaffs_CheckpointSave+0x7c/0x434
pc : [<c00e8c44>] lr : [<c00e6c50>] Not tainted
sp : d6c2fd3c ip : d6c2fd5c fp : d6c2fd58
r10: c0744000 r9 : 00000000 r8 : c025cd18
r7 : 00000000 r6 : d724d000 r5 : c0744000 r4 : 00000000
r3 : 0000000e r2 : 00000000 r1 : 00000000 r0 : 00000000
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: 397F
Table: B72E4000 DAC: 00000015
Process mount (pid: 1410, stack limit = 0xd6c2e258)
Stack: (0xd6c2fd3c to 0xd6c30000)
fd20:
00000000
fd40: c03b9280 d724d000 00000000 d6c2fdc8 d6c2fd5c c00e6c50 c00e8c24
3fc00000
...
...
ffe0: 400ee1d0 bead5af4 0000aa58 400ee1dc 60000010 000242a8 00000000
00000000
Backtrace:
[<c00e8c18>] (yaffs_CheckpointClose+0x0/0x184) from [<c00e6c50>]
(yaffs_Checkpo) r7 = 00000000 r6 = D724D000 r5 = C03B9280 r4 = 00000000
[<c00e6bd4>] (yaffs_CheckpointSave+0x0/0x434) from [<c00ddb7c>]
(yaffs_remount_)[<c00ddb30>] (yaffs_remount_fs+0x0/0xac) from [<c007e424>]
(do_remount_sb+0xf8/) r5 = 00000000 r4 = C0444400
[<c007e32c>] (do_remount_sb+0x0/0x160) from [<c0094a98>]
(do_mount+0x19c/0x5e0)
r6 = C0444400 r5 = 00000021 r4 = C044443C
[<c00948fc>] (do_mount+0x0/0x5e0) from [<c0094f68>] (sys_mount+0x8c/0xd4)
[<c0094edc>] (sys_mount+0x0/0xd4) from [<c001fbc0>]
(ret_fast_syscall+0x0/0x2c)
r7 = 00000015 r6 = 00000000 r5 = 000242F8 r4 = 000242F8
Code: e59030e8 e3530000 da00004f e59000f8 (e5904000)
BUG: at kernel/exit.c:861 do_exit()
/etc/rcS.d/S10checkroot.sh: line 24: 1410 Segmentation fault mount
-n -o /
--
BalaKrishna Kolluru
References
Visible links
1.
mailto:bootldr@handhelds.org
2.
http://www.handhelds.org/bootldr/
----- End forwarded message -----
Wookey
--
Principal hats: Balloonz - Toby Churchill - Aleph One - Debian
http://wookware.org/