Remove STM32 legacy pinmap
Description
It's been quite some time since CONFIG_STM32xx_USE_LEGACY_PINMAP was introduced. Some upstream boards have already migrated to the new pinmap, but for many there is no progress. There was enough time for users to migrate their boards.
Steps to fix this issue:
- [ ] migrate
stm32f0boards to new pinmap - [ ] migrate
stm32f1boards to new pinmap - [ ] migrate
stm32f2boards to new pinmap - [ ] migrate
stm32f3boards to new pinmap - [ ] migrate
stm32f4boards to new pinmap - [ ] migrate
stm32l1boards to new pinmap - [ ] migrate
stm32l4boards to new pinmap - [ ] migrate
stm32l5board to new pinmap - [ ] migrate
stm32wbboard to new pinmap - [ ] remove legacy pinmap from
stm32h7- boards already migrated to new pinmap - [ ] remove legacy pinmap from
stm32f7- boards already migrated to new pinmap - [ ] remove legacy pinmap from
stm32f0l0g0- boards already migrated to new pinmap
The biggest problem here is the port of board/stm32 boards to the new pinmap, the number of stm32 boards is quite large, so practical there is no person who can test all modified board on real HW. In this case, we must accept the risk that part of the configuration will be broken, since compiling the code without errors doesn't provide certainty that the port is still working. Here is an example of me accidentally messing up the stm32f7 configuration while migrating the pinmap: https://github.com/apache/nuttx/pull/13915. We definitely need to watch out for similar cases.
Is anyone willing to help with this issue? Maybe someone from px4 team is interested in helping? This issue is basically a result of fixes needed for your project and it was left in "half done" state with absolutely no progress for over a year. So sad...
Hardware
@cederom created this list below so we know exactly what hardware we need and what we have to cover the tests :-)
STM32F0
| MCU | Board | Devkit | Owner |
|---|---|---|---|
| STM32F072RBT6 | MB1076C | STM32F072B-DISCO | @cederom |
STM32U0
| MCU | Board | Devkit | Owner |
|---|---|---|---|
| STM32U083RCT6U | MB1932-U083RC-B01 | NUCLEO-U083RC | @cederom |
STM32L0
| MCU | Board | Devkit | Owner |
|---|---|---|---|
| STM32L053R8T6 | MB1136 C-02 | NUCLEO-L053R8 | @cederom |
| STM32L073RZT6U | MB1136 C-04 | NUCLEO-L073RZ | @cederom |
STM32F1
| MCU | Board | Devkit | Owner |
|---|---|---|---|
| STM32F107RCT6 | MB1134 A-01 | STM32F0308-DISCO | @cederom |
STM32F2
| MCU | Board | Devkit | Owner |
|---|
STM32F3
| MCU | Board | Devkit | Owner |
|---|
STM32F4
| MCU | Board | Devkit | Owner |
|---|---|---|---|
| STM32F411RET6 | MB1136 C-02 | NUCLEO-F411RE | @cederom |
| STM32F412ZGT6U | MB1137 B-01 | NUCLEO-F412ZG | @cederom |
| STM32F429ZIT6U | MB1137 Rev.B | NUCLEO-F429ZI | @cederom |
STM32L4
| MCU | Board | Devkit | Owner |
|---|---|---|---|
| STM32L432C6U | MB1180 Rev.C | NUCLEO-L432KC | @cederom |
STM32H5
| MCU | Board | Devkit | Owner | Notes |
|---|---|---|---|---|
| STM32H503RBT6U | MB1814-H503RB-B01 | NUCLEO-H503RB | @cederom | STM32F723IEK6 STLink |
STM32U5
| MCU | Board | Devkit | Owner | Notes |
|---|---|---|---|---|
| STM32U575ZIT6QU | MB1549-U575ZIQ-C05 | NUCLEO-U575ZI-Q | @cederom | STM32F723IEK6 STLink |
STM32F7
| MCU | Board | Devkit | Owner | Notes |
|---|---|---|---|---|
| STM32F769NIH6U | MB1225 B-02 | STM32F769I-DISC1 | @cederom | No LCD. |
STM32H7
| MCU | Board | Devkit | Owner |
|---|
STM32WB
| MCU | Board | Devkit | Owner |
|---|
Verification
- [X] I have verified before submitting the report.
- I asked STM several times for NuttX RTOS contracting development support but they were not interested :-(
- We should not move with that subject forward, especially if with a big chance of breaking stuff, until we have an option to runtime validate all / most of the boards.
- Even simple build and runtime scripts can be made just to test changes and push the DRUNX forward. I have some boards and can help here :-) Will list the boards in a free moment.
- STM was always keen to share their devkits even for free so when we have a full list of boards I can requests free samples for me and for you @raiden00pl so we can move forward?
Okay I have created list of hardware that I have at hand. Some modern devkits seems to have more powerful STLink MCU than the target MCU 🗡
@raiden00pl please mark the hardware that we need and I will try to ask STM for free samples so we could test changes in NuttX and add them all to DRUNX :-)
Update: This inspired me to create DRUNX Hardware Database https://github.com/apache/nuttx/issues/15746 where we can list all the hardware we have at hand and maybe to mark what we need :-)
@cederom changing most boars is easy and the risk of breaking something is marginal. Problematic are only boards with peripherals that require complex pin configuration like displays or external memory. And here comes the problem, because some of these boards are old and probably unavailable. Many boards are also from manufacturers other than ST.