From owner-freebsd-arm@freebsd.org Tue Nov 24 22:35:16 2020 Return-Path: Delivered-To: freebsd-arm@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id D192446CBCD for ; Tue, 24 Nov 2020 22:35:16 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (gate2.funkthat.com [208.87.223.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gate2.funkthat.com", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Cgf3m0Kxfz3PxY for ; Tue, 24 Nov 2020 22:35:15 +0000 (UTC) (envelope-from jmg@gold.funkthat.com) Received: from gold.funkthat.com (localhost [127.0.0.1]) by gold.funkthat.com (8.15.2/8.15.2) with ESMTPS id 0AOMZ7ng092804 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 24 Nov 2020 14:35:07 -0800 (PST) (envelope-from jmg@gold.funkthat.com) Received: (from jmg@localhost) by gold.funkthat.com (8.15.2/8.15.2/Submit) id 0AOMZ7uW092803; Tue, 24 Nov 2020 14:35:07 -0800 (PST) (envelope-from jmg) Date: Tue, 24 Nov 2020 14:35:07 -0800 From: John-Mark Gurney To: Vladimir Cc: freebsd-arm@freebsd.org Subject: Re: User Space GPIO Interrupt programming - GSoC-2018 Message-ID: <20201124223506.GW31099@funkthat.com> Mail-Followup-To: Vladimir , freebsd-arm@freebsd.org References: <2B01780F-D367-48A3-A827-B479030A496D@obsigna.com> <2126F3C0-D877-4483-9041-9FC84B9C8D3E@obsigna.com> <4bdd8fe1-7b4c-6186-3ce3-f85c67c0b805@viruzzz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4bdd8fe1-7b4c-6186-3ce3-f85c67c0b805@viruzzz.org> X-Operating-System: FreeBSD 11.3-STABLE amd64 X-PGP-Fingerprint: D87A 235F FB71 1F3F 55B7 ED9B D5FF 5A51 C0AC 3D65 X-Files: The truth is out there X-URL: https://www.funkthat.com/ X-Resume: https://www.funkthat.com/~jmg/resume.html X-TipJar: bitcoin:13Qmb6AeTgQecazTWph4XasEsP7nGRbAPE X-to-the-FBI-CIA-and-NSA: HI! HOW YA DOIN? can i haz chizburger? User-Agent: Mutt/1.6.1 (2016-04-27) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (gold.funkthat.com [127.0.0.1]); Tue, 24 Nov 2020 14:35:07 -0800 (PST) X-Rspamd-Queue-Id: 4Cgf3m0Kxfz3PxY X-Spamd-Bar: / Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of jmg@gold.funkthat.com has no SPF policy when checking 208.87.223.18) smtp.mailfrom=jmg@gold.funkthat.com X-Spamd-Result: default: False [0.20 / 15.00]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; FREEFALL_USER(0.00)[jmg]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; MID_RHS_MATCH_FROM(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[funkthat.com]; RBL_DBL_DONT_QUERY_IPS(0.00)[208.87.223.18:from]; AUTH_NA(1.00)[]; NEURAL_SPAM_SHORT(1.00)[1.000]; SPAMHAUS_ZRD(0.00)[208.87.223.18:from:127.0.2.255]; TO_MATCH_ENVRCPT_SOME(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; RCPT_COUNT_TWO(0.00)[2]; R_SPF_NA(0.00)[no SPF record]; FORGED_SENDER(0.30)[jmg@funkthat.com,jmg@gold.funkthat.com]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; ASN(0.00)[asn:32354, ipnet:208.87.216.0/21, country:US]; FROM_NEQ_ENVFROM(0.00)[jmg@funkthat.com,jmg@gold.funkthat.com]; MAILMAN_DEST(0.00)[freebsd-arm] X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Nov 2020 22:35:16 -0000 Vladimir wrote this message on Wed, Nov 25, 2020 at 00:04 +0300: > Are you going to poll encoders same way? I need interface encoders too. > BBB has dedicated eQEP hardware, but it seems to be difficult to run > eQEP under freebsd. So I thinking about PRU for handling encoders. Seems like an encoder kernel driver would be useful... Expecting a userland program to catch all the changes would be a bit tricky... > 2020-11-24 23:45, Dr. Rolf Jansen ??????????: > >> Am 24.11.2020 um 17:32 schrieb Ian Lepore : > >> > >> On Tue, 2020-11-24 at 17:14 -0300, Dr. Rolf Jansen wrote: > >>> Hello > >>> > >>> Has anything of the GSoC-2018 efforts made it into the current code > >>> base? > >>> > >>> > >> https://wiki.freebsd.org/SummerOfCode2018Projects/UserSpaceGPIOinterrupts > >>> > >>> I installed the recent 13.0-CURRENT snapshot (2020-11-19) on a > >>> BeagleBone Black which was one of the implementation targets of said > >>> project, but when running the test tools, I either see cannot > >>> read/kevent/poll/aio_read - Operation not supported by device or > >>> Inappropriate ioctl for device. > >>> > >>> Perhaps I need to pull the project???s changes into the kernel by > >>> myself. However, before this I would like to ask whether it is worth > >>> the effort. > >>> > >>> Please, can anyone shed some light on this. > >>> > >>> Best regards > >>> > >>> Rolf > >>> > >> > >> I have had that webpage open (but docked) for literally a year, > >> eternally hoping that I can find time to get to it and somehow get it > >> committed, or maybe use it as the basis for something to be committed > >> (I haven't even looked at it close enough to see if it's commit-quality > >> code or what). > >> > >> I'm curious: What particular need do you have for userspace gpio > >> interrupts? What would you like the API to look like (do you like the > >> things listed at that page, or would you prefer something else)? > >> > >> Interrupts is probably not a good name, because it isn't really going > >> to act like an interrupt does for kernel code. It's really just pin- > >> change notifications delivered to userland. > > > > I was asked to jump into a project where push buttons and pulses from a rotary encoder (all connected to GPIO's) would invoke some programmed actions. Polling the GPIO's would be too faulty. To me "pin-change notifications delivered to userland" sounds not too bad for my purpose. However, I won't say no for a real threaded GPIO interrupt handler facility, which presumably would serve perfectly as well. -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not."