linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Martijn Stolk <martijn.stolk@gmail.com>
To: linux-arm-msm@vger.kernel.org
Subject: Re: QSD8250 illegal instruction on WinCE devices
Date: Tue, 29 Jun 2010 21:03:18 +0200	[thread overview]
Message-ID: <4C2A4376.9050602@gmail.com> (raw)
In-Reply-To: <1277830196.30743.1.camel@c-dwalke-linux.qualcomm.com>

No worries. I wanted to isolate what specifically fixes the problem 
myself in order to make a minimal patch. I'm also hoping for some help 
regarding information, as I don't have access to official QSD8250 
documentation.

I've found the key register that differs between between how it is 
initialized for Windows CE and for Linux, and solves the problem for us. 
It is the Auxilliary Control Register (cp15, 0, c1, c0, 1).

For Windows CE it is initialized to 0x002C0077 
(=0b00000000001011000000000001110111)
For Linux it is initialized to 0x000C0037      
(=0b00000000000011000000000000110111)

The following page explains this register for the Cortex-A8, the ARM 
core on which the QSD8250 is based:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344k/Bgbffjhh.html

The 7th bit (bit 6 on that page) controls the behaviour of the 
Invalidate All & by MVA instructions. It needs to be disabled for Linux.

The 22nd bit, however, is in an area marked as "reserved" on that page. 
I am very curious what this bit does. Maybe this reserved area is 
documented in QSD8250 documentation? Could anyone provide clearity about 
this bit?

In conclusion, we are able to continue our work using the following asm, 
but do not know what the second flag means:
   MRC p15, 0, r0, c1, c0, 1
   BIC r0, #0x40
   BIC r0, #0x200000
   MCR p15, 0, r0, c1, c0, 1

Thanks in advance for any information.

Regards,
Martijn


On 06/29/2010 06:49 PM, Daniel Walker wrote:
>
> Don't do it on my account, I was just wondering if that was discovered..
>
> Daniel
>

  reply	other threads:[~2010-06-29 19:03 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2010-06-29 20:38           ` Daniel Walker
2010-06-29 21:29             ` Martijn Stolk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C2A4376.9050602@gmail.com \
    --to=martijn.stolk@gmail.com \
    --cc=linux-arm-msm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).