Hello,
I'm not sure if this is the right place but I don't know who else to
address with this problem. The users of this list seem to know much
about the qsd8* platform.
We are porting linux to the qsd8250 based htc leo device.
The code can be found at
git://git.linuxtogo.org/home/groups/mobile-linux/kernel.git htc-msm-2.6.32
web:
http://git.linuxtogo.org/?p=groups/mobile-linux/kernel.git;a=shortlog;h=refs/heads/htc-msm-2.6.32
It is based on the android-msm-2.6.32 branch from the google git at:
http://android.git.kernel.org/?p=kernel/msm.git;a=shortlog;h=refs/heads/android-msm-2.6.32
General information on the device and on this subject can be found
here: http://htc-linux.org/wiki/index.php?title=Leo
Our big problem is that we get illegal instructions on userspace
binary execution. Some program work well, others will always crash
with segfault / illegal instruction errors. For a while we thought
that it is a question of using the correct toolchain and flags to
compile. But it seems that the errors occur with various
configurations. Also we tested rootfilesystems that worked perfectly
well on the htc passion aka nexus one (same qsd8250) and they crashed
in the same way. This makes it look like we rather have a problem with
our kernel or that there are some hardware differences.
My understanding about these low-level things is bad so I can't go
into great detail. I would like to take the liberty to refer to the
mailing list where the problem is discussed:
http://lists.linuxtogo.org/pipermail/mobile-linux-discuss/2010-May/thread.html
It would be very nice if somebody could take a look at that. I will
paste the mail with the latest finding for easier reference.
On Fri, May 28, 2010 at 3:09 PM, Le Tama <letama at free.fr> wrote:
Hi Guys,
I did a new experiment that yielded interesting results.
Here is what I did: I compiled eclair qaesd for ffa to get android binaries
with android toolchain.
With these binaries, I did a init script using android sh binary, it
reaches
the prompt.
I also launched static adbd from this script, that was terminated because
of
invalid instruction:
[ 11.376047] adbd (42): undefined instruction: pc=3D0000fc60
[ 11.380015] Code: e5843000 e8bd8010 e59f102c e1a0c000 (e52d4004)
[ 11.387759] PL:send_signal (sig=3D4, from_ancestor=3D0)
I dumped the compiled adbd with objdump, here is the location:
0000fc58 <pthread_attr_init>:
fc58: e59f102c ldr r1, [pc, #44] ; fc8c
<pthread_attr_init+0x34>
fc5c: e1a0c000 mov ip, r0
fc60: e52d4004 push {r4} ; (str r4, [sp,
#-4]!)
fc64: e59f4024 ldr r4, [pc, #36] ; fc90
<pthread_attr_init+0x38>
fc68: e08f3001 add r3, pc, r1
fc6c: e0834004 add r4, r3, r4
fc70: e8b4000f ldm r4!, {r0, r1, r2, r3}
fc74: e8ac000f stmia ip!, {r0, r1, r2, r3}
fc78: e8940003 ldm r4, {r0, r1}
fc7c: e88c0003 stm ip, {r0, r1}
fc80: e3a00000 mov r0, #0
fc84: e8bd0010 pop {r4}
fc88: e12fff1e bx lr
fc8c: 0001890c .word 0x0001890c
fc90: ffffbe04 .word 0xffffbe04
So, as you can see, the undefined instruction is the push {r4} line.
If I interpret well what I see, the instruction is legit, memory is ok, but
the cpu considers it invalid.
Now, the question is why ? Invalid instruction cache ? Wrong processor
state
?
This is out of my league, if someone has an explanation ?
Best,
LeTama
_______________________________________________
Mobile-linux-discuss mailing list
Mobile-linux-discuss at linuxtogo.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/mobile-linux-discuss
We've been struggeling to get past this problem for quite a while now.
Any hint is welcome.
Kind regards,
Lukas
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html