You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is time again to upgrade our Microchip vendor files for our supported SAM0 devices. Unfortunately this time, things will be a little bit more trickier than before as Microchip decided to rework their vendor files:
Support for structures bitfields dropped.
Peripheral structures now utilize u8, u16, u32 registers instead of individual register structures (due to the drop of bitfields support).
Peripherals structure were also renamed (At least they are no longer in camel case so they fit our coding convention yay!)
Numerous small changes that will require tedious adjustments.
So why should we do it ?
Because bug fixes, new silicon version added, but above all, to be able to add support for new families of microcontrollers from Microchip.
Migration plan:
Option 1
Create a dedicated branch on RIOT-OS/RIOT repo, push all changes there kindly, and create a gigantic PR that will be painful funny to review.
Obviously, this is something I'd like to avoid.
Option 2:
Proceed by smaller steps across several releases even if it will increase the overall amount of work.
To do so, I propose the following steps:
Eliminate all usage of bitfields in our codebase.
Develop wrappers/macros to maintain backward compatibility for register access in all board and peripheral drivers (although this is not enjoyable).
Introduce new vendor headers into cpu/sam0_common/include/vendor_ng (these will NOT be included in compilation yet).
Gradually migrate each family to observe issues and address them diligently.
Remove old vendor headers.
Undo all changes related to register access modifications.
I am well aware, this will add significant amount of work but IMO, this is the price to pay to keep PR size reasonable. This will also prevent issue for people maintaining boards outside of the tree through EXTERNAL_BOARD_DIRS
For those curious about the changes, you will find all Microchip atpack here
Download the archive of any supported family, and compare the content of the include/ folder against cpu/sam0_common/include/vendor/XXXX
Obviously, all of this is debatable, and I'll take all ideas to reduce this burden.
The text was updated successfully, but these errors were encountered:
It is time again to upgrade our Microchip vendor files for our supported SAM0 devices. Unfortunately this time, things will be a little bit more trickier than before as Microchip decided to rework their vendor files:
So why should we do it ?
Because bug fixes, new silicon version added, but above all, to be able to add support for new families of microcontrollers from Microchip.
Migration plan:
Create a dedicated branch on RIOT-OS/RIOT repo, push all changes there kindly, and create a gigantic PR that will be
painfulfunny to review.Obviously, this is something I'd like to avoid.
Proceed by smaller steps across several releases even if it will increase the overall amount of work.
To do so, I propose the following steps:
cpu/sam0_common/include/vendor_ng
(these will NOT be included in compilation yet).I am well aware, this will add significant amount of work but IMO, this is the price to pay to keep PR size reasonable. This will also prevent issue for people maintaining boards outside of the tree through
EXTERNAL_BOARD_DIRS
For those curious about the changes, you will find all Microchip atpack here
Download the archive of any supported family, and compare the content of the
include/
folder againstcpu/sam0_common/include/vendor/XXXX
Obviously, all of this is debatable, and I'll take all ideas to reduce this burden.
The text was updated successfully, but these errors were encountered: