Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Apr 2019 09:16:16 -0500
From:      Karl Denninger <karl@denninger.net>
To:        Per Hedeland <per@hedeland.org>
Cc:        Ian Lepore <ian@freebsd.org>, freebsd-arm@freebsd.org
Subject:   Re: I2c producing crazy console messages [[Re: insanely-high interrupt rates -- PARTIAL resolution (Pi2)]]
Message-ID:  <c0b9cfbc-ea0f-f419-c763-e976f7214c8d@denninger.net>
In-Reply-To: <499b53d5-23ed-c33b-3715-018720c536a3@hedeland.org>
References:  <004ddba628b94b80845d8e509ddcb648d21fd6c9.camel@freebsd.org> <40f57de2-2b25-3981-a416-b9958cc97636@denninger.net> <669892ac3fc37b0843a156c0ab102316829103fd.camel@freebsd.org> <663f2566-b035-7011-70eb-4163b41e6e55@denninger.net> <20190325164827.GL57400@cicely7.cicely.de> <3db9cf8a-68ee-e339-67bf-760ee51464fd@denninger.net> <fc17ac0f77832e840b9fffa9b1074561f1e766d8.camel@freebsd.org> <d96c7f42-f01b-8990-a558-ee92d631b51d@denninger.net> <dc56a8964cae942354cbe2b5b0620f2eebb569bb.camel@freebsd.org> <874l7fyrpr.fsf@news-spur.riddles.org.uk> <701e011f-3088-8ed4-4fbb-6fa93ac698f5@denninger.net> <aefa1d778e7684f71ffed49ce32ee80e2273d033.camel@freebsd.org> <67133e19-2be5-ccd1-2ded-008b36a866ec@denninger.net> <6f6f8471-8624-c5e2-547c-42b712254126@denninger.net> <ec6a5200c9c0b255094f6a46a1d2f95cd9334ea6.camel@freebsd.org> <8bcdb1e1-e561-6255-848d-e532ad4d5918@denninger.net> <499b53d5-23ed-c33b-3715-018720c536a3@hedeland.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a cryptographically signed message in MIME format.

--------------ms000500040108010408050301
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

On 4/19/2019 06:32, Per Hedeland wrote:
> On 2019-04-19 03:25, Karl Denninger wrote:
>>
>> On 4/18/2019 17:57, Ian Lepore wrote:
>>> On Thu, 2019-04-18 at 16:51 -0500, Karl Denninger wrote:
>>>> Up until 12.0 this code both worked and did *not* generate complaint=
s
>>>> about unhandled interrupts.=A0 It still runs fine and returns valid
>>>> data
>>>> BUT if there are any analog endpoints actually on the bus that the
>>>> code
>>>> can read then it generates a lot of these:
>>>>
>>>> local_intc0: Spurious interrupt detected
>>>> local_intc0: Spurious interrupt detected
>>>> intc0: Spurious interrupt detected
>>>>
>>>> .....
>>>>
>>>> If I do not connect the I2c device then there are no messages.=A0 If=
 I
>>>> stop the code that is running (e.g. no accesses to the i2c bus) then=

>>>> the
>>>> messages stop as well, so it's not something that happens but remain=
s
>>>> active after the code halts; it's happening on the actual accesses t=
o
>>>> the bus from those ioctl's.
>>> Hmm, another interesting question occurred to me:=A0 Can you tell whe=
ther
>>> you are getting multiple spurious interrupt messages per single
>>> transfer your code does, or is it one per transfer, or more
>>> intermittent, like not on every transfer?
>>>
>>> -- Ian
>>
>> It logs the message on "many" accesses, but not all.
>>
>> The code scans each of the declared analogs once per second.=A0 There =
are
>> two inputs defined on this unit right now, so if it was on every acces=
s
>> there would be two messages per second logged, and there isn't; nor is=

>> it "one per cluster" of accesses.=A0 I removed the reset and restarted=
 the
