Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Jan 2023 14:17:58 -0500
From:      Karl Denninger <karl@denninger.net>
To:        freebsd-arm@freebsd.org
Subject:   Re: GPIO inputs on Pis?
Message-ID:  <568943a8-c919-a72d-f3c1-f5dc05c77305@denninger.net>
In-Reply-To: <01070185e534f221-14f362b5-2b96-43f0-b0b0-f496ad9994fe-000000@eu-central-1.amazonses.com>
References:  <0b235f83-7cb3-1d14-7c64-aee7c1c0c23d@denninger.net> <01070185e46b1a6e-ee34b885-1215-45c7-ac18-83320c02cac2-000000@eu-central-1.amazonses.com> <a9b00748-1a11-3806-1103-ac2e6ad6bf43@denninger.net> <01070185e4732fd8-c0bede0b-d9df-4557-a174-cb237fa4bfaf-000000@eu-central-1.amazonses.com> <fec41ff8-b658-36c8-615d-e3ae63dd9b37@denninger.net> <01070185e534f221-14f362b5-2b96-43f0-b0b0-f496ad9994fe-000000@eu-central-1.amazonses.com>

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

--------------ms040303040201060107080104
Content-Type: multipart/alternative;
 boundary="------------xufv58awLsQCflyz0sXPDgOc"

--------------xufv58awLsQCflyz0sXPDgOc
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit


On 1/24/2023 2:15 PM, Dr. Rolf Jansen wrote:
>> Am 24.01.2023 um 13:58 schrieb Karl Denninger <karl@denninger.net>:
>>
>> On 1/24/2023 10:43, Dr. Rolf Jansen wrote:
>>> I sent an old ink to the thread on the mailing list, which does not 
>>> work anymore. Here ist the new link:
>>>
>>> https://lists.freebsd.org/pipermail/freebsd-arm/2020-November/022738.html
>>>
>>>> Am 24.01.2023 um 12:35 schrieb Karl Denninger <karl@denninger.net>:
>>>>
>>>> Thank you -- will check it out.
>>>>
>>>> On 1/24/2023 10:35, Dr. Rolf Jansen wrote:
>>>>>> Am 23.01.2023 um 11:41 schrieb Karl Denninger <karl@denninger.net>:
>>>>>>
>>>>>> Is there support somewhere in the 13.x for other than "read 
>>>>>> current state" / "set current state"?
>>>>>>
>>>>>> Specifically, there is evidence in the sys/gpio.h header file 
>>>>>> that I can open up a file descriptor and then use select()/read() 
>>>>>> to grab the contents of a ring buffer of some size (presumably 
>>>>>> interrupt-posted) of events since last look, and determine if 
>>>>>> there's anything in there. Provided you're reasonably fast this 
>>>>>> might be enough to, for example, read an optical encoder that has 
>>>>>> a modest pulse rate.
>>>>>>
>>>>>> I see apparent review code 
>>>>>> athttps://reviews.freebsd.org/D27398from late 2020, but nothing 
>>>>>> else I can find digging around; an example (assuming it is 
>>>>>> actually implemented and works) would be helpful
>>>>>>
>>>>> See
>>>>>
>>>>> https://forums.freebsd.org/threads/gpio-api-general-orange-pi-h3.83950/post-556728
>>>>>
>>>>> And the messages in that thread that follow the one linked above.
>>>>>
>>>>> There is a respective thread on this mailing list as well:
>>>>>
>>>>> Porting FreeBSD to ARM processors: User Space GPIO Interrupt 
>>>>> programming - GSoC-2018 
>>>>> <https://lists.freebsd.org/archives/freebsd-arm/2020-November/022740.html>;
>>>> --
>>>> Karl Denninger
>>>> karl@denninger.net
>>>> /The Market Ticker/
>>>> /[S/MIME encrypted email preferred]/
>>>
>> So the answer at this point appears to be "not in the codebase and no 
>> indication on when/if it might be, but there are patches that are in 
>> some state of development.“
>>
> No, at this point (13.1-RELEASE) everything is in the kernel, no 
> patches needed. Even the test tool made it into the source tree. It 
> has only be renamed from gpioc_intr_test.c to gpioevents.c.
>
> /usr/src/tools/test/gpioevents/gpioevents.c
>
> The documentation is missing. It is however easy to learn how things 
> work by examining the code of gpioevents.c.
>
>> Being able to read an encoder of some sort basically means being able 
>> to know how many events occurred between "looks"; for most purposes 
>> you don't need each event delivered exactly when it occurs, but 
>> missing some of the counts entirely is not acceptable.
>
> Yes, and for this reason, this GPIO event code which was developed 
> by Christian Krämer in the course of the GSoC-2018 and has been 
> submitted in 2020 by Ian Lepore to the freebsd tree is perfect.
>
> Ian tested it with a 10 MHz sqaure wave on an imx6 (ARMv7, 1GHz) and 
> got an event every 10 µs. That means the max. speed without event 
> losses would be 100 kHz. I did not do exact measurements, however, my 
> impression is that my RPi4B can do it a tad faster than my BeagleBone 
> Black. With the RPi4, I needed to improve the debouncing of the 
> encoder and the buttons, because it saw hundreds of bounces which the 
> BBB didn’t. However, it may also be, that the internal GPIO circuits 
> of the BBB have a different damping characteristic.
>
> Anyway for my applications, 100 kHz way faster than what I need.
>
> On my GitHub repository I placed another example on using the GPIO 
> events for the RPi:
>
> https://github.com/cyclaero/shutdd
>
> See also the respective thread on this mailing list:
>
> https://lists.freebsd.org/archives/freebsd-arm/2022-July/001576.html
Ok, I misunderstood.  Thank you; will look into it and give it a crack, 
this is good news.
-- 
-- Karl Denninger
/The Market-Ticker/
S/MIME Email accepted and preferred
--------------xufv58awLsQCflyz0sXPDgOc
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 1/24/2023 2:15 PM, Dr. Rolf Jansen
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:01070185e534f221-14f362b5-2b96-43f0-b0b0-f496ad9994fe-000000@eu-central-1.amazonses.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Verdana; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">
        <blockquote type="cite" class="">
          <div class="">Am 24.01.2023 um 13:58 schrieb Karl Denninger
            &lt;<a href="mailto:karl@denninger.net"
              class="moz-txt-link-freetext" moz-do-not-send="true">karl@denninger.net</a>&gt;:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <div class="">
              <div class="moz-cite-prefix">On 1/24/2023 10:43, Dr. Rolf
                Jansen wrote:<br class="">
              </div>
              <blockquote type="cite"
