QSD8250 illegal instruction on WinCE devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

With the acer s200 we now have a second WinCE based device supported by our kernel for htc leo at git://git.linuxtogo.org/home/groups/mobile-linux/kernel.git htc-msm-2.6.32 . S200 has 256MB ram rather than 512 in leo. Only a small patch to rearrange memory mapping was needed.

The same cpu crashes as on leo were observed when booting an openembedded initrd on s200. So I think we can conclude that the illegal instruction problem is not specific to the very leo hardware.

Please look at the following prints on snapdragon SoC:

acer s200:
QUALCOMM(R)
QSD8250
BK153.R1
H192600C
AAB

htc leo:
QUALCOMM(R)
QSD8250
B0US19.0
H192500C
AAB

passion aka nexus one:
QUALCOMM(R)
QSD8250
B1F777.0
H194400C

This is taken from FCC testing photographs. More at http://htc-linux.org/wiki/index.php?title=Qsd8250 Not the acer s100 (also wince device) with AAA suffix.

I think it is striking that the nexus one which comes with linux installed lacks the three letter suffix.

S200 and leo come with WinCE so it's obvious both have WinCE AMSS version. Both have the AAB appended on the SoC print. Both devices show the cpu crash (as indicated earlier the kernel used on both devices is almost same. so it's up to you how valid this is)

Nexus one aka passion comes with linux and has a linux specific AMSS version. All kinds of binaries with instruction sets spoken by cortex-a8 can be executed without any crashes.

It seems obvious that the problem is in some way related to the fact that our system is designed for use with WinCE. (On a side note WinCE makes limited use of the optimizations of different ARM versions afaik. Yes, we did try running userspace without them. E.g. I tried to use a debian armel rootfilesystem with armv4t which works well on the nexus one / passion but it failed for me)

As it was mentioned it might be that the SoC in leo device is 'programmed' in a different way because WinCE assumes different things than linux. I can confirm this to a certain extent. It is known that there are massive differences in the AMSS. E.g. we need to patch proc_comm, clock, ... for use with WinCE amss devices. But as I stated earlier we never had such a problem with crashes on the older WinCE devices with msm7x0x non-A and msm7xxxA. When linux boots you can execute everything. This is a phenomenon limited to WinCE qsd8.

A different thing to keep in mind is that we do not have a clean boot. Before WinCE is removed from memory and the linux kernel is loaded and started quite some stuff happens to the hardware. How far could this be related?

I am wondering about the qsd8 devices you QIC Inc. guys are working with. What about the snapdragon fish? Do they have the three letter suffix on qsd8250 ? Are there extra evaluation baords for WinCE ?

Once I received my 3,3V ttl level UART device I will try to boot git://codeaurora.org/quic/kernel/dwalker/linux-msm.git msm-core kernel on leo. As I'm not the best coder I'm wondering if it is good to help for ask here regarding leo specific patches in that branch.


Thanks

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


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux