Thank you for preparing the cleanups and verifying PR #21366 on physical
hardware
I have opened the documentation cleanup PR on GitHub on your behalf:
https://github.com/apache/nuttx/pull/21413

checks are running..

On Tue, 3 Nov 2026 at 18:08, <[email protected]> wrote:

> Hello - I tested PR 21366 and I can confirm that the ws2812 example
> application works correctly with the diff applied and byte order
> transformation active. Also tested with/without the bounds check and
> confirmed that the check does prevent buffer overrun and memory
> corruption.
>
> As for the PR itself - I think the fix in ws2812_read can be shortened
> to just calling ws2812_byte_order_transform_rgb with res >> 2 instead of
> len >> 2 and that the call to ws2812_byte_order_len isn't needed here.
> The reason is that the lower half read handler will reduce len in the
> same manner as ws2812_byte_order_len does it and res will therefore be
> bound to len.
>
> (Calling ws2812_byte_order_len does not break anything here but it looks
> like a bug because it is skipped in some configurations/code paths. It
> can also make someone think that the upper half is supposed to take care
> of bounding the len parameter which is currently not the case, lower
> halves are doing it.)
>
> On 2026-11-02 20:24, [email protected] wrote:
> > First of all - big thanks to you and to everyone involved in helping
> > getting all of this merged and for all the fixes. And once again, sorry
> > for the mixup with the dev branch.
> >
> > I compared the code that was supposed to be merged with the code that
> > is currently in the mainline and it looks like there is only a minor
> > difference, two function description templates left from the header
> > file template in the coding style document. I prepared one more patch
> > series that removes those templates and also removes description of the
> > configuration option that was not added to WS2812 upper half Kconfig.
> > The branch is named "doc_cleanups"
> >
> > As for the PR 21366, I can test it on hardware tomorrow, will also
> > check if the merged code was the final version.
> >
> > Other than that, I have a patch ready which makes use of the byte order
> > transformation and can post it. It adds parameter to
> > avrdx_ws2812_register which in turn populates the new fields in struct
> > ws2812_dev_s. I don't like this approach very much but I found no
> > elegant way to call the upper half from board code directly (which
> > would allow board code to enable the feature without the need to alter
> > every lower half.)
> >
> > This is for the documentation cleanup:
> >
> > ============================
> >
> > Documentation: cleanups related to WS2812 RGB LED
> >
> > ## Summary
> >
> > This patch series removes function description templates from AVR DA/DB
> > header file related to WS2812 lower half driver. It also removes
> > description of a WS2812 upper half driver configuration option which
> > was removed during the review process.
> >
> > There is no functional change, the patch of the header file only
> > removes comments.
> >
> > ## Impact
> >
> > **Impact on documentation** - needless code comments removed,
> > description of a nonexistent configuration option removed
> >
> > Otherwise, no new feature added, no impact on users, build, hardware,
> > security nor compatibility.
> >
> > ## Testing
> >
> >   I confirm that changes are verified on local setup and works as
> > intended:
> >   * Build Host(s): Linux, AMD, GCC avr-gcc 14.2
> >   * Target(s): AVR DA/DB, tested on breadxavr:ws2812
> >
> > Compiled binary has identical sha256 before and after the change.
> >
> > ## PR verification Self-Check
> >
> >   * [x] This PR introduces only one functional change.
> >   * [x] I have updated all required description fields above.
> >   * [x] My PR adheres to Contributing
> > [Guidelines](https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md)
>
> > and
> > [Documentation](
> https://nuttx.apache.org/docs/latest/contributing/index.html)
> > (git commit title and message, coding standard, etc).
> >   * [ ] My PR is still work in progress (not ready for review).
> >   * [x] My PR is ready for review and can be safely merged into a
> > codebase.
> >
> > ============================
> >
> > On 2026-11-02 10:30, Swatantra wrote:
> >> Hi Kerogit,
> >>
> >> The PR (#21338) was already merged into master after all CI checks
> >> passed.
> >>
> >> Casaroli did a thorough pass and caught the remaining items (the
> >> upper-half
> >> buffer clamping and swint error return handling). Since it was already
> >> merged, Marco kindly volunteered to handle the follow-up fixes in a
> >> separate PR himself.
> >> It was a pleasure shepherding your work.
> >>
> >> Best regards,
> >> Swatantra Yadav
> >>
> >> On Mon, 2 Nov 2026 at 04:34, <[email protected]> wrote:
> >>
> >>> Hi, sorry, very sorry, I messed up. I did all those checks I wrote
> >>> about
> >>> in the previous message but then forgot to mention that the branch to
> >>> pull for this last part is named avrdx_ws2812. The _v2 branch has
> >>> commits I wanted to ask about at some point later and is not ready to
> >>> be
> >>> merged (and contains more errors than those you fixed.)
> >>>
> >>> Again, sorry for the additional work - and thanks for the adjustments
> >>> in
> >>> points 2-3
> >>>
> >>> On 2026-11-01 23:30, Swatantra wrote:
> >>> > Hi Kerogit,
> >>> >
> >>> > I have rebased the series onto current master and opened the Pull
> >>> > Request
> >>> > on GitHub:
> >>> > https://github.com/apache/nuttx/pull/21338
> >>> > (Title: AVR: WS2812 RGB LED driver)
> >>> >
> >>> > All 9 commits have been submitted with your full author attribution
> >>> > (Kerogit <[email protected]>) and DCO Signed-off-by preserved.
> >>> >
> >>> > To ensure the patches passed all automated CI checks cleanly on
> GitHub,
> >>> > a
> >>> > few minor adjustments were made:
> >>> >
> >>> > 1. EXTERN in avrdx_ws2812.h:
> >>> > There were leftover #define EXTERN and #undef EXTERN lines in
> >>> > arch/avr/src/avrdx/avrdx_ws2812.h. Running nxstyle flagged these, so
> I
> >>> > removed them to match the clean approach we used in Step 3's
> >>> > avrdx_swint.h.
> >>> >
> >>> > 2. Kconfig choice vs Conditional select for WS2812_NON_SPI_DRIVER:
> >>> > In drivers/leds/Kconfig, changing WS2812_NON_SPI_DRIVER into a choice
> >>> > symbol caused olddefconfig to fail in CI builds (such as bluetooth
> and
> >>> > rp2xxx). In Kconfig syntax, symbols inside a choice block cannot be
> >>> > selected by external symbols, but arch/arm/src/rp2040 and rp23xx both
> >>> > have
> >>> > "select WS2812_NON_SPI_DRIVER".
> >>> >
> >>> > To preserve your exact goal (not forcing SPI when non-SPI is used,
> >>> > while
> >>> > keeping SPI enabled by default for legacy boards), I updated the
> >>> > top-level
> >>> > option to use standard conditional selection:
> >>> >
> >>> > config WS2812
> >>> >     bool "WS2812 LED Driver"
> >>> >     default n
> >>> >     select SPI if !WS2812_NON_SPI_DRIVER
> >>> >
> >>> > This keeps WS2812_NON_SPI_DRIVER as a regular boolean config,
> >>> > completely
> >>> > satisfying backwards compatibility while avoiding build failures on
> >>> > other
> >>> > architectures.
> >>> >
> >>> > 3. Spelling & Assembly Opcode Whitelisting:
> >>> > - Fixed a minor typo (endianess -> endianness) in
> drivers/leds/ws2812.c
> >>> > flagged by codespell.
> >>> > - Whitelisted lowercase "rcall" in .codespellrc so codespell does not
> >>> > mistake the AVR assembly instruction in avrdx_ws2812_uart_store.S for
> >>> > "recall".
> >>> >
> >>> > 4. CMake Parity:
> >>> > Added [skip-cmake-parity] to Commit 6 to satisfy the NuttX checkpatch
> >>> > check
> >>> > for AVR's GNU Make build system.
> >>> >
> >>> > The PR is now live in CI and assigned to maintainers. I will monitor
> >>> > review
> >>> > discussions and relay any feedback here if needed.
> >>> > Thank You
> >>> >
> >>> > Best regards,
> >>> > Swatantra Yadav
> >>> >
> >>> > On Sun, 1 Nov 2026 at 21:12, <[email protected]> wrote:
> >>> >
> >>> >> Hi, thanks for posting it and also thanks for removing the EXTERN
> >>> >> definition, it was not pointed out by checkpatch when I tested the
> >>> >> patches. The next part is submitted with EXTERN removed as well.
> >>> >> Checked
> >>> >> spelling once more, documentation builds correctly so hopefully you
> >>> >> won't have much trouble with this one.
> >>> >>
> >>> >> Some of the changes in this series are partly intended as
> suggestions
> >>> >> for discussion. I will watch the PR and if people make some comments
> >>> >> and/or request changes, I will respond here.
> >>> >>
> >>> >> ============================
> >>> >>
> >>> >> AVR: WS2812 RGB LED driver
> >>> >>
> >>> >> ## Summary
> >>> >>
> >>> >> This patch series adds platform-specific driver for WS2812 RGB LED
> to
> >>> >> AVR DA/DB architecture. RGB data is transmitted using USART
> peripheral
> >>> >> but the driver is designed to allow other peripherals to be
> supported
> >>> >> if
> >>> >> needed. In addition, there are some fixes for issues discovered when
> >>> >> working with existing code - USART control in architecture code and
> >>> >> some
> >>> >> cleanups in the WS2812 driver upper half.
> >>> >>
> >>> >> Breadxavr board is updated to provide example configuration that
> >>> >> compiles ws2812 program from nuttx-apps to showcase the LEDs.
> >>> >>
> >>> >> ## Impact
> >>> >>
> >>> >> **New feature**: driver for WS2812 RGB LED for AVR DA/DB family and
> >>> >> example configuration for breadxavr board
> >>> >>
> >>> >> **Impact on user**: none, new code is not enabled by default. Other
> >>> >> AVR
> >>> >> families are not supported and not affected, same for other
> >>> >> architectures
> >>> >>
> >>> >> **Impact on build**: new Kconfig options related to the new feature.
> >>> >>
> >>> >> Also, configuration of WS2812 upper half is altered slightly. The
> >>> >> upper
> >>> >> half driver initially only supported SPI peripheral and was later
> >>> >> extended to interact with architecture lower half instead (in which
> >>> >> case
> >>> >> the upper half is no longer tied to any specific hardware.) Even if
> >>> >> the
> >>> >> new style is used and SPI is not needed, the driver enforces "select
> >>> >> SPI".
> >>> >>
> >>> >> The patch series adds a choice between the old and the new style and
> >>> >> only the old style selects SPI now. Existing WS2812_NON_SPI_DRIVER
> >>> >> configuration option is changed from boolean (default false) to a
> >>> >> choice
> >>> >> option (default not chosen.) This should be fully backwards
> compatible
> >>> >> with existing configurations. Default configuration selects the old
> >>> >> style driver and existing board configurations with
> >>> >> CONFIG_WS2812_NON_SPI_DRIVER=y continue to work without changes.
> >>> >>
> >>> >> **Impact on documentation**: added documentation for the driver and
> >>> >> description of the new configuration to breadxavr board. Description
> >>> >> of
> >>> >> ws2812_register upper half function in the code is altered to match
> >>> >> current parameters of that function. This forced a formatting
> cleanup
> >>> >> to
> >>> >> fix an issue reported by checkpatch before any changes were made.
> >>> >>
> >>> >> No impact on hardware, security or compatibility
> >>> >>
> >>> >> ## Testing
> >>> >>
> >>> >>    I confirm that changes are verified on local setup and works as
> >>> >> intended:
> >>> >>    * Build Host(s): Linux, AMD, GCC avr-gcc 14.2
> >>> >>    * Target(s): AVR DA/DB, tested on breadxavr
> >>> >>
> >>> >> Tested with ws2812 example application from nuttx-apps. When
> executed
> >>> >> from NSH, the LEDs light up in green color and then repeatedly cycle
> >>> >> colors to yellow, red, magenta, blue, cyan and back to green. This
> >>> >> sequence of colors is not expected, first color is supposed to be
> red.
> >>> >> After an examination, it was found out that the LEDs used for
> testing
> >>> >> do
> >>> >> not behave as documented and interpret the first received byte as
> red
> >>> >> (instead of green as described by the documentation.) This was
> >>> >> confirmed
> >>> >> by a simple non-RTOS firmware that drives output pin directly with
> >>> >> timing achieved by nop instructions. The driver should therefore
> work
> >>> >> with LEDs that behave according to the documentation.
> >>> >>
> >>> >> Documentation checked by make html
> >>> >>
> >>> >> ## PR verification Self-Check
> >>> >>
> >>> >>    * [x] This PR introduces only one functional change.
> >>> >>    * [x] I have updated all required description fields above.
> >>> >>    * [x] My PR adheres to Contributing
> >>> >> [Guidelines](
> >>> https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md)
> >>> >> and
> >>> >> [Documentation](
> >>> >> https://nuttx.apache.org/docs/latest/contributing/index.html)
> >>> >> (git commit title and message, coding standard, etc).
> >>> >>    * [ ] My PR is still work in progress (not ready for review).
> >>> >>    * [x] My PR is ready for review and can be safely merged into a
> >>> >> codebase.
> >>> >>
> >>> >> ============================
> >>> >>
> >>> >> On 2026-10-29 15:46, Swatantra wrote:
> >>> >> > Hello Kerogit,
> >>> >> > I have rebased the AVR DA/DB software interrupt emulation patch
> series
> >>> >> > (`avrdx_swint`) onto latest master and submitted the Pull Request
> on
> >>> >> > your
> >>> >> > behalf:
> >>> >> > https://github.com/apache/nuttx/pull/21129
> >>> >> >
> >>> >> > All commit authorship, DCO sign-offs, and checkpatch requirements
> have
> >>> >> > been
> >>> >> > verified.
> >>> >> >
> >>> >> > Best regards,
> >>> >> > Swatantra
> >>> >> >
> >>> >> > On Wed, 28 Oct 2026 at 05:11, <[email protected]> wrote:
> >>> >> >
> >>> >> >> Hello,
> >>> >> >>
> >>> >> >> I noticed that the previous phase got merged - thanks to everyone
> >>> >> >> involved. Step 3 is support for software interrupt emulation,
> branch
> >>> >> >> name is avrdx_swint. Documentation builds without conflicts and
> >>> >> >> checkpatch reports all checks pass for every changed source code
> >>> file.
> >>> >> >>
> >>> >> >> ============================
> >>> >> >>
> >>> >> >> AVR: software interrupt emulation
> >>> >> >>
> >>> >> >> ## Summary
> >>> >> >>
> >>> >> >> This patch adds emulated software interrupt functionality to AVR
> >>> DA/DB
> >>> >> >> architecture. The chip itself does not have any software
> interrupt
> >>> and
> >>> >> >> the suggested way to implement one is to manipulate an I/O pin
> >>> >> >> configured to trigger a hardware interrupt. The implementation
> can
> >>> >> >> serve
> >>> >> >> multiple users at the same time and also supports sharing the
> >>> hardware
> >>> >> >> interrupt of the I/O port with other users.
> >>> >> >>
> >>> >> >> There is no in-tree user of this functionality yet, intended use
> is a
> >>> >> >> follow-up patch series that adds driver for WS2812 programmable
> LED.
> >>> >> >>
> >>> >> >> ## Impact
> >>> >> >>
> >>> >> >> **New feature**: software interrupt emulation for AVR DA/DB
> family
> >>> >> >>
> >>> >> >> **Impact on user**: none, new code is not enabled by default.
> Other
> >>> >> >> AVR
> >>> >> >> families are not supported and not affected.
> >>> >> >>
> >>> >> >> **Impact on build**: new Kconfig options related to the new
> feature,
> >>> >> >> none otherwise
> >>> >> >>
> >>> >> >> **Impact on documentation**: zero latency interrupts guide
> updated
> >>> >> >> (mentions software interrupt emulation as a way to "get back
> into the
> >>> >> >> game")
> >>> >> >>
> >>> >> >> No impact on hardware, security or compatibility
> >>> >> >>
> >>> >> >> ## Testing
> >>> >> >>
> >>> >> >>    I confirm that changes are verified on local setup and works
> as
> >>> >> >> intended:
> >>> >> >>    * Build Host(s): Linux, AMD, GCC avr-gcc 14.2
> >>> >> >>    * Target(s): AVR DA/DB, tested on breadxavr
> >>> >> >>
> >>> >> >> Tested with the (not yet merged) WS2812 driver which uses this
> >>> >> >> functionality to notify the OS that the data transmission
> performed
> >>> by
> >>> >> >> the zero latency interrupt handler is finished.
> >>> >> >>
> >>> >> >> Other than that - Documentation tested by make html, changed
> source
> >>> >> >> code
> >>> >> >> files tested with checkpatch.sh
> >>> >> >>
> >>> >> >> ## PR verification Self-Check
> >>> >> >>
> >>> >> >>    * [x] This PR introduces only one functional change.
> >>> >> >>    * [x] I have updated all required description fields above.
> >>> >> >>    * [x] My PR adheres to Contributing
> >>> >> >> [Guidelines](
> >>> >> https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md)
> >>> >> >> and
> >>> >> >> [Documentation](
> >>> >> >> https://nuttx.apache.org/docs/latest/contributing/index.html)
> >>> >> >> (git commit title and message, coding standard, etc).
> >>> >> >>    * [ ] My PR is still work in progress (not ready for review).
> >>> >> >>    * [x] My PR is ready for review and can be safely merged into
> a
> >>> >> >> codebase.
> >>> >> >>
> >>> >> >> ============================
> >>> >> >>
> >>> >> >>
> >>> >> >> On 2026-10-16 18:20, Swatantra wrote:
> >>> >> >> > Hi, No worries at all. Aspell definitely generates a lot of
> false
> >>> >> >> > positives
> >>> >> >> > with embedded hardware terminology, and Sphinx's
> autosectionlabel
> >>> >> >> > extension
> >>> >> >> > is notorious for flagging duplicate headings across sections.
> >>> >> >> >
> >>> >> >> > That's the beauty of pair-shepherding—catching those CI quirks
> >>> >> together
> >>> >> >> > makes the upstream submission smooth.
> >>> >> >> >
> >>> >> >> > The force-pushed commit is now building cleanly in GitHub
> Actions
> >>> CI.
> >>> >> I
> >>> >> >> > will keep an eye on the review progress with Alin and the
> >>> maintainers
> >>> >> >> > and
> >>> >> >> > keep you posted here.
> >>> >> >> >
> >>> >> >> > Best regards,
> >>> >> >> > Swatantra Yadav
> >>> >> >> >
> >>> >> >> > On Fri, 16 Oct 2026 at 21:39, <[email protected]> wrote:
> >>> >> >> >
> >>> >> >> >> Hi, thanks for posting the patches and for the fixes. I am
> >>> >> >> >> spellchecking
> >>> >> >> >> the commits as well but there is lot of noise (aspell doesn't
> like
> >>> >> the
> >>> >> >> >> word datasheet, let alone AVR) so it's unfortunately easy to
> miss
> >>> >> >> >> something. And sorry about the duplicate label, I tested that
> >>> >> document
> >>> >> >> >> with make html and found and fixed 2 of those warnings but it
> did
> >>> not
> >>> >> >> >> occur to me that this label needs to be fixed in earlier patch
> >>> than
> >>> >> >> >> where I did it.
> >>> >> >> >>
> >>> >> >> >> On 2026-10-16 17:00, Swatantra wrote:
> >>> >> >> >> > Hi Kerogit,
> >>> >> >> >> >
> >>> >> >> >> > I have submitted your Phase 2 series (Zero Latency Interrupt
> >>> >> Handlers)
> >>> >> >> >> > as a
> >>> >> >> >> > pull request on GitHub:
> >>> >> >> >> >
> >>> >> >> >> > PR: https://github.com/apache/nuttx/pull/20706
> >>> >> >> >> >
> >>> >> >> >> > Details of the submission:
> >>> >> >> >> > - Rebased cleanly on top of the latest apache/nuttx master
> >>> (which
> >>> >> >> >> > includes
> >>> >> >> >> > merged PR #20677).
> >>> >> >> >> > - Fixed a minor documentation typo ("overriden" ->
> >>> "overridden") in
> >>> >> >> >> > zerolatencyinterrupts.rst so that GitHub Actions CI checks
> >>> >> (codespell)
> >>> >> >> >> > pass
> >>> >> >> >> > cleanly.
> >>> >> >> >> > - Preserved your original author attribution and DCO
> sign-off
> >>> >> >> >> > exclusively
> >>> >> >> >> > across all 4 commits.
> >>> >> >> >> > - Validated with checkpatch.sh and cvt2utf (0 errors, 0
> >>> warnings).
> >>> >> >> >> >
> >>> >> >> >> >
> >>> >> >> >> > Best regards,
> >>> >> >> >> > Swatantra Yadav
> >>> >> >> >> >
> >>> >> >> >> > On Fri, 16 Oct 2026 at 18:08, <[email protected]> wrote:
> >>> >> >> >> >
> >>> >> >> >> >> Hello, thanks, I see it merged, next step is zero latency
> >>> >> interrupt
> >>> >> >> >> >> handling in branch named avrdx_zerolatency_intr. It rebased
> >>> >> cleanly
> >>> >> >> on
> >>> >> >> >> >> current master branch. PR description is:
> >>> >> >> >> >>
> >>> >> >> >> >> ============================
> >>> >> >> >> >>
> >>> >> >> >> >> AVR: support for zero latency interrupt handlers
> >>> >> >> >> >>
> >>> >> >> >> >> ## Summary
> >>> >> >> >> >>
> >>> >> >> >> >> This patch series provides support for so-called zero
> latency
> >>> >> >> >> >> interrupts
> >>> >> >> >> >> as described in
> >>> >> >> >> >>
> >>> >> >> >> >>
> >>> >> >> >>
> >>> >> >>
> >>> >>
> >>>
> https://nuttx.apache.org/docs/latest/guides/concurrency/zerolatencyinterrupts.html
> >>> >> >> >> >> . These can be used for driver code that needs the
> interrupt
> >>> >> handler
> >>> >> >> >> >> to
> >>> >> >> >> >> run with as little overhead as possible (for example
> because
> >>> it is
> >>> >> >> >> >> latency sensitive, runs very often etc.) This series does
> not
> >>> add
> >>> >> any
> >>> >> >> >> >> in-tree user, that is a topic of a planned follow-up
> (driver
> >>> for
> >>> >> >> >> >> WS2812
> >>> >> >> >> >> programmable LED.)
> >>> >> >> >> >>
> >>> >> >> >> >> This support is only added for DA/DB family of AVR chips.
> >>> >> >> >> >>
> >>> >> >> >> >> There are also some fixes of interrupt vectors table
> >>> (incorrectly
> >>> >> >> >> >> numbered vectors as a result of duplicates) and Kconfig
> option
> >>> >> >> naming.
> >>> >> >> >> >> In addition to that, interupt vectors are renamed (for
> DA/DB
> >>> >> family
> >>> >> >> >> >> only) to be able to override them with custom code written
> in C
> >>> >> (and
> >>> >> >> >> >> compiled with GCC which expects __vector prefix in the
> name.)
> >>> >> >> >> >>
> >>> >> >> >> >> ## Impact
> >>> >> >> >> >>
> >>> >> >> >> >> New feature is added: zero latency interrupts that override
> >>> >> regular
> >>> >> >> >> >> interrupt routine with a custom code completely
> independent on
> >>> the
> >>> >> >> >> >> rest
> >>> >> >> >> >> of the operating system.
> >>> >> >> >> >>
> >>> >> >> >> >> There is no impact on existing users, all new code is off
> by
> >>> >> default.
> >>> >> >> >> >> No
> >>> >> >> >> >> impact on other architectures nor other AVR families
> either.
> >>> >> >> >> >>
> >>> >> >> >> >> Impact on build - some Kconfig options are renamed from
> HAS_ to
> >>> >> >> >> >> preferred HAVE_ form. This renaming only touches existing
> >>> Kconfig
> >>> >> >> >> >> options that are referred to by newly added Kconfig options
> >>> (ie.
> >>> >> the
> >>> >> >> >> >> new
> >>> >> >> >> >> option depends on the existing one.) All of the renamed
> options
> >>> >> are
> >>> >> >> >> >> selected automatically based on chip in use so this change
> >>> should
> >>> >> >> have
> >>> >> >> >> >> no impact on existing configurations.
> >>> >> >> >> >>
> >>> >> >> >> >> Impact on documentation - the guide linked in the summary
> is
> >>> >> updated
> >>> >> >> >> >> to
> >>> >> >> >> >> describe specifics of the AVR implementation.
> >>> >> >> >> >>
> >>> >> >> >> >> No impact on hardware, security or compatibility.
> >>> >> >> >> >>
> >>> >> >> >> >> ## Testing
> >>> >> >> >> >>
> >>> >> >> >> >>    I confirm that changes are verified on local setup and
> >>> works as
> >>> >> >> >> >> intended:
> >>> >> >> >> >>    * Build Host: Linux, AMD, GCC - avr-gcc 14.2
> >>> >> >> >> >>    * Target: AVR DA/DB, tested on breadxavr board
> >>> >> >> >> >>
> >>> >> >> >> >> To test that the interrupt vector renaming did not affect
> other
> >>> >> AVR
> >>> >> >> >> >> families, mega1284p-xplained:nsh was built and disassembly
> >>> >> compared.
> >>> >> >> >> >> There was no change.
> >>> >> >> >> >>
> >>> >> >> >> >> The feature was first tested by rudimentary application
> that
> >>> >> >> >> >> controlled
> >>> >> >> >> >> WS2812 programmable LED outside of the OS and then by a new
> >>> driver
> >>> >> >> for
> >>> >> >> >> >> that LED using ws2812 example application from nuttx-apps.
> >>> >> >> >> >>
> >>> >> >> >> >> ## PR verification Self-Check
> >>> >> >> >> >>
> >>> >> >> >> >>    * [x] This PR introduces only one functional change.
> >>> >> >> >> >>    * [x] I have updated all required description fields
> above.
> >>> >> >> >> >>    * [x] My PR adheres to Contributing
> >>> >> >> >> >> [Guidelines](
> >>> >> >> >> https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md)
> >>> >> >> >> >> and
> >>> >> >> >> >> [Documentation](
> >>> >> >> >> >>
> https://nuttx.apache.org/docs/latest/contributing/index.html)
> >>> >> >> >> >> (git commit title and message, coding standard, etc).
> >>> >> >> >> >>    * [ ] My PR is still work in progress (not ready for
> >>> review).
> >>> >> >> >> >>    * [x] My PR is ready for review and can be safely merged
> >>> into a
> >>> >> >> >> >> codebase.
> >>> >> >> >> >>
> >>> >> >> >> >> ============================
> >>> >> >> >> >>
> >>> >> >> >> >> On 2026-10-15 07:41, Swatantra wrote:
> >>> >> >> >> >> > Hi Kerogit, Alin,
> >>> >> >> >> >> >
> >>> >> >> >> >> > I have opened the Pull Request for Step 1 on GitHub on
> >>> behalf of
> >>> >> >> >> >> > Kerogit:
> >>> >> >> >> >> > https://github.com/apache/nuttx/pull/20677
> >>> >> >> >> >> >
> >>> >> >> >> >> > All 4 commits preserve Kerogit's original authorship and
> DCO
> >>> >> >> >> sign-offs,
> >>> >> >> >> >> > rebased cleanly onto current master, and checked with
> >>> nxstyle.
> >>> >> >> >> >> > As discussed, we will proceed step-by-step: once this PR
> is
> >>> >> >> reviewed
> >>> >> >> >> >> > and
> >>> >> >> >> >> > merged, we can proceed with Step 2 (Zero Latency
> Interrupts).
> >>> >> >> >> >> >
> >>> >> >> >> >> > Best regards,
> >>> >> >> >> >> > Swatantra Yadav
> >>> >> >> >> >> >
> >>> >> >> >> >> > On Thu, 15 Oct 2026 at 03:15, <[email protected]> wrote:
> >>> >> >> >> >> >
> >>> >> >> >> >> >> Hello,
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> thanks to everyone for the offers. First part of the
> series
> >>> is
> >>> >> >> ready
> >>> >> >> >> >> >> in
> >>> >> >> >> >> >> the Git repository, branch is named avrdx_fixes_13.1.
> The PR
> >>> >> >> >> >> >> description
> >>> >> >> >> >> >> is below. I'll be looking at Github and if any question
> >>> arise,
> >>> >> I
> >>> >> >> will
> >>> >> >> >> >> >> answer them here.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> And just in case - since you mention splitting the
> patches
> >>> into
> >>> >> >> >> >> >> individual PRs. If you mean breaking the branch into 4
> >>> separate
> >>> >> >> >> >> >> branches, I would advise against that. The features
> more or
> >>> >> less
> >>> >> >> >> >> >> depend
> >>> >> >> >> >> >> on each other (software interrupt emulation changes file
> >>> added
> >>> >> by
> >>> >> >> the
> >>> >> >> >> >> >> zero latency interrupts, WS2812 uses both of these
> features
> >>> >> etc.)
> >>> >> >> so
> >>> >> >> >> >> >> trying to split them up is most likely going to end
> with git
> >>> >> >> >> conflicts
> >>> >> >> >> >> >> and code that does not build. That's why I was planning
> to
> >>> >> merge
> >>> >> >> this
> >>> >> >> >> >> >> in
> >>> >> >> >> >> >> step-by-step fashion.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> The filled PR template:
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> ============================
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> AVR DA/DB: fix for build failure and other smaller fixes
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> ## Summary
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> This patch series fixes build failure for AVR DA/DB
> family
> >>> and
> >>> >> >> adds
> >>> >> >> >> >> >> some
> >>> >> >> >> >> >> other smaller fixes.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> The build failure was caused by patch series that added
> >>> >> >> >> >> >> LIBC_ATOMIC_IRQ
> >>> >> >> >> >> >> Kconfig option during 13.1 development. Commit
> 4ca2256a9bee
> >>> >> >> selects
> >>> >> >> >> >> >> this
> >>> >> >> >> >> >> option by default for AVR chips but not for the DA/DB
> >>> family,
> >>> >> >> causing
> >>> >> >> >> >> >> a
> >>> >> >> >> >> >> build failure (atomic functions are missing.) The first
> >>> patch
> >>> >> of
> >>> >> >> this
> >>> >> >> >> >> >> series simply adds missing "select LIBC_ATOMIC_IRQ" for
> this
> >>> >> >> family
> >>> >> >> >> as
> >>> >> >> >> >> >> well.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> Other than that, version 13.1 added a performance
> regression
> >>> >> which
> >>> >> >> >> >> >> manifested as dropped bytes in USART peripheral during
> >>> receive
> >>> >> >> (with
> >>> >> >> >> >> >> heavy round-robin preemptive scheduling load.) The
> >>> regression
> >>> >> was
> >>> >> >> >> >> >> bisected to commit b32712d0a2 that fixes some bugs
> (which
> >>> were
> >>> >> >> >> >> >> affecting
> >>> >> >> >> >> >> AVR DA/DB default build as well) but apparently adds
> more
> >>> >> >> >> >> >> time-consuming
> >>> >> >> >> >> >> work to context switch with interrupts disabled. The
> patch
> >>> for
> >>> >> >> this
> >>> >> >> >> >> >> simply documents this possibility in the USART driver
> >>> >> description.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> The remaining patches fix unused variable warning, make
> >>> (very
> >>> >> >> >> >> >> unlikely)
> >>> >> >> >> >> >> board initialization error more visible and reorder
> >>> >> manipulation
> >>> >> >> with
> >>> >> >> >> >> >> stack pointer during context restore to do it in the way
> >>> >> >> (presumably)
> >>> >> >> >> >> >> intended by the chip manufacturer.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> ## Impact
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> After the patch is applied, it is again possible to
> build
> >>> the
> >>> >> >> code.
> >>> >> >> >> >> >> Other than that, there is no impact on existing
> code/users.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> The stack pointer reordering change is done in file
> shared
> >>> with
> >>> >> >> other
> >>> >> >> >> >> >> AVR families - #ifdef blocks are used to cause no
> change for
> >>> >> them
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> ## Testing
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>    I confirm that changes are verified on local setup
> and
> >>> work
> >>> >> as
> >>> >> >> >> >> >> intended:
> >>> >> >> >> >> >>    * Build Host: Linux, AMD, GCC-AVR 14.2
> >>> >> >> >> >> >>    * Target: AVR (AVR128DA28), breadxavr:nsh
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>    Testing logs before change:
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>    ```
> >>> >> >> >> >> >> $ tools/configure.sh -l breadxavr:nsh
> >>> >> >> >> >> >> $ make -j16
> >>> >> >> >> >> >> ...
> >>> >> >> >> >> >> avr-ld:
> .../nuttx.git/staging/libsched.a(sem_destroy.o): in
> >>> >> >> function
> >>> >> >> >> >> >> `.L3':
> >>> >> >> >> >> >> sem_destroy.c:(.text.nxsem_destroy+0x46): undefined
> >>> reference
> >>> >> to
> >>> >> >> >> >> >> `__atomic_load_4'
> >>> >> >> >> >> >> ...
> >>> >> >> >> >> >> ```
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>    Testing logs after change:
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>    ```
> >>> >> >> >> >> >> $ tools/configure.sh -l breadxavr:nsh
> >>> >> >> >> >> >> $ make -j16
> >>> >> >> >> >> >> Register: nsh
> >>> >> >> >> >> >> Register: sh
> >>> >> >> >> >> >> LD: nuttx
> >>> >> >> >> >> >> Memory region         Used Size  Region Size  %age Used
> >>> >> >> >> >> >>             flash:       56377 B       128 KB     43.01%
> >>> >> >> >> >> >>              sram:         780 B        16 KB      4.76%
> >>> >> >> >> >> >>            eeprom:           0 B        512 B      0.00%
> >>> >> >> >> >> >>            rodata:         606 B         4 KB     14.79%
> >>> >> >> >> >> >> CP: nuttx.hex
> >>> >> >> >> >> >> CP: nuttx.asm
> >>> >> >> >> >> >>    ```
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> To verify that the stack pointer change did not affect
> other
> >>> >> AVR
> >>> >> >> >> >> >> families, mega1284p-xplained:nsh was built before and
> after
> >>> the
> >>> >> >> >> >> >> change.
> >>> >> >> >> >> >> The resulting binary was identical (with the exception
> of
> >>> >> version
> >>> >> >> >> >> >> string.)
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> Header and source files were checked by checkpatch with
> no
> >>> >> issues
> >>> >> >> >> >> >> found,
> >>> >> >> >> >> >> spelling checked with aspell.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> ## PR verification Self-Check
> >>> >> >> >> >> >>
> >>> >> >> >> >> >>    * [x] This PR introduces only one functional change.
> >>> >> >> >> >> >>    * [x] I have updated all required description fields
> >>> above.
> >>> >> >> >> >> >>    * [x] My PR adheres to Contributing
> >>> >> >> >> >> >> [Guidelines](
> >>> >> >> >> >>
> https://github.com/apache/nuttx/blob/master/CONTRIBUTING.md)
> >>> >> >> >> >> >> and
> >>> >> >> >> >> >> [Documentation](
> >>> >> >> >> >> >>
> >>> https://nuttx.apache.org/docs/latest/contributing/index.html)
> >>> >> >> >> >> >> (git commit title and message, coding standard, etc).
> >>> >> >> >> >> >>    * [ ] My PR is still work in progress (not ready for
> >>> >> review).
> >>> >> >> >> >> >>    * [x] My PR is ready for review and can be safely
> merged
> >>> >> into a
> >>> >> >> >> >> >> codebase.
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> ============================
> >>> >> >> >> >> >>
> >>> >> >> >> >> >> On 2026-10-14 18:20, Abhishek Mishra wrote:
> >>> >> >> >> >> >> > Hi,
> >>> >> >> >> >> >> >
> >>> >> >> >> >> >> > I'd be happy to help split the patches into
> individual PRs
> >>> >> and
> >>> >> >> >> work on
> >>> >> >> >> >> >> > getting them merged. Please let me know how you'd
> like to
> >>> >> >> >> coordinate.
> >>> >> >> >> >> >> >
> >>> >> >> >> >> >> > Best regards,
> >>> >> >> >> >> >> > Abhishek
> >>> >> >> >> >> >> >
> >>> >> >> >> >> >> > On Wed, Oct 14, 2026 at 9:09 PM Alin Jerpelea <
> >>> >> >> [email protected]>
> >>> >> >> >> >> >> > wrote:
> >>> >> >> >> >> >> >
> >>> >> >> >> >> >> >> please prepare the first patches and I will handle
> them
> >>> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> Best regards
> >>> >> >> >> >> >> >> Alin J
> >>> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> On Wed, 14 Oct 2026, 16:37 Alin Jerpelea, <
> >>> >> [email protected]>
> >>> >> >> >> >> wrote:
> >>> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> > Hi,
> >>> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> > I can lend a hand tomorrow
> >>> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> > Thanks for your message
> >>> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> > Best regards
> >>> >> >> >> >> >> >> > Alin
> >>> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> > On Wed, 14 Oct 2026, 11:18 Felipe Moura Oliveira, <
> >>> >> >> >> >> >> [email protected]>
> >>> >> >> >> >> >> >> > wrote:
> >>> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> Hello,
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >> I am away from my desk for the next few days. If
> no
> >>> one
> >>> >> >> offers
> >>> >> >> >> to
> >>> >> >> >> >> >> help
> >>> >> >> >> >> >> >> by
> >>> >> >> >> >> >> >> >> this weekend, I will reach out to you so I can
> help
> >>> you
> >>> >> with
> >>> >> >> >> this.
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >> Regards,
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >> *--Felipe Moura de Oliveira*
> >>> >> >> >> >> >> >> >> Linkedin <
> >>> >> >> https://www.linkedin.com/in/felipe-oliveira-75a651a0
> >>> >> >> >> >
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >> On Wed, 14 Oct 2026 at 10:48 <[email protected]>
> >>> wrote:
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >> > Hello,
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> > I would like to ask someone to help me merge
> some
> >>> >> patches
> >>> >> >> for
> >>> >> >> >> >> the
> >>> >> >> >> >> >> AVR
> >>> >> >> >> >> >> >> >> > architecture, DA/DB family. I have a series
> ready
> >>> with
> >>> >> >> some
> >>> >> >> >> >> fixes
> >>> >> >> >> >> >> and
> >>> >> >> >> >> >> >> >> > some new features. Same as before, I don't have
> a
> >>> >> Github
> >>> >> >> >> account
> >>> >> >> >> >> >> so I
> >>> >> >> >> >> >> >> am
> >>> >> >> >> >> >> >> >> > looking for someone who could open pull requests
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> > The series as a whole is available in my
> "nuttx.git"
> >>> >> >> >> repository
> >>> >> >> >> >> at
> >>> >> >> >> >> >> >> >> > git.kerogit.eu accessible through HTTP/S. The
> >>> relevant
> >>> >> >> >> branch
> >>> >> >> >> >> is
> >>> >> >> >> >> >> >> named
> >>> >> >> >> >> >> >> >> > avrdx_ws2812_upstream .
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> > In its current form, the branch is not suitable
> for
> >>> >> >> merging
> >>> >> >> >> - it
> >>> >> >> >> >> >> would
> >>> >> >> >> >> >> >> >> > be more than one feature per one PR which is
> against
> >>> >> the
> >>> >> >> >> >> >> contributing
> >>> >> >> >> >> >> >> >> > rules. My plan is, if someone decides to help,
> to
> >>> split
> >>> >> >> the
> >>> >> >> >> >> series
> >>> >> >> >> >> >> >> into
> >>> >> >> >> >> >> >> >> > steps and merge these steps one by one. After
> one
> >>> step
> >>> >> is
> >>> >> >> >> >> merged, I
> >>> >> >> >> >> >> >> >> > would rebase the remainder on current master
> branch
> >>> and
> >>> >> >> >> provide
> >>> >> >> >> >> >> next
> >>> >> >> >> >> >> >> >> > step. I also plan to prepare text to be filled
> in
> >>> the
> >>> >> PR
> >>> >> >> form
> >>> >> >> >> >> >> >> >> > (essentialy doing as much as possible to make
> the
> >>> job
> >>> >> >> easier
> >>> >> >> >> for
> >>> >> >> >> >> >> the
> >>> >> >> >> >> >> >> >> > person who will interact with Github.)
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> > There are four features:
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> > 1. fixes - build failure introduced between
> 13.0 and
> >>> >> 13.1,
> >>> >> >> >> >> >> documenting
> >>> >> >> >> >> >> >> >> > performance regression between these versions
> and
> >>> some
> >>> >> >> minor
> >>> >> >> >> >> stuff
> >>> >> >> >> >> >> >> >> > 2. zero latency interrupt support -
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >>
> >>> >> >> >> >> >>
> >>> >> >> >> >>
> >>> >> >> >>
> >>> >> >>
> >>> >>
> >>>
> https://nuttx.apache.org/docs/latest/guides/concurrency/zerolatencyinterrupts.html
> >>> >> >> >> >> >> >> >> > 3. software interrupt emulation
> >>> >> >> >> >> >> >> >> > 4. lower half for WS2812 driver
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >> > Thanks
> >>> >> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >> >>
> >>> >> >> >> >> >> >> >
> >>> >> >> >> >> >> >>
> >>> >> >> >> >> >>
> >>> >> >> >> >>
> >>> >> >> >>
> >>> >> >>
> >>> >>
> >>>
>
>

Reply via email to