[uClinux-dev] Kernel oops after flash image write

Robert Daniels robertd at vantagecontrols.com
Tue Aug 30 13:15:23 EDT 2005


I have an XScale IXP420 system which allows firmware updates through
Redboot.  I'm having a problem where I get a kernel oops during the boot
process of the kernel after an image is installed.  I have three images
in their own partition on my mtd device (kernel, cramfs, jffs2) and it
appears that this problem can occur after any one of these images are
written.  After a reboot following the initial crash everything works
fine.  My system consists of uClinux snapgear 3.2.0 with Intel strata
flash running on an IXP420.  The ksymoops report looks like this:

[robertd at roblinux snapgear-3.2.0]$ ksymoops -v linux-2.4.x/vmlinux -k
~/Farscape/emc1000.2.syms -l ~/Farscape/emc1000.2.modules -o
romfs/lib/modules/ -m linux-2.4.x/System.map -t elf32-big -a elf32-big
~/Farscape/emc1000.2.oops
ksymoops 2.4.0 on i686 2.4.18-27.7.x.  Options used
     -v linux-2.4.x/vmlinux (specified)
     -k /home/robertd/Farscape/emc1000.2.syms (specified)
     -l /home/robertd/Farscape/emc1000.2.modules (specified)
     -o romfs/lib/modules/ (specified)
     -m linux-2.4.x/System.map (specified)
     -t elf32-big -a elf32-big

Warning (compare_maps): ksyms_base symbol fp_printk not found in
vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol fp_send_sig not found in
vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol kern_fp_enter not found in
vmlinux.  Ignoring ksyms_base entry
Warning (compare_maps): mismatch on symbol VantSerialTasklet  , vantrs
says c31238ec,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o says c3123fb8.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o entry
Warning (compare_maps): mismatch on symbol vant_tq_serial  , vantrs says
c3123900,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o says c3123fcc.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o entry
Warning (compare_maps): mismatch on symbol vantrs_console_baud  , vantrs
says c31238e4,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o says c3123fb0.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o entry
Warning (compare_maps): mismatch on symbol vantrs_console_cbaud  ,
vantrs says c31238e8,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o says c3123fb4.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o entry
Warning (compare_maps): mismatch on symbol vantrs_console_port  , vantrs
says c31238e0,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o says c3123fac.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o entry
Warning (compare_maps): mismatch on symbol vantrs_drivername  , vantrs
says c3123e58,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o says c3124524.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/vantrs/
vantrs.o entry
Warning (compare_maps): mismatch on symbol PcdsTasklet  , pcds says
c3114ed8,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c3115388.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol mast_fops  , pcds says
c3114eec,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c311539c.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol pcds_fop_array  , pcds says
c3114ecc,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c311537c.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol pcds_major  , pcds says
c3114e80,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c3115330.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol root_fops  , pcds says
c3114e84,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c3115334.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol vmod_fops  , pcds says
c3114f34,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c31153e4.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol vstat_fops  , pcds says
c3114f7c,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o says c311542c.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/pcds/pc
ds.o entry
Warning (compare_maps): mismatch on symbol rtcBase  , rtc says c30eaec4,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/rtc/rtc
.o says c30eae2c.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/rtc/rtc
.o entry
Warning (compare_maps): mismatch on symbol lcd_fops  , lcd says
c30a2cd0,
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/lcd/lcd
.o says c30a2d8c.  Ignoring
romfs/lib/modules/2.4.27-uc1/kernel/arch/arm/mach-ixp425/emc1000/lcd/lcd
.o entry
Internal error: Oops - undefined instruction: 0
CPU: 0
pc : [<c001ba64>]    lr : [<c0097e00>]    Not tainted
sp : c01dff9c  ip : 00000000  fp : 00000000
r10: 0001453c  r9 : 690541c1  r8 : c012ed08
Warning (Oops_set_i370_regs): garbage 'r9 : 690541c1  r8 : c012ed08' at
end of i370 register line ignored
r7 : c01ef260  r6 : c01395e8  r5 : c01dffb0  r4 : 60000013
r3 : 60000093  r2 : 00000000  r1 : 00000000  r0 : c01dffb0
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  Segment kernel
Control: 39FF  Table: 00004000  DAC: 0000001D
Stack: (0xc01dff9c to 0xc01e0000)
ff80:
c0155168
ffa0: 00000000 c0097e00 c01337a0 00000020 c01ef2e0 c0097414 c0155168
00000000
ffc0: c01395e8 c01395dc c000f49c 00000001 c0016888 c000ec68 c001684c
c00086c8
ffe0: 00000000 c0164b7c c0008708 c0017070 00000000 c0018eac c01dfff8
c01dfff8
Backtrace: no frame pointer
Code: e10f4000 e3843080 e121f003 00000000 (0100003c)
Error (Oops_bfd_perror): scan_arch for specified architecture Success
 
>>???; c001ba64 <do_gettimeofday+18/9c>   <=====
>>r10; 0001453c Before first symbol
 
Kernel panic: Attempted to kill init!
 
19 warnings and 1 error issued.  Results may not be reliable.

It seems like I saw somewhere on a list something about getting the
flash chip into some state before the kernel can boot properly... or
something along those lines but I've been unable to track down any
information about that.  Does anyone recall something like this or have
any ideas as to what my problem could be?  I've gotten other oops
reports and the location is a little different each time but always in
do_gettimeofday.

Thanks!

Robert Daniels




More information about the uClinux-dev mailing list