All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
To: Wayne Warren <wwarren@emacinc.com>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] Adeos I-Pipe patch problem on vendor-specific kernel
Date: Tue, 23 Oct 2012 22:12:25 +0200	[thread overview]
Message-ID: <5086FA29.6010008@xenomai.org> (raw)
In-Reply-To: <1351006344.2975.60.camel@ENG-09-LX.emacinc.com>

On 10/23/2012 05:32 PM, Wayne Warren wrote:

> Yeah, this is actually an OMAP3 processor, except the kernel tree you
> are using (if it is the Adeos I-Pipe one) I think was branched from the
> vanilla kernel whereas the one we are using is branched from a TI kernel
> released specifically for the AM3517 (previously known as OMAP3517, I
> think? still confused about that).
> 
> The current problem is in __ipipe_stall_root(). After analyzing the
> GDB-disassembled function, I can see that there are three "ldr" and one
> "str" instructions that might be the cause of the Data Abort exception
> that leads into the kernel panic. These instructions all load or store
> values related to the __ipipe_percpu_darray variable. Specifically, they
> deal with the first entry in this array, clear the status member (ldr,
> bic) and write it back (str), check the value of irqpend_himap (ldr,
> cmp) to determine if __ipipe_sync_stage should be called (the answer is
> no), then try to re-enable interrupts using "cpsie"
> 
> The Data Abort exception actually occurs on the "cpsie" instruction, but
> according to the ARMv7-A/ARMv7-R architecture reference manual, the
> "CPS" type instructions do not generate any exceptions. However, the
> manual also indicates that in Debug mode the behavior of the processor
> when this instruction is called can be unpredictable.
> 
> Anyway, I am somewhat at a loss. The "ldr" and "str" instructions used
> perform the operations as expected according to printouts of
> __ipipe_cpu_darray.


Normally, if the kernel is not an SMP kernel, the root state is a simple
variable. The only reason I see why ldr or str could fail would be if
the address is invalid or not aligned correctly. Apart from that,
debugging this kind of issue remotely is a bit hard.

You can try another method, if the vanilla kernel from which the branch
you are working on is forked works on the processor you are using, and
works with xenomai, you can try a git bisect, to try and find which
commit exactly conflicts with the I-pipe patch.

Yet another method, you can try and reduce the kernel to the simplest
possible configuration which allows to boot your system (disabling NAND
and NOR, which should for instance remove the need for GPMC, and boot
using NFS), see if it works, and if it works, gradually add the options
until you find which option is a problem, then compare the code this
option enables with the vanilla linux code.

-- 
                                                                Gilles.


  reply	other threads:[~2012-10-23 20:12 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-02 21:08 [Xenomai] Adeos I-Pipe patch problem on vendor-specific kernel Wayne Warren
2012-10-02 21:32 ` Gilles Chanteperdrix
2012-10-02 21:35   ` Gilles Chanteperdrix
2012-10-04 16:57     ` Wayne Warren
2012-10-04 17:09       ` Gilles Chanteperdrix
2012-10-04 18:02         ` Gilles Chanteperdrix
2012-10-05  8:06         ` Gilles Chanteperdrix
2012-10-05 18:47           ` Wayne Warren
2012-10-05 20:16             ` Gilles Chanteperdrix
2012-10-05 21:47               ` Wayne Warren
2012-10-05 22:43                 ` Gilles Chanteperdrix
2012-10-06  4:29                   ` Wayne Warren
2012-10-06  9:46                     ` Gilles Chanteperdrix
2012-10-09 20:55                       ` Wayne Warren
2012-10-09 21:12                         ` Gilles Chanteperdrix
2012-10-19 21:22                           ` Wayne Warren
2012-10-20  1:33                             ` Gilles Chanteperdrix
2012-10-22 19:22                               ` Wayne Warren
2012-10-22 19:25                                 ` Gilles Chanteperdrix
2012-10-22 19:34                                   ` Wayne Warren
2012-10-22 21:12                                     ` Gilles Chanteperdrix
2012-10-23 15:32                                       ` Wayne Warren
2012-10-23 20:12                                         ` Gilles Chanteperdrix [this message]
2012-10-24 17:32                                           ` Wayne Warren
2012-10-24 17:38                                             ` Gilles Chanteperdrix
2012-10-24 17:55                                               ` Wayne Warren
2012-10-24 18:05                                                 ` Gilles Chanteperdrix
2012-10-24 18:26                                                   ` Wayne Warren
2012-10-24 18:36                                                     ` Gilles Chanteperdrix
2012-10-24 17:36                                           ` Wayne Warren
2012-10-24 17:57                                             ` Gilles Chanteperdrix
2012-10-20  8:24                             ` Gilles Chanteperdrix
2012-10-19 21:32                           ` Wayne Warren
2012-10-20  1:36                             ` Gilles Chanteperdrix

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=5086FA29.6010008@xenomai.org \
    --to=gilles.chanteperdrix@xenomai.org \
    --cc=wwarren@emacinc.com \
    --cc=xenomai@xenomai.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 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.