Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Apr 2017 00:25:28 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-arm <freebsd-arm@freebsd.org>, freebsd-hackers@freebsd.org
Subject:   Re: head -r317015 (and before) vs. Pine64+ 2GB (an aarch64) and spurious interrupts: [the A64 IRQ numbers involved other than 1023]
Message-ID:  <C6B9A15F-D8C7-46F6-B59A-DBCB70BE3C44@dsl-only.net>
In-Reply-To: <49C0BC5D-8A31-4E77-AFC6-6F027CA3AB1E@dsl-only.net>
References:  <B4FDA80F-1E72-4A2B-BE0C-E6F7BE6CDC5F@dsl-only.net> <D128A050-9688-4BDB-9D16-50DFEF15D6A5@dsl-only.net> <49C0BC5D-8A31-4E77-AFC6-6F027CA3AB1E@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2017-Apr-24, at 10:03 PM, Mark Millard <markmi at dsl-only.net> wrote:

> I found some basic reference material for the 
> "last irq" numbers for the A64 that is in the
> Pine64+ 2GB (and 1GB). . .
> 
> IRQ  27: PPI 11                   interrupt, vector 0x006C
> (I've no clue about this one beyond it being a
> "Private Peripheral Interrupt" example, somehow
> specific to each core separately.)

Looks to be a timer, not that I can tell
much about it:

        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13
                        (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                             <GIC_PPI 14
                        (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                             <GIC_PPI 11
                        (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
                             <GIC_PPI 10
                        (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
        };

But looking around I've seen references to needing IRQ_TYPE_NONE
if the register is read-only, avoiding writes to read-only
registers, --with such timers as examples (not necessarily
A64 specific material though).

> The rest of the IRQs are "Shared Peripheral
> Interrupt"s. . .
> 
> IRQ  92: SD/MMC Host Controller 0 interrupt, vector 0x0170
> 
> IRQ 106: USB-EHCI0                interrupt, vector 0x01A8
> 
> 
> There were some:
> 
> IRQ 114: EMAC                     interrupt, vector 0x01C8
> IRQ  32: UART 0                   interrupt, vector 0x0080
> 
> And the first "last irq:" for each boot was
> one of:
> 
> IRQ 107: USB-OHCIO                interrupt, vector 0x0A1C
> IRQ  64: External Non-Mask        Interrupt, vector 0x0100
> 
> Neither 107 or 64 occurred again after the first
> message for a boot. 64 showed up when no USB device
> was plugged in; 107 showed when one was left plugged
> in (plugged in before powering on the Pine64+ 2GB).
> 
> 1023 for the current irq number is special
> and not specific to the A64.
> 
> 
> So far I can not tell if the kernel mishandles the
> A64 in some way that leads to 1023's vs. if this
> is just what an A64 does for some odd reason, even
> with fully-correct software.

===
Mark Millard
markmi at dsl-only.net







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?C6B9A15F-D8C7-46F6-B59A-DBCB70BE3C44>