cite="mid:01070185e4732fd8-c0bede0b-d9df-4557-a174-cb237fa4bfaf-000000@eu-central-1.amazonses.com"
                class="">
                <div class="" style="word-wrap: break-word;
                  -webkit-nbsp-mode: space; line-break:
                  after-white-space;">I sent an old ink to the thread on
                  the mailing list, which does not work anymore. Here
                  ist the new link:
                  <div class=""><br class="">
                  </div>
                  <div class=""><a
href="https://lists.freebsd.org/pipermail/freebsd-arm/2020-November/022738.html"
                      class="moz-txt-link-freetext"
                      moz-do-not-send="true">https://lists.freebsd.org/pipermail/freebsd-arm/2020-November/022738.html</a></div>;
                  <div class=""><br class="">
                  </div>
                  <div class="">
                    <div class="">
                      <blockquote type="cite" class="">
                        <div class="">Am 24.01.2023 um 12:35 schrieb
                          Karl Denninger &lt;<a
                            href="mailto:karl@denninger.net"
                            class="moz-txt-link-freetext"
                            moz-do-not-send="true">karl@denninger.net</a>&gt;:</div>
                        <br class="Apple-interchange-newline">
                        <div class="">
                          <div class="">
                            <p class="">Thank you -- will check it out.<br
                                class="">
                            </p>
                            <div class="moz-cite-prefix">On 1/24/2023
                              10:35, Dr. Rolf Jansen wrote:<br class="">
                            </div>
                            <blockquote type="cite"
cite="mid:01070185e46b1a6e-ee34b885-1215-45c7-ac18-83320c02cac2-000000@eu-central-1.amazonses.com"
                              class="">
                              <div class="">
                                <blockquote type="cite" class="">
                                  <div class="">Am 23.01.2023 um 11:41
                                    schrieb Karl Denninger &lt;<a
                                      href="mailto:karl@denninger.net"
                                      class="moz-txt-link-freetext"
                                      moz-do-not-send="true">karl@denninger.net</a>&gt;:</div>
                                  <br class="Apple-interchange-newline">
                                  <div class="">
                                    <div class="">
                                      <p class="">Is there support
                                        somewhere in the 13.x for other
                                        than "read current state" / "set
                                        current state"?</p>
                                      <p class="">Specifically, there is
                                        evidence in the sys/gpio.h
                                        header file that I can open up a
                                        file descriptor and then use
                                        select()/read() to grab the
                                        contents of a ring buffer of
                                        some size (presumably
                                        interrupt-posted) of events
                                        since last look, and determine
                                        if there's anything in there. 
                                        Provided you're reasonably fast
                                        this might be enough to, for
                                        example, read an optical encoder
                                        that has a modest pulse rate.</p>
                                      <p class="">I see apparent review
                                        code at<span
                                          class="Apple-converted-space"> </span><a
                                          class="moz-txt-link-freetext"
href="https://reviews.freebsd.org/D27398" moz-do-not-send="true">https://reviews.freebsd.org/D27398</a><span
                                          class="Apple-converted-space"> </span>from
                                        late 2020, but nothing else I
                                        can find digging around; an
                                        example (assuming it is actually
                                        implemented and works) would be
                                        helpful</p>
                                    </div>
                                  </div>
                                </blockquote>
                              </div>
                              See
                              <div class=""><br class="">
                              </div>
                              <div class=""><a
href="https://forums.freebsd.org/threads/gpio-api-general-orange-pi-h3.83950/post-556728"
                                  class="moz-txt-link-freetext"
                                  moz-do-not-send="true">https://forums.freebsd.org/threads/gpio-api-general-orange-pi-h3.83950/post-556728</a></div>;
                              <div class=""><br class="">
                              </div>
                              <div class="">And the messages in that
                                thread that follow the one linked above.</div>
                              <div class=""><br class="">
                              </div>
                              <div class="">There is a respective thread
                                on this mailing list as well:</div>
                              <div class=""><br class="">
                              </div>
                              <div class=""><a
href="https://lists.freebsd.org/archives/freebsd-arm/2020-November/022740.html"
                                  class="" moz-do-not-send="true">Porting
                                  FreeBSD to ARM processors: User Space
                                  GPIO Interrupt programming - GSoC-2018</a></div>
                            </blockquote>
                            <div class="moz-signature">--<span
                                class="Apple-converted-space"> </span><br
                                class="">
                              Karl Denninger<br class="">
                              <a href="mailto:karl@denninger.net"
                                class="moz-txt-link-freetext"
                                moz-do-not-send="true">karl@denninger.net</a><br
                                class="">
                              <i class="">The Market Ticker</i><br
                                class="">
                              <font class="" size="-2"><i class="">[S/MIME
                                  encrypted email preferred]</i></font></div>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br class="">
                  </div>
                </div>
              </blockquote>
              <p class="">So the answer at this point appears to be "not
                in the codebase and no indication on when/if it might
                be, but there are patches that are in some state of
                development.“</p>
            </div>
          </div>
        </blockquote>
        No, at this point (13.1-RELEASE) everything is in the kernel, no
        patches needed. Even the test tool made it into the source tree.
        It has only be renamed from gpioc_intr_test.c to gpioevents.c.</div>
      <div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Verdana; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br
          class="">
      </div>
      <div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Verdana; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">/usr/src/tools/test/gpioevents/gpioevents.c</div>
      <div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Verdana; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br
          class="">
      </div>
      <div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Verdana; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class="">The
        documentation is missing. It is however easy to learn how things
        work by examining the code of gpioevents.c.</div>
      <div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
        font-family: Verdana; font-size: 12px; font-style: normal;
        font-variant-caps: normal; font-weight: normal; letter-spacing:
        normal; orphans: auto; text-align: start; text-indent: 0px;
        text-transform: none; white-space: normal; widows: auto;
        word-spacing: 0px; -webkit-text-size-adjust: auto;
        -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br
          class="">
        <blockquote type="cite" class="">
          <div class="">
            <div class="">
              <div class="">Being able to read an encoder of some sort
                basically means being able to know how many events
                occurred between "looks"; for most purposes you don't
                need each event delivered exactly when it occurs, but
                missing some of the counts entirely is not acceptable.</div>
            </div>
          </div>
        </blockquote>
        <div class=""><br class="">
        </div>
        <div class="">Yes, and for this reason, this GPIO event code
          which was developed by Christian Krämer in the course of the
          GSoC-2018 and has been submitted in 2020 by Ian Lepore to the
          freebsd tree is perfect.</div>
        <div class=""><br class="">
        </div>
        <div class="">Ian tested it with a 10 MHz sqaure wave on an imx6
          (ARMv7, 1GHz) and got an event every 10 µs. That means the
          max. speed without event losses would be 100 kHz. I did not do
          exact measurements, however, my impression is that my RPi4B
          can do it a tad faster than my BeagleBone Black. With the
          RPi4, I needed to improve the debouncing of the encoder and
          the buttons, because it saw hundreds of bounces which the BBB
          didn’t. However, it may also be, that the internal GPIO
          circuits of the BBB have a different damping characteristic.</div>
        <div class=""><br class="">
        </div>
        <div class="">Anyway for my applications, 100 kHz way faster
          than what I need.</div>
        <div class=""><br class="">
        </div>
        <div class="">On my GitHub repository I placed another example
          on using the GPIO events for the RPi:</div>
        <div class=""><br class="">
        </div>
        <div class=""><a href="https://github.com/cyclaero/shutdd"
            class="moz-txt-link-freetext" moz-do-not-send="true">https://github.com/cyclaero/shutdd</a></div>;
        <div class=""><br class="">
        </div>
        <div class="">See also the respective thread on this mailing
          list:</div>
        <div class=""><br class="">
        </div>
        <div class=""><a
href="https://lists.freebsd.org/archives/freebsd-arm/2022-July/001576.html"
            class="moz-txt-link-freetext" moz-do-not-send="true">https://lists.freebsd.org/archives/freebsd-arm/2022-July/001576.html</a></div>;
      </div>
    </blockquote>
    Ok, I misunderstood.  Thank you; will look into it and give it a
    crack, this is good news.<br>
    <div class="moz-signature">-- <br>
      --
      Karl Denninger<br>
      <i>The Market-Ticker</i><br>
      S/MIME Email accepted and preferred</div>
  </body>
</html>

--------------xufv58awLsQCflyz0sXPDgOc--

--------------ms040303040201060107080104
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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
AAAAAA==
--------------ms040303040201060107080104--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?568943a8-c919-a72d-f3c1-f5dc05c77305>