From: Philippe Gerum <rpm@xenomai.org>
To: "Steven A. Falco" <sfalco@domain.hid>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai-core] Compile-time bug, and problem with PPC440 ethernet
Date: Thu, 19 Jun 2008 10:16:23 +0200 [thread overview]
Message-ID: <485A15D7.1000809@domain.hid> (raw)
In-Reply-To: <48594CC9.4030408@domain.hid>
Steven A. Falco wrote:
> Philippe Gerum wrote:
>> Steven A. Falco wrote:
>>
>>>>> I am using the patch that came with Xenomai 2.4.4, namely:
>>>>> adeos-ipipe-2.6.25-powerpc-DENX-2.2-02.patch
>>>>>
>>>>>
>>>>>
>>>> I can't reproduce this issue on a 440EP board, but I still have to to put my
>>>> hands on a 440EPX to check this. However, both should be using the common 44x
>>>> PIC support, so I don't expect big changes here.
>>>>
>>>> Are you using the powerpc/ branch, or legacy ppc/ one for building the sequoia
>>>> kernel?
>>>>
>>>>
>>> ARCH=powerpc.
>>>
>>
>> Ah. So it's the UIC support that likely breaks. Could you try this patch?
>>
>> diff --git a/arch/powerpc/sysdev/uic.c b/arch/powerpc/sysdev/uic.c
>> index dd40f64..4eff1ab 100644
>> --- a/arch/powerpc/sysdev/uic.c
>> +++ b/arch/powerpc/sysdev/uic.c
>> @@ -111,7 +111,6 @@ static void uic_mask_ack_irq(unsigned int virq)
>>
>> sr = 1 << (31-src);
>> spin_lock_irqsave(&uic->lock, flags);
>> - ipipe_irq_lock(virq);
>> er = mfdcr(uic->dcrbase + UIC_ER);
>> er &= ~sr;
>> mtdcr(uic->dcrbase + UIC_ER, er);
>>
>> In case it is not enough, try removing all the ipipe_irq_lock/unlock calls from
>> arch/powerpc/sysdev/uic.c. If that works eventually, I'll sort the mess out later.
>>
>
> Beautiful. The patch works! I now get DHCP replies.
>
> Is this the patch you will put into the official tree, or do you still
> need to do more?
>
One thing, could you confirm that your network card relies on edge interrupts
(and not level)?
Aside of that, it should be ok. It's the same IRQ lock out issue fixed in the
ppc/ branch recently.
> Also, please include my compile-time patch, if that is acceptible.
>
I recently committed a different fix for the same issue after you reported it.
This should work without requiring additional #ifdef'ing as well. Thanks for the
heads up.
--- a/include/asm-powerpc/ipipe.h
+++ b/include/asm-powerpc/ipipe.h
@@ -62,8 +62,6 @@
local_irq_enable_hw(); x; \
} )
-#define ipipe_update_tick_evtdev(evtdev) do { } while (0)
-
struct ipipe_domain;
struct ipipe_sysinfo {
@@ -209,4 +207,6 @@ do { \
#endif /* CONFIG_IPIPE */
+#define ipipe_update_tick_evtdev(evtdev) do { } while (0)
+
#endif /* !__ASM_POWERPC_IPIPE_H */
--
Philippe.
next prev parent reply other threads:[~2008-06-19 8:16 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-16 18:57 [Xenomai-core] Compile-time bug, and problem with PPC440 ethernet Steven A. Falco
2008-06-16 21:56 ` Steven A. Falco
2008-06-17 7:30 ` Philippe Gerum
2008-06-17 13:27 ` Steven A. Falco
2008-06-18 16:17 ` Philippe Gerum
[not found] ` <48594232.5020505@domain.hid>
2008-06-18 17:20 ` Philippe Gerum
[not found] ` <48594CC9.4030408@domain.hid>
2008-06-19 8:16 ` Philippe Gerum [this message]
2008-06-26 12:57 ` Steven A. Falco
2008-06-26 13:07 ` Philippe Gerum
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=485A15D7.1000809@domain.hid \
--to=rpm@xenomai.org \
--cc=sfalco@domain.hid \
--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.