From owner-freebsd-arm@freebsd.org Mon Mar 25 15:08:22 2019 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EBF40156457F for ; Mon, 25 Mar 2019 15:08:21 +0000 (UTC) (envelope-from iz-rpi03@hs-karlsruhe.de) Received: from smtp.hs-karlsruhe.de (smtp.HS-Karlsruhe.DE [193.196.64.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id F3A7B704C9; Mon, 25 Mar 2019 15:08:20 +0000 (UTC) (envelope-from iz-rpi03@hs-karlsruhe.de) Received: from iz-wera01.hs-karlsruhe.de ([193.196.65.46]) by smtp.hs-karlsruhe.de with esmtp (Exim 4.80.1) (envelope-from ) id 1h8RD1-009S7U-5e; Mon, 25 Mar 2019 16:08:19 +0100 X-Mailer: exmh version 2.8.0 04/21/2012 with nmh-1.6 From: Ralf Wenk To: Ian Lepore cc: freebsd-arm@freebsd.org Subject: Re: Options for FBSD support with LCD device - new project [[Maybe related: I2c issues on the Pi2]] In-reply-to: <52df098fdc0caf5de1879c93239534fffbd49b56.camel@freebsd.org> References: <8df902f6-20a3-31c4-71ac-91f5d5fdf50d@optiplex-networks.com> <0ecf23e129ca7ac6a92a01bbb34c03f1ac8c6dc8.camel@freebsd.org> <89f5b8d1ab0614ac8d88b5d5f1afc63e640c3c17.camel@freebsd.org> <4EB5C6C1-7DB9-4DEE-BB23-CD1259581271@jeditekunum.com> <004ddba628b94b80845d8e509ddcb648d21fd6c9.camel@freebsd.org> <20190319161423.GH57400@cicely7.cicely.de> <52df098fdc0caf5de1879c93239534fffbd49b56.camel@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 25 Mar 2019 16:08:19 +0100 Message-Id: X-Rspamd-Queue-Id: F3A7B704C9 X-Spamd-Bar: ++++ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [4.70 / 15.00]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MV_CASE(0.50)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; DMARC_NA(0.00)[hs-karlsruhe.de]; AUTH_NA(1.00)[]; NEURAL_SPAM_MEDIUM(0.99)[0.994,0]; IP_SCORE(0.33)[asn: 553(1.66), country: EU(-0.00)]; NEURAL_SPAM_SHORT(0.99)[0.991,0]; MX_GOOD(-0.01)[smtp.hs-karlsruhe.de]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[25.64.196.193.list.dnswl.org : 127.0.10.0]; NEURAL_SPAM_LONG(0.99)[0.993,0]; R_SPF_NA(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; ASN(0.00)[asn:553, ipnet:193.196.64.0/18, country:EU]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Mar 2019 15:08:22 -0000 On 2019-03-24 at 17:55 -0600 Ian Lepore wrote: > On Tue, 2019-03-19 at 17:14 +0100, Bernd Walter wrote: > > On Tue, Mar 19, 2019 at 09:55:12AM -0500, Karl Denninger wrote: > > > On 3/19/2019 09:26, Jedi Tek'Unum wrote: > > > > On Mar 18, 2019, at 2:57 PM, Ian Lepore wrote: > > > > > On Mon, 2019-03-18 at 14:51 -0500, Jedi Tek'Unum wrote: > > > > > > My impression wasn???t that support wasn???t there - but > > > > > > ???out of the box??? > > > > > > configuration wasn???t there. In comparison, I didn???t have > > > > > > to do > > > > > > anything to get I2C enabled in the binary distribution of > > > > > > Linux that > > > > > > comes through the manufacturer. > > > > > > > > > > > > Its the enabling part that isn???t obvious to most people > > > > > > IMO. > > > > > > > > > > > > Documentation/wiki is great. But even better would be all the > > > > > > enabling overlays already in place and the entries in > > > > > > loader.conf > > > > > > already there and commented out. It would be so much easier > > > > > > to go to > > > > > > a ???common place??? (loader.conf), skim through the notes, > > > > > > find the > > > > > > thing that one wants, and then just uncomment the referenced > > > > > > line! > > > > > > (Or any other similarly easy method.) > > > > > > > > > > > > > > > > > > For FBSD to get a better foothold in this space it needs to > > > > > > be better > > > > > > documented. For example, the wiki for NEO2 < > > > > > > http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO2>; is a > > > > > > step-by- > > > > > > step guide for how to acquire and configure Linux for it. > > > > > > > > > > > > > > > > > > > > > > On one of my imx6 boards I have 5 SPI devices. Each device can > > > > > use 3 > > > > > or 4 different sets of pins for clock, data-in, and data- > > > > > out. Plus, > > > > > each can use literally any number of whatever gpio pins they > > > > > want as > > > > > chip selects. Even limiting the chipsels to a handfull, there > > > > > would > > > > > literally be thousands of possible combinations of devices and > > > > > pin > > > > > configurations, each one needing to be a separate overlay. > > > > > > > > > > Maybe you have experience primarily with rpi or some similarly > > > > > crippled > > > > > devices that only offer one or two choices? > > > > > > > > If memory serves correctly, there are only 2 I2C devices on the > > > > H3/H5 and the NanoPi NEO/2 implementations only externalize 1. > > > > There is only 1 SPI AFAIK. > > > > > > > > I wouldn???t call that crippled. I chose this platform exactly > > > > because of its characteristics - small, fast, cheap. It fits the > > > > project I???m using it for perfectly. In fact, I can see uses for > > > > even smaller (see Giant Board > > > >). I understand other projects may have different requirements > > > > and would drive one towards different solutions - and require > > > > more of the various interfaces. But they aren???t going to be > > > > typical of hobbyist projects. > > > > > > > > Maybe I should pose the question in another way. What is the > > > > philosophy for choosing GPIO as default for all the pins? These > > > > boards have a very limited number of pins and my preference would > > > > be that the broadest range of interface types would be the > > > > default. There are 2 UARTs exposed so I would have picked 1 to be > > > > enabled by default. After that, with I2C and SPI enabled, there > > > > are still 6 GPIO available. For a tiny board like this that seems > > > > to be reasonable. If people have a need for slightly more GPIO > > > > then I would expect they would be the ones configuring overlays. > > > > > > > > Apparently the developers of the Linux packages for these boards > > > > have chosen the diverse approach (???FriendlyCore??? based on > > > > UbuntuCore Xenial). > > > > > > > > IMHO, most ???hobbyists??? would prefer the diversity approach. > > > > I???m completely capable of becoming an expert in FBSD and this > > > > sort of configuration stuff yet it isn???t a priority for me - I > > > > just want to use it like any other hobbyist. The way things are > > > > now pushes this type of user away from FBSD. > > > > > > > > If there is some philosophical perspective against the diversity > > > > approach then the next best thing is to have documentation that > > > > clearly and simply tells people how to enable the other > > > > functionality. > > > > > > > > Finally, I think there is an opportunity to grow FBSD in the > > > > hobbyist world of these small products. We are past the point > > > > where people can have a real operating system running on systems > > > > at Arduino size and cost. Linux has been aggressively deployed > > > > there but I can say from experience that it ain???t pretty - I > > > > won???t say more as everyone reading this has a clear > > > > understanding of why that is. > > > > > > I'm currently working an issue similar to this, but one that rates > > > "highly annoying" right now rather than "catastrophically bad." > > > > > > The environment is a RPI2 which has GPIO and I2c configured; GPIO > > > to > > > drive outputs, I2c is used to read analog channels. > > > > > > On 11.0 this code ran perfectly well. > > > > > > On 12-STABLE )FreeBSD 12.0-STABLE r344818 GENERIC) > > > it also runs well *BUT* generates a huge number of console > > > messages > > > about spurious interrupts: > > > > > > intc0: Spurious interrupt detected > > > local_intc0: Spurious interrupt detected > > > intc0: Spurious interrupt detected > > > intc0: Spurious interrupt detected > > > local_intc0: Spurious interrupt detected > > > local_intc0: Spurious interrupt detected > > > > > > .... > > > > > > The issue is coming from the i2c side as I have another one of > > > these > > > that has no I2c defined in the configuration (but is running > > > identical > > > code) and no messages. > > > > Interesting. > > A local Pi1 running 12-RELEASE has the same messages: > > intc0: Spurious interrupt detected > > intc0: Spurious interrupt detected > > intc0: Spurious interrupt detected > > intc0: Spurious interrupt detected > > intc0: Spurious interrupt detected > > intc0: Spurious interrupt detected > > intc0: Spurious interrupt detected > > I have an I2C RTC on this machine. > > > > Hmmm, I can't reproduce this. I've got an rpi-b rev2 and I tried 13- > current and the official 12.0-RELEASE image and I have no problems with > interrupts while using an i2c RTC. I also connected an at24c512 eeprom > and did a bunch of reading and writing to it. No spurious interrupts, > and vmstat -i showed a completely reasonable number: > > intc0,61: iichb0 5652 23 > > I don't know what to try next. I see those messages on an RPi B+, an RPi 3 B and RPi 3 B+. All running a GENERIC-NONDEBUG CURRENT up to four weeks old. Those RPi's are directly connected to different monitors via HDMI. There are no (additional?) i2c devices connected. I have got the impression that changing the monitors input to DVI and back triggers the "intc0: Spurious interrupt detected" message here. Some data from today from the RPi 3 B+: $ grep Spuri /var/log/messages Mar 29 09:27:38 IZ-193 kernel: local_intc0: Spurious interrupt detected Mar 29 09:27:38 IZ-193 kernel: intc0: Spurious interrupt detected Mar 29 09:40:36 IZ-193 kernel: intc0: Spurious interrupt detected Mar 29 10:56:29 IZ-193 kernel: intc0: Spurious interrupt detected Mar 29 10:56:29 IZ-193 kernel: local_intc0: Spurious interrupt detected Mar 29 14:50:20 IZ-193 kernel: intc0: Spurious interrupt detected Mar 29 14:50:20 IZ-193 kernel: local_intc0: Spurious interrupt detected Mar 29 14:50:20 IZ-193 kernel: intc0: Spurious interrupt detected $ vmstat -i | grep ichb intc0,61: iichb0 131 0 $ Hmm, changing the monitors input several times while writing this mail causes the message almost every time while this RPi is building a new kernel with make -j4. An remote PRi 2 with 14 days uptime and no monitor input switching did not log any "Spurious interrupt detected" message. It is the same on an RPi 3 B with 24 days uptime and no monitor at all. Ralf