ARC770: "unexpected IRQ trap at vector 00" during boot
Alex
alex.g at adaptrum.com
Mon Jul 24 21:04:50 PDT 2017
On 07/24/2017 01:39 PM, Alexey Brodkin wrote:
> Hi Alexandru,
>
>> I'm getting a storm of these messages when trying to boot an in-house
>> ASIC with an ARC770. This only happens with an ethernet cable plugged
>> in. I've learned that the actual interrupt number is 21. The issue is
>> that the irq_find_mapping() in __handle_domain_irq() fails to find a
>> mapping for vector 21, and the remaining logic will brainlessly print
>> out '0' as the interrupt number (which is of course, bass-ackwards).
[snip]
> That's interesting! I saw exactly the same issue with one of our devboards.
> What happens here is GMAC generates output interrupt because of some
> condition(s),
I'm seeing this when using U-boot to load the kernel over ethernet. I
think it's enough to have the PHY link autonegotiated to get the
problem, but I didn't verify this.
> Answering your question why interrupt from GMAC happens before its driver
> is probed:
> 1) I need to look at my notes I made when was fighting with the same problem,
> but for some reason DW GMAC seems to have interrupts enabled on reset
> which is indeed a bit unexpected and might lead to a behavior you and I saw.
I'm curious to know what your notes say.
> 2) Historically we used to enable all possible core IRQ lines early on boot as opposed
> to per-line init by request of each particular driver. We have this on our to-do list
> as one of important improvements but that's not a short-term fix for sure.
>
> A work-around that I made and which may recommend to you is to figure out what
> condition in GMAC leads to generation of interrupt on its out and then resetting it in
> GMAC in your early platform boot code.
I was afraid that might be the only way. I can keep the GMAC logic in
reset, but that requires a custom platform early_init(), and a glue
driver for snps,dwmac.
> Let me know if it helps.
Yes. I implemented the proof-of-concept today. It's a very "interesting"
balancing act on when exactly to release the reset on the GMAC. I'm able
to get to boot to a shell with ethernet plugged in.
Alex
More information about the linux-snps-arc
mailing list