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
A lot of stuff is working out of the box. 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 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 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. We are
stI 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=0000fc60
[ 11.380015] Code: e5843000 e8bd8010 e59f102c e1a0c000 (e52d4004)
[ 11.387759] PL:send_signal (sig=4, from_ancestor=0)
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