The PR to make these changes is here https://github.com/apache/nuttx/pull/8992
There is a tool that will provide you with the changes that are needed in the board.h 2 boards have been converted to provide examples of the conversion of the different pinmaps types (STM32F1 series is different that all the stm32) board olimexino-stm32:Rework board.h not use CONFIG_STM32_USE_LEGACY_PINMAP board nucleo-h743zi:Rework board.h not use CONFIG_STM32_USE_LEGACY_PINMAP Please have a look at the PR and test any out of tree boards you may have so that we may bring this in soon. Thank you, David -----Original Message----- From: David Sidrane <david.sidr...@nscdg.com> Sent: Wednesday, April 12, 2023 2:49 AM To: 'dev@nuttx.apache.org' <dev@nuttx.apache.org> Subject: RE: Hardcoded Pin mux, pad control and Drive Strength (AKA Slew-rate and Frequency) Settings #1570 Nathan, no worries. I ended up doing the STM32G families yesterday. David -----Original Message----- From: Nathan Hartman <hartman.nat...@gmail.com> Sent: Tuesday, April 11, 2023 10:40 PM To: dev@nuttx.apache.org Subject: Re: Hardcoded Pin mux, pad control and Drive Strength (AKA Slew-rate and Frequency) Settings #1570 @davids5, I saw the request on GitHub for help with the STM32G families but unfortunately something has come up and I won't be able to work on it this week. Hopefully someone else can volunteer, otherwise I'll try to help next week... Thanks, Nathan On Tue, Apr 11, 2023 at 7:58 AM David Sidrane <david.sidr...@nscdg.com> wrote: > @slorquet Please have a look at #8992. Let me know if it addresses all > the concerns you have. > > -----Original Message----- > From: Sebastien Lorquet <sebast...@lorquet.fr> > Sent: Friday, April 7, 2023 9:58 AM > To: dev@nuttx.apache.org > Subject: Re: Hardcoded Pin mux, pad control and Drive Strength (AKA > Slew-rate and Frequency) Settings #1570 > > Thanks for the notification. > > Your proposal is mostly OK for me, I hope others will send reactions > too. I have just one concern. > > > If I attempt to rephrase the proposal: Starting from a commit in a > future, stm32h7 GPIO definitions will not include speed indications > anymore, and these will have to be added manually in board.h, but ONLY > if the LEGACY_PINMAP is not set? > > > Here is my concern: What will happen if a user (me, probably) builds a > NuttX with this new commit from a full stored defconfig, but does not > regenerate its config prior to rebuilding ? the LEGACY_PINMAP setting > will not be present when building in that case. > > Can we force a config update before starting the build, so the > LEGACY_PINMAP setting will be set to Y automatically in all cases? > > > Also, this has to be documented very clearly, not just the official > release notes for the next release! > > Aditionnally, if LEGACY_PINMAP is set in user config, maybe we can add > a compile time warning in stm32h7/stm32_gpio.c that in the future, > users are required to update their board.h and once done, disable > LEGACY_PINMAP ? > > Sebastien > > > Le 07/04/2023 à 15:34, David Sidrane a écrit : > > Opening the discussion for this issue on the list. See > > https://github.com/apache/nuttx/issues/1570 > > > > > > > > I would like to get feedback on the approach see if we can move > > forward > on > > this. > > > > > > > > > > > > While some solutions were discussed in > > > > - Revert "stm32h7 sdmmc: set SDMMC_CK pin to high speed (50 MHz) > > mode." > > #5012 <https://github.com/apache/nuttx/pull/5012> > > > > I would like to propose a solution for this issue as a request for > > comment: > > > > 1. That will not affect any existing boards > > 2. Will allow us to fix the issues without forcing massive changes. > > 3. Eventually after N more releases of NuttX deprecate the solution. > > > > Steps to get there: > > > > 1. Kconfig for all effected arches will have > > STM32xxx_USE_LEGACY_PINMAP > > set to yes as a default. > > 2. Rework top level pinmap files E.G. hardware/stm32_pinmap.h. > > 3. The current pinmap file will be renamed with _legacy E.G. > > hardware/stm32h7x3xx_pinmap_legacy.h > > 4. Rework chip specific files removing speeds and adding _0 to the > > previous no-selectable pins with speeds > > 5. Rework chip specific files adding _0 to the previous > > no-selectable > > pins > > > > The hardware/stm32_pinmap.h will have the following structure > > > > #if defined(STM32H7_USE_LEGACY_PINMAP ) > > > > # if defined(CONFIG_STM32H7_STM32H7X3XX) > > > > # include "hardware/stm32h7x3xx_pinmap_legacy.h" > > > > # elif defined(CONFIG_STM32H7_STM32H7X7XX) > > > > # include "hardware/stm32h7x3xx_pinmap_legacy.h" > > > > # else > > > > # error "Unsupported STM32 H7 Legacy Pin map" > > > > # endif > > > > #else > > > > # if defined(CONFIG_STM32H7_STM32H7X3XX) > > > > # include "hardware/stm32h7x3xx_pinmap.h" > > > > # elif defined(CONFIG_STM32H7_STM32H7X7XX) > > > > # include "hardware/stm32h7x3xx_pinmap.h" > > > > # else > > > > # error "Unsupported STM32 H7 Pin map" > > > > # endif > > > > # endif > > > > > > > > Moving forward boards will turn off STM32xx_USE_LEGACY_PINMAP and > > update the board.h files to fully define the pins with selected > > speeds. > > > > was: > > > > #define GPIO_SDMMC2_CK GPIO_SDMMC2_CK_1 /* PD6 FC_PD6_SDMMC2_CK */ > > > > #define GPIO_SDMMC2_CMD GPIO_SDMMC2_CMD_1 /* PD7 FC_PD7_SDMMC2_CMD > > */ > > > > // GPIO_SDMMC2_D0 No Remap /* PB14 FC_PB14_SDMMC2_D0 */ > > > > // GPIO_SDMMC2_D1 No Remap /* PB15 FC_PB15_SDMMC2_D1 */ > > > > #define GPIO_SDMMC2_D2 GPIO_SDMMC2_D2_1 /* PG11 FC_PG11_SDMMC2_D2 */ > > > > // GPIO_SDMMC2_D3 No Remap /* PB4 FC_PB4_SDMMC2_D3 */ > > > > is: > > > > #define GPIO_SDMMC2_CK (GPIO_SDMMC2_CK_1 | GPIO_SPEED_25MHz) /* > > PD6 FC_PD6_SDMMC2_CK */ > > > > #define GPIO_SDMMC2_CMD (GPIO_SDMMC2_CMD_1 | GPIO_SPEED_2MHz) /* > > PD7 FC_PD7_SDMMC2_CMD */ > > > > #define GPIO_SDMMC2_D0 (GPIO_SDMMC2_D0_0 | GPIO_SPEED_2MHz) /* PB14 > > FC_PB14_SDMMC2_D0 */ > > > > #define GPIO_SDMMC2_D1 (GPIO_SDMMC2_D1_0 | GPIO_SPEED_2MHz)/* PB15 > > FC_PB15_SDMMC2_D1 */ > > > > #define GPIO_SDMMC2_D2 GPIO_SDMMC2_D2_1 | GPIO_SPEED_2MHz) /* > > PG11 FC_PG11_SDMMC2_D2 */ > > > > #define GPIO_SDMMC2_D3 (GPIO_SDMMC2_D3_0 | GPIO_SPEED_2MHz) /* PB4 > > FC_PB4_SDMMC2_D3 */ > > > > > > > > To maintain the speed that was set in the legacy files just diff the > > _legacy file with the non legacy file and use that speed when > > creating the #define. > > >