>> code and this is the frequency of log entries I'm getting, which impli=
es
>> frequent and random, but much less than 1:1.
>>
>> Apr 18 20:22:25 Pool-MCP kernel: intc0: Spurious interrupt detected
>> Apr 18 20:22:26 Pool-MCP kernel: local_intc0: Spurious interrupt
>> detected
>> Apr 18 20:22:27 Pool-MCP kernel: intc0: Spurious interrupt detected
>> Apr 18 20:22:33 Pool-MCP kernel: local_intc0: Spurious interrupt
>> detected
>> Apr 18 20:22:36 Pool-MCP kernel: intc0: Spurious interrupt detected
>> Apr 18 20:22:38 Pool-MCP kernel: local_intc0: Spurious interrupt
>> detected
>> Apr 18 20:22:39 Pool-MCP kernel: intc0: Spurious interrupt detected
>> Apr 18 20:22:40 Pool-MCP syslogd: last message repeated 1 times
>> Apr 18 20:22:40 Pool-MCP kernel: local_intc0: Spurious interrupt
>> detected
>> Apr 18 20:22:42 Pool-MCP kernel: intc0: Spurious interrupt detected
>> Apr 18 20:22:49 Pool-MCP kernel: local_intc0: Spurious interrupt
>> detected
>> Apr 18 20:22:52 Pool-MCP kernel: intc0: Spurious interrupt detected
>> Apr 18 20:22:53 Pool-MCP kernel: local_intc0: Spurious interrupt
>> detected
>
> Hm, I've recently gotten an i2c device to work on RPi - FWIW it's an
> ads1015 AD-converter, my code is pretty similar to yours - you may
> actually be using the same device - and I don't see *any* "Spurious
> interrupt" messages when using it. But a) I've only run it on RPi Zero
> (currently connected) and RPi 1B (briefly when testing), and b) I
> don't have a console connected (but I assume the messages should also
> show up in dmesg and /var/log/messages, the above seems to be from the
> log).
>
> But anyway I would be *extremely* surprised if I saw them, since AFAIU
> the i2c bus per se has no concept of interrupts - you need to connect
> some other wire from the device to e.g. a gpio pin (with appropriate
> config) in order to generate interrupts - and I haven't done that. (The=

> ads1015 does have an ALERT/RDY pin that could potentially be used for
> it, but since FreeBSD AFAIK doesn't have a way to deliver the
> interrupts to userland code, I had no interest in it.)

Correct.=A0 Indeed these are ADS1015s -- the code also supports ads1115s.=
=A0
The delay for conversion is different, thus the multiplier (you set a
different constant in the config file) plus, of course, the shift
required for 12-bit alignment into a 16-bit result.

>
> So, your code like mine doesn't seem to use interrupts at all - do you
> nevertheless have some interrupt-generating connection from the
> device?=20

No.=A0 Thus the delay for conversion via usleep within my code since
there's no way for a device on the I2c bus itself (at least as far as I
know) to alert that the conversion is complete.=A0 While theoretically I
could use the Alert/RDY pin I do not at present.

The spurious interrupt message is coming from
sys/arm/broadcom/bcm2835/bcm2835_intr.c -- which is, of course, not
present in a RPI3 build since that's aarch64 (the "arm64" branch of the
sys tree) and not arm.

But the below is indeed interesting....

> And if these interrupts really happen only on RPi 2 and not on
> any of 0/1/3, I guess it makes sense to look at the dts/dtb files.
> Diffing bcm2708-rpi-0-w.dts and bcm2709-rpi-2-b.dts, I see this:
>
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 interrupt-controller@7e00=
b200 {
>
> -=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 com=
patible =3D "brcm,bcm2835-armctrl-ic";
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 com=
patible =3D "brcm,bcm2836-armctrl-ic";
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 r=
eg =3D <0x7e00b200 0x200>;
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 i=
nterrupt-controller;
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 #=
interrupt-cells =3D <0x2>;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int=
errupt-parent =3D <0x3>;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int=
errupts =3D <0x8>;
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 p=
handle =3D <0x1>;
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 };
>
> and this:
>
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 local_intc@40000000 {
> +
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 com=
patible =3D "brcm,bcm2836-l1-intc";
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 reg=
 =3D <0x40000000 0x100>;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int=
errupt-controller;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 #in=
terrupt-cells =3D <0x1>;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 int=
errupt-parent =3D <0x3>;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 pha=
ndle =3D <0x3>;
> +=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 };
>
> I have (as yet) no idea what it actually means, but it clearly seems
> to be interrupt-related... There are a few more "interrupt-related"
> diffs, but those two kind of "stand out" for me. Btw, shouldn't these
> .dts files exist somewhere under /usr/src/sys/gnu/dts/arm? I
> decompiled them from the .dtb's in installed images to be able to
> compare...
>
> --Per Hedeland

