Hello Manas,
On 04.08.25 04:48, manas gupta wrote:
hi all,
I'm Manas, a GSoC 2025 contributor @BeagleBoard org working on the
project upstream wpanusb bcferial as part of my efforts I am aiming to
upstream these drivers to simplify on-going support.
I'm writing to this list to introduce the project, share the progress
made so far, and respectfully ask for your guidance on the best path
forward for upstreaming the drivers.
The drivers have had multiple functional gaps before they can be
upstreamed, over the past few weeks I have been working on quite a few
of them.
To address the first major gap, I have spent the initial phase of the
project implementing the missing driver operations. The driver now has
functional implementations for:
set_txpower(), set_lbt(), set_cca_mode(), set_cca_ed_level(),
set_csma_params(), set_frame_retries(), set_promiscuous_mode(),
Good so you filled up some of the gaps for driver ops.
Enhanced parameter validation per IEEE 802.15.4 standard, Improved
error handling and debug logging and worked on the zephyr application.
Currently I am working on generic aspects which are hardcoded and
Dynamic device capabilities.
Here you refer to the part where the Zephyr application would query the
the hardware and set bands, channels, power levels, etc dynamically from
the radio API of Zephyr? This should really be generic. It should work
with any 15.4 transceiver supported by Zephyr, and expose the right
capabilities for the hardware.
Stefan's notes mentioned heavy work on management frames and scanning. Are
there any new driver ops or architectural changes on the horizon that I should
be aware of and plan for in this driver?
Not at the moment. Scanning, beaconing, etc has landed and the latest
wpan-tools release has support for it as well.
I am eager to contribute and follow the best practices of the kernel
community. Any feedback on the work so far, patch submission
strategies and guidance would be incredibly valuable.
A first start would be to get all the pieces together that are involved,
e.g. zephyr wpanusb application, bfcserial, wpanusb linux driver and
describe how they are supposed to work together. Having a clear
description on this would actually help us to give you feedback if that
is a good way forward.
Based on community feedback, I plan to:
1. Address any architectural concerns raised
2. Implement suggested improvements
3. Prepare formal patch series for submission
This part is something you should start as early as possible. As Alex
mentioned you can just have the series send out as RFC. No harm in
showing us your working prototypes to get feedback. The doc how it fits
together and how to test it would be part of your series cover-letter.
4. Coordinate hardware testing with BeagleConnect devices
5. Document any remaining limitations
I would greatly appreciate any guidance on:
- Code review and architectural feedback
- Upstreaming process and requirements
Please read up on submitting patches on the Linux kernel. There is
plenty of docs for this, no need to repeat all of it.
This could be a start:
https://docs.kernel.org/process/submitting-patches.html
I would encourage you to use b4 for handling your patch series. If you
are familiar with teh kernel development process plain git can also
work, but b4 is taking some problems off your plate.
- Testing strategies and requirements
You should always amke sure that your prototype works on your setup.
(mention the setup in your cover-letter). I would assume for you that
might be two BeagleConnect Freedom boards. Running tests with creating a
PAN, scanning, joining, raw 15.4 frames transfer as well as 6lowpan
communication would be the tests we are looking for.
Once we reached a state where we are happy with the driver code I can
also give it a go.
Thank you for your time and consideration. I look forward to contributing to
the Linux IEEE 802.15.4 subsystem.
project forum link:
https://forum.beagleboard.org/t/upstream-wpanusb-and-bcfserial/37186
gsoc page- https://summerofcode.withgoogle.com/programs/2025/projects/xZofecH8
org repo link: https://openbeagle.org/beagleconnect/linux
my repo links
wpanusb driver: https://github.com/manas-gupta-3131/bb-gsoc-wpanusb
bcfserial driver: https://github.com/manas-gupta-3131/bb-gsoc-bcfserial
This one is empty.
wpanusb_bc(zephyr application):
https://github.com/manas-gupta-3131/bb-gsoc-wpanusb_bc
regards
Stefan Schmidt