All of lore.kernel.org
 help / color / mirror / Atom feed
* QSD8250 illegal instruction on WinCE devices
@ 2010-06-22  0:14 Lukas-David Gorris
  2010-06-27 21:50 ` Lukas-David Gorris
  0 siblings, 1 reply; 8+ messages in thread
From: Lukas-David Gorris @ 2010-06-22  0:14 UTC (permalink / raw)
  To: dwalker; +Cc: linux-arm-msm

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


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-06-29 21:29 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-22  0:14 QSD8250 illegal instruction on WinCE devices Lukas-David Gorris
2010-06-27 21:50 ` Lukas-David Gorris
2010-06-28 17:34   ` Daniel Walker
2010-06-28 22:24     ` Martijn Stolk
2010-06-29 16:49       ` Daniel Walker
2010-06-29 19:03         ` Martijn Stolk
2010-06-29 20:38           ` Daniel Walker
2010-06-29 21:29             ` Martijn Stolk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.