The "newer build environment" has both rpi-firmware and u-boot running
off packages/ports, which are nominally in /usr/local/share; in this
case /usr/local/share/rpi-firmware.=A0 The dtb files are there, but not
the source dts files.=A0 FreeBSD picks up the binary dtb files; it does
not compile the .dts files at build time.

root@NewFS:/usr/local/share/rpi-firmware # ls -al
total 9427
drwxr-xr-x=A0=A0=A0 3 root=A0 wheel=A0=A0=A0=A0=A0=A0 26 Feb 10 12:08 .
drwxr-xr-x=A0 112 root=A0 wheel=A0=A0=A0=A0=A0 113 Mar=A0 4 11:31 ..
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 18693 Nov 12 10:05 COPYING.l=
inux
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 1494 Nov 12 10:05 LICENCE=
=2Ebroadcom
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 5888 Feb=A0 8 11:55 armst=
ub8.bin
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 23315 Nov 12 10:05 bcm2708-r=
pi-0-w.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 23071 Nov 12 10:05 bcm2708-r=
pi-b-plus.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 22812 Nov 12 10:05 bcm2708-r=
pi-b.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 22589 Nov 12 10:05 bcm2708-r=
pi-cm.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 24115 Nov 12 10:05 bcm2709-r=
pi-2-b.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 25574 Nov 12 10:05 bcm2710-r=
pi-3-b-plus.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 25311 Nov 12 10:05 bcm2710-r=
pi-3-b.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 24087 Nov 12 10:05 bcm2710-r=
pi-cm3.dtb
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0 52116 Nov 12 10:05 bootcode.=
bin
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0=A0 89 Feb=A0 8 11:55 c=
onfig.txt
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0 151 Feb=A0 8 11:55 con=
fig_rpi3.txt
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0=A0 114 Feb=A0 8 11:55 con=
fig_rpi_0_w.txt
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 6666 Nov 12 10:05 fixup.d=
at
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 2621 Nov 12 10:05 fixup_c=
d.dat
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 9895 Nov 12 10:05 fixup_d=
b.dat
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0=A0=A0 9895 Nov 12 10:05 fixup_x=
=2Edat
drwxr-xr-x=A0=A0=A0 2 root=A0 wheel=A0=A0=A0=A0=A0 151 Feb 10 12:08 overl=
ays
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0 2857060 Nov 12 10:05 start.elf
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0=A0 678532 Nov 12 10:05 start_cd.el=
f
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0 5120484 Nov 12 10:05 start_db.elf
-rw-r--r--=A0=A0=A0 1 root=A0 wheel=A0 4057956 Nov 12 10:05 start_x.elf

root@NewFS:/usr/local/share/rpi-firmware # pkg info |grep rpi
rpi-firmware-1.20181112=A0=A0=A0=A0=A0=A0=A0 Firmware for RaspberryPi Sin=
gle Board
Computer
u-boot-rpi2-2019.01=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Cross-build das u-bo=
ot for model rpi2
u-boot-rpi3-2019.01=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Cross-build das u-bo=
ot for model rpi3

--=20
Karl Denninger
karl@denninger.net <mailto:karl@denninger.net>
/The Market Ticker/
/[S/MIME encrypted email preferred]/

--------------ms000500040108010408050301
Content-Type: application/pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature

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
--------------ms000500040108010408050301--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c0b9cfbc-ea0f-f419-c763-e976f7214c8d>