i.MX35 Kernel without ARM EABI support cannot execute init

From: hoefle marco <hidden>
Date: 2009-08-24 09:59:32

quoted
I have an issue with the ARM EABI kernel option.
right now we have two ARM boards and two embedded linux distributions
(Emdebian and OSELAS). The CPUs are PXA270 and Freescale i.MX35.
The aim is to have emdebian on both boards.
When trying to boot the i.MX35 Kernel (with ARM EABI or without, the
kernel panic remains exactly the same) using the emdebian rootfs I
get this:

Kernel panic - not syncing: Attempted to kill init!
Backtrace:
[<c0026430>] (dump_backtrace+0x0/0x10c) from [<c02515dc>] (dump_stack
+0x18/0x1c)
 r7:c7817f54 r6:c7813c40 r5:c7813c40 r4:00000004
[<c02515c4>] (dump_stack+0x0/0x1c) from [<c025161c>] (panic+
0x3c/0x110)
[<c02515e0>] (panic+0x0/0x110) from [<c0034a14>] (do_exit+0x6c/0x5b8)
 r3:c0301bd4 r2:c7813c40 r1:c7817d14 r0:c02b478a
[<c00349a8>] (do_exit+0x0/0x5b8) from [<c0034fe0>] (do_group_exit
+0x80/0xb4)
[<c0034f60>] (do_group_exit+0x0/0xb4) from [<c003ea60>]
(get_signal_to_deliver+0x2c0/0x2f0)
 r4:00000004
[<c003e7a0>] (get_signal_to_deliver+0x0/0x2f0) from [<c0024ecc>]
(do_signal+0x58/0x4e4)
[<c0024e74>] (do_signal+0x0/0x4e4) from [<c0025384>] >> 
(do_notify_resume
+0x2c/0x30)
[<c0025358>] (do_notify_resume+0x0/0x30) from [<c0022dac>] 
(work_pending
+0x1c/0x20)

The PXA270 kernel (same settings except ARM system type and ARM EABI
disabled) boots the emdebian root file-system successfully.

The i.MX35 Kernel boots with ARM EABI support the OSELAS file-system.
Both Kernels are version 2.6.30.4 and were compiled with the same
arm-linux-gnu-gcc compiler.

From my understanding it should be possible to use the same root
file-system on both CPUs.

Has anybody an idea why this is not working?
Curious.  I'm having the same issue on a ep93xx system.
I switched from an OABI toolchain to an EABI one a while back. 
Everything
was working fine but I realized that my rootfs was still built with
the older OABI toolchain.  So I nuked the rootfs and re-built 
everything.
Now the kernel boots fine but it hangs with the same Kernel panic you
are seeing.
In my case I think it's an issue with the external toolchain support
in buildroot.  The toolchain I am using (CodeSourcery 2009q1-203) is
a multilib toolchain and needs the -march=armv4t option to use the
correct instructions for the architecture.  It also needs this option
to correctly identify the directory location for the libraries.
I have been able to staticlly compile a test init and replaced the
one in my rootfs.  Doing that I don't get the Kernel panic so I think
I'm on the right track to finding a fix.
Emdebian builds the root filesystem from pre-built packages for ARM. So
init is part of the busybox package emdebian crush is using.
But the thing is that the same init works for the pxa270 but not for the
freescale i.mx35.
I will try to cross-compile a test init as you did with the toolchain
with and without EABI. 
Using the options "Use the ARM EABI to compile the kernel" + "Allow old
ABI binaries to run with this kernel" should allow to run init compiled
with the EABI toolchain and with the old arm toolchain.  

Are you also using buildroot?  Could your problem be similar?
No, but the problem might be similar.
I have cc'ed the buildroot list and Thomas Petrazzoni just in case
your issue is the same.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help