You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by GitBox <gi...@apache.org> on 2022/08/04 11:25:54 UTC

[GitHub] [incubator-nuttx] mlyszczek opened a new pull request, #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

mlyszczek opened a new pull request, #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781

   ## Summary
   This pull requests contains multiple commits with improvements for stm32wl5 chip and nucleo-stm32wl5jc board. In short it adds:
   
   - fixes unbuffered IPCC communication
   - fixes potential system deadlocks in certain situations when using IPCC
   - adds support to boot second CPU during nuttx startup
   - adds support to enable IPCC in stm32wl5jc board
   - simplifies makefile
   - splits Kconfig files into separate files to enhance maintanability and readability of these
   
   More information can be found in commit messages.
   
   ## Impact
   stm32wl5 chip and nucleo-stm32wl5jc - which are work in progress.
   
   ## Testing
   Compilation and running.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939496783


##########
arch/arm/src/stm32wl5/kconfig.d/configuration.kconfig:
##########
@@ -0,0 +1,4 @@
+source "arch/arm/src/stm32wl5/kconfig.d/configuration/serial.kconfig"

Review Comment:
   See the above reply.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207222380

   If you can't share the code, the benefit is small to share Kconfig.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207082144

   > @mlyszczek your original Kconfig wasn't too big to motivate split it. Almost all Kconfig inside arch/ is way bigget than these.
   
   @acassis Yes, that is true, for now that Kconfig is not big, and Kconfig in other archs are way bigger. That is exactly why I splitted it now - to avoid a lot of work later. Also, maybe someone will got after my example and will also split these huge Kconfigs in other archs too. Maybe I did split it too much - not much argument from me here I admit. But I strongly belive in splitting these kconfig files. The sooner it's done, the better as less work will be needed later to split it. This Kconfig file will grow, and eventually will be as big as other archs.
   
   You could treat it as proof of concept and kinda like standard proposition for future kconfigs in board/ and arch/


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] pkarashchenko commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
pkarashchenko commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r938715331


##########
arch/arm/src/stm32wl5/stm32wl5_ipcc.c:
##########
@@ -381,11 +390,13 @@ static ssize_t stm32wl5_ipcc_write(struct ipcc_lower_s *ipcc,
 static int stm32wl5_ipcc_rx_isr(int irq, void *context, void *arg)
 {
   int chan;
-  ssize_t nread;
   uint32_t mr;
   uint32_t sr;
   uint32_t status;
   struct stm32wl5_ipcc_s *priv;
+#ifdef CONFIG_IPCC_BUFFERED
+  ssize_t nread;
+#endif
 
   (void)context;

Review Comment:
   Good to use `UNUSED` macro



##########
boards/arm/stm32wl5/nucleo-wl55jc/src/stm32_ipcc.c:
##########
@@ -0,0 +1,183 @@
+/****************************************************************************
+ * boards/arm/stm32wl5/nucleo-wl55jc/src/stm32_ipcc.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <nuttx/ipcc.h>
+#include <debug.h>
+
+#include <stm32wl5_ipcc.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Define default values for macros if they are not define in config */
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN1_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN1_RXBUF 0

Review Comment:
   ```suggestion
   #  define CONFIG_ARCH_BOARD_IPCC_CHAN1_RXBUF 0
   ```
   here and similar places



##########
boards/arm/stm32wl5/nucleo-wl55jc/src/stm32_ipcc.c:
##########
@@ -0,0 +1,183 @@
+/****************************************************************************
+ * boards/arm/stm32wl5/nucleo-wl55jc/src/stm32_ipcc.c
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.  The
+ * ASF licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the
+ * License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+#include <nuttx/ipcc.h>
+#include <debug.h>
+
+#include <stm32wl5_ipcc.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* Define default values for macros if they are not define in config */
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN1_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN1_RXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN1_TXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN1_TXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN2_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN2_RXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN2_TXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN2_TXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN3_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN3_RXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN3_TXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN3_TXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN4_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN4_RXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN4_TXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN4_TXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN5_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN5_RXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN5_TXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN5_TXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN6_RXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN6_RXBUF 0
+#endif
+
+#ifndef CONFIG_ARCH_BOARD_IPCC_CHAN6_TXBUF
+#define CONFIG_ARCH_BOARD_IPCC_CHAN6_TXBUF 0
+#endif
+
+/****************************************************************************
+ * Private Function Prototypes
+ ****************************************************************************/
+
+static int init_ipcc(int chan, size_t rxbuflen, size_t txbuflen);
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: init_ipcc
+ *
+ * Description:
+ *   Initializes IPCC channel with tx and rx buffer sizes. If ipcc is
+ *   unbuffered, rxbuflen and txbuflen are ignored.
+ *
+ * Input Parameters:
+ *   chan - channel number, indexed from 0
+ *   rxbuflen - size of rxbuffer for buffered transactions
+ *   txbuflen - size of txbuffer for buffered transactions
+ *
+ * Returned Value:
+ *   0 on success or -1 on errors.
+ *
+ ****************************************************************************/
+
+static int init_ipcc(int chan, size_t rxbuflen, size_t txbuflen)
+{
+  struct ipcc_lower_s *ipcc;
+  int ret;
+
+#ifndef CONFIG_IPCC_BUFFERED
+  UNUSED(rxbuflen);
+  UNUSED(txbuflen);

Review Comment:
   Optional: can be placed together with `ret = ipcc_register(ipcc);` in the same `ifdef` block.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] davids5 commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
davids5 commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207942616

   >  but there would be tons of #ifdefs, changing anything would trigger anxiety to anyone - because it could break other stm32 ports.
   
   It already is this way and it is the wrong approach. The code is littered with `idef` rash and can have endless fix-it-break-it cycles. 
   
   The correct approach is versioned IP blocks that can be shared. By using HAS_XXXXX to enable the features not a chip list types. Have a look at https://github.com/apache/incubator-nuttx/blob/master/arch/arm/include/kinetis/kinetis_sim.h#L35-L57 
   Having a separate Kconfig dir not a good idea. If it were done correctly the Kconfig lives with driver and is included by the layer above's Kconfig to aggregate the SoC.  It is composition.
   
   When the F7 an H7 were added there was a conscious decision to reduce  coupling at the expense of code duplication.
   This is preferred over the mess that the stm32 has grown into. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939438853


##########
arch/arm/src/stm32wl5/kconfig.d/configuration.kconfig:
##########
@@ -0,0 +1,4 @@
+source "arch/arm/src/stm32wl5/kconfig.d/configuration/serial.kconfig"

Review Comment:
   No particular reason I guess, just felt right to me. I guess maybe config and periph dirs are not really needed, as I don't think there will be anything else there apart from periph and configuration. So periphs could go to one file, as it's mostly flat, and rest of the files (configurations) could be kept at kconfig.d/ root. What do you say?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1218347124

   Removed two commits with kconfig spliting.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] raiden00pl commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
raiden00pl commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207934684

   > And I don't really think there will be any order in stm32 ports :) There are too much small changes between chips, even stm32wl5 which is supposed to be stm32l4 + cm0 had differences. I agree, it would be cool to have single and do-not-repeat-yourself drivers for stm32, but there would be tons of #ifdefs, changing anything would trigger anxiety to anyone - because it could break other stm32 ports.
   
   I don't agree on this. ST uses several versions of IP cores, but the differences within the same IP core version are negligible and usually don't affect the driver implementation.
   Some amount of #ifdefs still seems better than maintaining 9 separate directories and this number will definitely grow.
   
   > These drivers are written by hobbysts or company that uses specific chip. Both of these groups (and especially the company group) don't want to read stm32f4 and stm32l5 (and tens of other chips) documentation, when they want to fix a bug in stm32f0.
   
   That's right and it's understandable, but it isn't good for the project.
   This approach is also contrary to the INVIOLABLES.md:
   
   >   90 │ ### No Short Cuts
     91 │ 
     92 │   - Doing things the easy way instead of the correct way.
     93 │   - Reducing effort at the expense of Quality, Portability, or
     94 │     Consistency.
     95 │   - Focus on the values of the organization, not the values of the Open
     96 │     Source project.  Need to support both.
     97 │   - It takes work to support the Inviolables.  There are no shortcuts.
   
   Fixing a bug for the same IP core version should be easy and not consuming a lot of time, but the current ST ports organization doesn't help.
   Personally, I still think that the approach similar to ChibiOS (https://github.com/ChibiOS/ChibiOS/tree/master/os/hal/ports/STM32) or RIOT-OS (https://github.com/RIOT-OS/RIOT/tree/master/cpu/stm32/periph) is a right way to go. But this is a topic for another discussion ;]
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1214352054

   @mlyszczek could you split Kconfig to a new patch? So, we can merge the uncontested change.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939028157


##########
arch/arm/src/stm32wl5/kconfig.d/configuration.kconfig:
##########
@@ -0,0 +1,4 @@
+source "arch/arm/src/stm32wl5/kconfig.d/configuration/serial.kconfig"

Review Comment:
   why create kconfig.d/configuration/ too?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939499410


##########
boards/arm/stm32wl5/nucleo-wl55jc/Kconfig:
##########
@@ -24,547 +24,8 @@ config ARCH_BOARD_ENABLE_CPU2
 		When enabled, CPU2 (cortex-m0) will be started up. CPU2
 		will be booted after all initialization on CPU1 is done.
 
-menuconfig ARCH_BOARD_IPCC
-	bool "Enabled IPCC"
-	select IPCC
-	select STM32WL5_IPCC
-	default n
-	---help---
-		Enables IPCC (inter processor communication controller)
-		to exchange data between CPU1 and CPU2. Channels are
-		indexed from 0. IPCC will be accessible as character
-		device under "/dev/ipccN" path, where N is an ipcc channel.
-
-if ARCH_BOARD_IPCC
-
-comment "IPCC buffering is off, enable IPCC_BUFFERED to configure buffers"
-	depends on !IPCC_BUFFERED
-
-comment "IPCC channel 1 enabled by default"
-
-config ARCH_BOARD_IPCC_CHAN1_RXBUF
-	int "Channel 1 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN1_TXBUF
-	int "Channel 1 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2
-	bool "Enable channel 2"
-	default n
-	select STM32WL5_IPCC_CHAN2
-
-if ARCH_BOARD_IPCC_CHAN2
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 2 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2_TXBUF
-	int "Channel 2 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3
-	bool "Enable channel 3"
-	default n
-	select STM32WL5_IPCC_CHAN3
-
-if ARCH_BOARD_IPCC_CHAN3
-
-config ARCH_BOARD_IPCC_CHAN3_RXBUF
-	int "Channel 3 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3_TXBUF
-	int "Channel 3 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4
-	bool "Enable channel 4"
-	default n
-	select STM32WL5_IPCC_CHAN4
-
-if ARCH_BOARD_IPCC_CHAN4
-
-config ARCH_BOARD_IPCC_CHAN4_RXBUF
-	int "Channel 4 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4_TXBUF
-	int "Channel 4 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5
-	bool "Enable channel 5"
-	default n
-	select STM32WL5_IPCC_CHAN5
-
-if ARCH_BOARD_IPCC_CHAN5
-
-config ARCH_BOARD_IPCC_CHAN5_RXBUF
-	int "Channel 5 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5_TXBUF
-	int "Channel 5 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6
-	bool "Enable channel 6"
-	default n
-	select STM32WL5_IPCC_CHAN6
-
-if ARCH_BOARD_IPCC_CHAN6
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 6 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6_TXBUF
-	int "Channel 6 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-endif # ARCH_BOARD_IPCC_CHAN6
-endif # ARCH_BOARD_IPCC_CHAN5
-endif # ARCH_BOARD_IPCC_CHAN4
-endif # ARCH_BOARD_IPCC_CHAN3
-endif # ARCH_BOARD_IPCC_CHAN2
-
-endif # ARCH_BOARD_IPCC
-
-menuconfig ARCH_BOARD_FLASH_MOUNT
-	bool "Enable FLASH partitioning and mounting"
-	depends on !DISABLE_MOUNTPOINT
-	select MTD
-	select MTD_PROGMEM
-	select MTD_PARTITION
-	select MTD_PARTITION_NAMES
-	select FS_PROCFS
-	default n
-	---help---
-		When enabled, you will be able to configure partition table
-		for onboard FLASH memory to create and mount flash filesystems.
-		All partition sizes are specified in PAGE_SIZE size. On
-		STM32WL5 page size is always 2048.
-
-		On STM32WL55JC there are 128 pages of flash memory. Size of
-		all configured partitions shall not exceed 128. In fact, it
-		should be equal to 128 or else you will simply have unused
-		space on flash. Even if you want some raw flash access you
-		should specify this partition in table and select fs_raw.
-
-		By default there are only 4 partitions defined, if you need
-		more, you can define more in Kconfig and stm32_flash.c files.
-
-comment "FLASH partitioning and mounting requires !DISABLE_MOUNTPOINT"
-	depends on DISABLE_MOUNTPOINT
-
-if ARCH_BOARD_FLASH_MOUNT
-
-config ARCH_BOARD_FLASH_BL_PROG_SIZE
-	int "Size reserved for bootloader program code"
-	default 0
-	---help---
-		How much memory to reserve for bootloader program code.
-		If you are using bootloader in your application, specify
-		max size of bootloader partition. This memory will be
-		reserved at the beginning of flash, and CPU1 progmem will
-		be right after bootloader.
-
-		If you don't use bootloader and just want to run program
-		directly after reset, set this to 0.
-
-config ARCH_BOARD_FLASH_CPU1_PROG_SIZE
-	int "Size reserved for CPU1 program code"
-	default 127
-	---help---
-		How much memory to reserve for CPU1 program code. This should
-		specified as other partitions will be created at offset to
-		this partition.
-
-config ARCH_BOARD_FLASH_CPU2_PROG_SIZE
-	int "Size reserved for CPU2 program code"
-	default 0
-	---help---
-		How much memory to reserve for CPU2 program code. If you use
-		dual CPU you should specify how much memory you want to
-		reserve for code for second CPU. User partition will be
-		created at this offset. If you don't use CPU2, set this to 0.
-
-config ARCH_BOARD_FLASH_PART1_SIZE
-	int "Size of user partition 1"
-	default 1
-	---help---
-		Size of partition specified in PAGE_SIZE. Page size on
-		stm32wl5xxx is always 2048.
-
-config ARCH_BOARD_FLASH_PART1_NAME
-	string "Name of user partition 1"
-	default "part1"
-	---help---
-		MTD partition name, this can be later read by MTD API,
-		or it can also be read from /proc/partitions to easily
-		identify partitions.
-
-config ARCH_BOARD_FLASH_PART1_MNT
-	string "Mount point for user partition 1"
-	default "/mnt/part1"
-	---help---
-		Directory where filesystem should be mounted.
-
-		Note: not all filesystems can be mounted. rawfs and
-		mtdconfig for example cannot be mounted. In that case
-		this config will be ignored.
-
-config ARCH_BOARD_FLASH_PART1_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 1"
-	default ARCH_BOARD_FLASH_PART1_FS_RAW
-
-config ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	bool "rawfs"
-	---help---
-		Raw block device /dev/mtdblockN will be available to use
-		with standard open(2)/fopen(3) functions.
-
-config ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-	---help---
-		Partition will be used as nxffs. Only one nxffs partition
-		can be enabled at one given time!
-
-config ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-	---help---
-		Partition will be used as smartfs. After first flash, you
-		will have to format partition with "mksmartfs /dev/smartN"
-		command. This has to be done only once unless you change
-		partition table that would affect offsets and/or sizes.
-		Programmers (like openocd) should not touch this memory
-		when flashing new software, unless you exceeded reserved
-		memory for program code.
-
-		Smartfs uses quite substential ammount of FLASH data to
-		get to workable state and mount. Looks like 8 page sizes
-		is absolute minimum (so a 16KiB!).
-
-config ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-	---help---
-		Purpose build filesystem to hold application's configuration.
-		It's not a filesystem per se, as it cannot be mounted and
-		setting and retrieving configuration is done via ioctl(2)
-		calls.
-
-endchoice # Filesystem of user partition 1
-
-config ARCH_BOARD_FLASH_PART2_SIZE
-	int "Size of user partition 2"
-	default 0
-
-if ARCH_BOARD_FLASH_PART2_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART2_NAME
-	string "Name of user partition 2"
-	default "part2"
-
-config ARCH_BOARD_FLASH_PART2_MNT
-	string "Mount point for user partition 2"
-	default "/mnt/part2"
-
-config ARCH_BOARD_FLASH_PART2_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 2"
-	default ARCH_BOARD_FLASH_PART2_FS_RAW
-
-config ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 2
-
-config ARCH_BOARD_FLASH_PART3_SIZE
-	int "Size of user partition 3"
-	default 0
-
-if ARCH_BOARD_FLASH_PART3_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART3_NAME
-	string "Name of user partition 3"
-	default "part3"
-
-config ARCH_BOARD_FLASH_PART3_MNT
-	string "Mount point for user partition 3"
-	default "/mnt/part3"
-
-config ARCH_BOARD_FLASH_PART3_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 3"
-	default ARCH_BOARD_FLASH_PART3_FS_RAW
-
-config ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 3
-
-config ARCH_BOARD_FLASH_PART4_SIZE
-	int "Size of user partition 4"
-	default 0
-
-if ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART4_NAME
-	string "Name of user partition 4"
-	default "part4"
-
-config ARCH_BOARD_FLASH_PART4_MNT
-	string "Mount point for user partition 4"
-	default "/mnt/part4"
-
-config ARCH_BOARD_FLASH_PART4_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 4"
-	default ARCH_BOARD_FLASH_PART4_FS_RAW
-
-config ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 4
-
-endif # ARCH_BOARD_FLASH_PART2_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART3_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-endif # ARCH_BOARD_FLASH_MOUNT
-
-if LCD_SSD1680 && ARCH_BOARD_NUCLEO_WL55JC
-
-menu "E-ink SSD1680 pins config"
-
-choice
-	prompt "Port that handles Chip Select line (output)"
-	default SSD1680_GPIO_CS_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_CS_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_CS_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_CS_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_CS_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_CS_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-config SSD1680_GPIO_PIN_CS
-	int "Pin that select the chip on SPI bus (output)"
-	default "4" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-
-choice
-	prompt "Port that handles Data/!Command line"
-	default SSD1680_GPIO_DTA_CMD_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_DTA_CMD_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_DTA_CMD_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_DTA_CMD_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_DTA_CMD_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_DTA_CMD_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-config SSD1680_GPIO_PIN_DTA_CMD
-	int "Pin that switch between command and data on 4-wire SPI bus"
-	default "9" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-
-choice
-	prompt "Port that handles reset line (output)"
-	default SSD1680_GPIO_RST_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_RST_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_RST_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_RST_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_RST_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_RST_PORTD
-	bool "Port D"
-endchoice
-
-if SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-config SSD1680_GPIO_PIN_RST
-	int "Pin that handles the reset line (output)"
-	default "2" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-
-choice
-	prompt "Port that handles busy line (input)"
-	default SSD1680_GPIO_BUSY_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_BUSY_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_BUSY_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_BUSY_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_BUSY_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_BUSY_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-config SSD1680_GPIO_PIN_BUSY
-	int "Pin that handles the busy line (input)"
-	default "1" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-
-choice
-	prompt "Port that handles power line"
-	default SSD1680_GPIO_PWR_DISABLED if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_PWR_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_PWR_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_PWR_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_PWR_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_PWR_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-config SSD1680_GPIO_PIN_PWR
-	int "Pin that handles the pwr on/off line (output)"
-	range 0 31
-endif #SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-
-
-config SSD1680_SPI_BUS
-	int "Spi bus no"
-	range 1 2
-	default "1"
-endmenu
-
-endif #LCD_SSD1680
+source "boards/arm/stm32wl5/nucleo-wl55jc/kconfig.d/ipcc.kconfig"

Review Comment:
   I agree with Kconfig.xxx. I agree to "compress" the splits a little bit.
   
   I don't agree with not creating directory. Going with this logic then, why do we create hardware directory? We could simply name files like stm32wl5_hardware_rcc.h / stm32wl5_registers_rc.h. There are a lot of peripherals, some have more complicated configurations - like serial can also have configurations for 1wire and rs485 for each port (I did not include them in stm32wl5 as I did not implement nor tested them) which probably will be added in the future. At the end I suspect there might be event 10-15 kconfig files, so I think - just like with hardware directory - it's best to create kconfig.d.
   
   But then again, I am not religious or anything about creating kconfig.d. It's just my point of view and proposition, if I get outvoted then I will change this, no problem.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] raiden00pl commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
raiden00pl commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207208814

   I don't think that splitted Kconfig is a good idea at the moment.
   STM32 ports are already a complete mess, the maintenance and keeping changes between STM32 ports in sync is a nightmare.
   If we decide that all STM32 ports should follow this way, then it is OK. Otherwise we should avoid this change.
   The consistency between STM32 ports should be more important, even if the current solutions are not good.
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939438153


##########
boards/arm/stm32wl5/nucleo-wl55jc/Kconfig:
##########
@@ -24,547 +24,8 @@ config ARCH_BOARD_ENABLE_CPU2
 		When enabled, CPU2 (cortex-m0) will be started up. CPU2
 		will be booted after all initialization on CPU1 is done.
 
-menuconfig ARCH_BOARD_IPCC
-	bool "Enabled IPCC"
-	select IPCC
-	select STM32WL5_IPCC
-	default n
-	---help---
-		Enables IPCC (inter processor communication controller)
-		to exchange data between CPU1 and CPU2. Channels are
-		indexed from 0. IPCC will be accessible as character
-		device under "/dev/ipccN" path, where N is an ipcc channel.
-
-if ARCH_BOARD_IPCC
-
-comment "IPCC buffering is off, enable IPCC_BUFFERED to configure buffers"
-	depends on !IPCC_BUFFERED
-
-comment "IPCC channel 1 enabled by default"
-
-config ARCH_BOARD_IPCC_CHAN1_RXBUF
-	int "Channel 1 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN1_TXBUF
-	int "Channel 1 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2
-	bool "Enable channel 2"
-	default n
-	select STM32WL5_IPCC_CHAN2
-
-if ARCH_BOARD_IPCC_CHAN2
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 2 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2_TXBUF
-	int "Channel 2 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3
-	bool "Enable channel 3"
-	default n
-	select STM32WL5_IPCC_CHAN3
-
-if ARCH_BOARD_IPCC_CHAN3
-
-config ARCH_BOARD_IPCC_CHAN3_RXBUF
-	int "Channel 3 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3_TXBUF
-	int "Channel 3 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4
-	bool "Enable channel 4"
-	default n
-	select STM32WL5_IPCC_CHAN4
-
-if ARCH_BOARD_IPCC_CHAN4
-
-config ARCH_BOARD_IPCC_CHAN4_RXBUF
-	int "Channel 4 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4_TXBUF
-	int "Channel 4 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5
-	bool "Enable channel 5"
-	default n
-	select STM32WL5_IPCC_CHAN5
-
-if ARCH_BOARD_IPCC_CHAN5
-
-config ARCH_BOARD_IPCC_CHAN5_RXBUF
-	int "Channel 5 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5_TXBUF
-	int "Channel 5 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6
-	bool "Enable channel 6"
-	default n
-	select STM32WL5_IPCC_CHAN6
-
-if ARCH_BOARD_IPCC_CHAN6
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 6 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6_TXBUF
-	int "Channel 6 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-endif # ARCH_BOARD_IPCC_CHAN6
-endif # ARCH_BOARD_IPCC_CHAN5
-endif # ARCH_BOARD_IPCC_CHAN4
-endif # ARCH_BOARD_IPCC_CHAN3
-endif # ARCH_BOARD_IPCC_CHAN2
-
-endif # ARCH_BOARD_IPCC
-
-menuconfig ARCH_BOARD_FLASH_MOUNT
-	bool "Enable FLASH partitioning and mounting"
-	depends on !DISABLE_MOUNTPOINT
-	select MTD
-	select MTD_PROGMEM
-	select MTD_PARTITION
-	select MTD_PARTITION_NAMES
-	select FS_PROCFS
-	default n
-	---help---
-		When enabled, you will be able to configure partition table
-		for onboard FLASH memory to create and mount flash filesystems.
-		All partition sizes are specified in PAGE_SIZE size. On
-		STM32WL5 page size is always 2048.
-
-		On STM32WL55JC there are 128 pages of flash memory. Size of
-		all configured partitions shall not exceed 128. In fact, it
-		should be equal to 128 or else you will simply have unused
-		space on flash. Even if you want some raw flash access you
-		should specify this partition in table and select fs_raw.
-
-		By default there are only 4 partitions defined, if you need
-		more, you can define more in Kconfig and stm32_flash.c files.
-
-comment "FLASH partitioning and mounting requires !DISABLE_MOUNTPOINT"
-	depends on DISABLE_MOUNTPOINT
-
-if ARCH_BOARD_FLASH_MOUNT
-
-config ARCH_BOARD_FLASH_BL_PROG_SIZE
-	int "Size reserved for bootloader program code"
-	default 0
-	---help---
-		How much memory to reserve for bootloader program code.
-		If you are using bootloader in your application, specify
-		max size of bootloader partition. This memory will be
-		reserved at the beginning of flash, and CPU1 progmem will
-		be right after bootloader.
-
-		If you don't use bootloader and just want to run program
-		directly after reset, set this to 0.
-
-config ARCH_BOARD_FLASH_CPU1_PROG_SIZE
-	int "Size reserved for CPU1 program code"
-	default 127
-	---help---
-		How much memory to reserve for CPU1 program code. This should
-		specified as other partitions will be created at offset to
-		this partition.
-
-config ARCH_BOARD_FLASH_CPU2_PROG_SIZE
-	int "Size reserved for CPU2 program code"
-	default 0
-	---help---
-		How much memory to reserve for CPU2 program code. If you use
-		dual CPU you should specify how much memory you want to
-		reserve for code for second CPU. User partition will be
-		created at this offset. If you don't use CPU2, set this to 0.
-
-config ARCH_BOARD_FLASH_PART1_SIZE
-	int "Size of user partition 1"
-	default 1
-	---help---
-		Size of partition specified in PAGE_SIZE. Page size on
-		stm32wl5xxx is always 2048.
-
-config ARCH_BOARD_FLASH_PART1_NAME
-	string "Name of user partition 1"
-	default "part1"
-	---help---
-		MTD partition name, this can be later read by MTD API,
-		or it can also be read from /proc/partitions to easily
-		identify partitions.
-
-config ARCH_BOARD_FLASH_PART1_MNT
-	string "Mount point for user partition 1"
-	default "/mnt/part1"
-	---help---
-		Directory where filesystem should be mounted.
-
-		Note: not all filesystems can be mounted. rawfs and
-		mtdconfig for example cannot be mounted. In that case
-		this config will be ignored.
-
-config ARCH_BOARD_FLASH_PART1_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 1"
-	default ARCH_BOARD_FLASH_PART1_FS_RAW
-
-config ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	bool "rawfs"
-	---help---
-		Raw block device /dev/mtdblockN will be available to use
-		with standard open(2)/fopen(3) functions.
-
-config ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-	---help---
-		Partition will be used as nxffs. Only one nxffs partition
-		can be enabled at one given time!
-
-config ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-	---help---
-		Partition will be used as smartfs. After first flash, you
-		will have to format partition with "mksmartfs /dev/smartN"
-		command. This has to be done only once unless you change
-		partition table that would affect offsets and/or sizes.
-		Programmers (like openocd) should not touch this memory
-		when flashing new software, unless you exceeded reserved
-		memory for program code.
-
-		Smartfs uses quite substential ammount of FLASH data to
-		get to workable state and mount. Looks like 8 page sizes
-		is absolute minimum (so a 16KiB!).
-
-config ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-	---help---
-		Purpose build filesystem to hold application's configuration.
-		It's not a filesystem per se, as it cannot be mounted and
-		setting and retrieving configuration is done via ioctl(2)
-		calls.
-
-endchoice # Filesystem of user partition 1
-
-config ARCH_BOARD_FLASH_PART2_SIZE
-	int "Size of user partition 2"
-	default 0
-
-if ARCH_BOARD_FLASH_PART2_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART2_NAME
-	string "Name of user partition 2"
-	default "part2"
-
-config ARCH_BOARD_FLASH_PART2_MNT
-	string "Mount point for user partition 2"
-	default "/mnt/part2"
-
-config ARCH_BOARD_FLASH_PART2_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 2"
-	default ARCH_BOARD_FLASH_PART2_FS_RAW
-
-config ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 2
-
-config ARCH_BOARD_FLASH_PART3_SIZE
-	int "Size of user partition 3"
-	default 0
-
-if ARCH_BOARD_FLASH_PART3_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART3_NAME
-	string "Name of user partition 3"
-	default "part3"
-
-config ARCH_BOARD_FLASH_PART3_MNT
-	string "Mount point for user partition 3"
-	default "/mnt/part3"
-
-config ARCH_BOARD_FLASH_PART3_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 3"
-	default ARCH_BOARD_FLASH_PART3_FS_RAW
-
-config ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 3
-
-config ARCH_BOARD_FLASH_PART4_SIZE
-	int "Size of user partition 4"
-	default 0
-
-if ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART4_NAME
-	string "Name of user partition 4"
-	default "part4"
-
-config ARCH_BOARD_FLASH_PART4_MNT
-	string "Mount point for user partition 4"
-	default "/mnt/part4"
-
-config ARCH_BOARD_FLASH_PART4_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 4"
-	default ARCH_BOARD_FLASH_PART4_FS_RAW
-
-config ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 4
-
-endif # ARCH_BOARD_FLASH_PART2_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART3_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-endif # ARCH_BOARD_FLASH_MOUNT
-
-if LCD_SSD1680 && ARCH_BOARD_NUCLEO_WL55JC
-
-menu "E-ink SSD1680 pins config"
-
-choice
-	prompt "Port that handles Chip Select line (output)"
-	default SSD1680_GPIO_CS_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_CS_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_CS_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_CS_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_CS_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_CS_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-config SSD1680_GPIO_PIN_CS
-	int "Pin that select the chip on SPI bus (output)"
-	default "4" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-
-choice
-	prompt "Port that handles Data/!Command line"
-	default SSD1680_GPIO_DTA_CMD_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_DTA_CMD_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_DTA_CMD_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_DTA_CMD_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_DTA_CMD_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_DTA_CMD_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-config SSD1680_GPIO_PIN_DTA_CMD
-	int "Pin that switch between command and data on 4-wire SPI bus"
-	default "9" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-
-choice
-	prompt "Port that handles reset line (output)"
-	default SSD1680_GPIO_RST_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_RST_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_RST_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_RST_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_RST_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_RST_PORTD
-	bool "Port D"
-endchoice
-
-if SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-config SSD1680_GPIO_PIN_RST
-	int "Pin that handles the reset line (output)"
-	default "2" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-
-choice
-	prompt "Port that handles busy line (input)"
-	default SSD1680_GPIO_BUSY_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_BUSY_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_BUSY_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_BUSY_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_BUSY_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_BUSY_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-config SSD1680_GPIO_PIN_BUSY
-	int "Pin that handles the busy line (input)"
-	default "1" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-
-choice
-	prompt "Port that handles power line"
-	default SSD1680_GPIO_PWR_DISABLED if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_PWR_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_PWR_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_PWR_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_PWR_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_PWR_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-config SSD1680_GPIO_PIN_PWR
-	int "Pin that handles the pwr on/off line (output)"
-	range 0 31
-endif #SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-
-
-config SSD1680_SPI_BUS
-	int "Spi bus no"
-	range 1 2
-	default "1"
-endmenu
-
-endif #LCD_SSD1680
+source "boards/arm/stm32wl5/nucleo-wl55jc/kconfig.d/ipcc.kconfig"

Review Comment:
   How else would you split it then? kconfig.d seemed like best directory to keep all parts of kconfig.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] davids5 commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
davids5 commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207218052

   I could see the benefit for splitting the Kconfig share IP.  Without that gain, it is just more name space that could be subject to misinterpretation and create a bigger problem as it is grown by people with different points of view. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1207838081

   > I don't think that splitted Kconfig is a good idea at the moment. STM32 ports are already a complete mess, the maintenance and keeping changes between STM32 ports in sync is a nightmare. If we decide that all STM32 ports should follow this way, then it is OK. Otherwise we should avoid this change. The consistency between STM32 ports should be more important, even if the current solutions are not good.
   
   This is not a breaking change. All defines stay the same. Testing it seems simple as well, cat+sort and diff should show only blanks and added "source" lines. There is also not much work, especially if we go with flat structure (at most one kconfig.d/ directory, no extra directories in kconfig.d/), which I start thinking is better anyway - structure of these configs is simple enough and there is no added benefit of extra dirs. I'm still convinced single kconfig.d is better then keeping kconfigs in same dir as C files.
   
   That said, I could split Kconfigs in other stm32 ports.
   
   And I don't really think there will be any order in stm32 ports :) There are too much small changes between chips, even stm32wl5 which is supposed to be stm32l4 + cm0 had differences. I agree, it would be cool to have single and do-not-repeat-yourself drivers for stm32, but there would be tons of #ifdefs, changing anything would trigger anxiety to anyone - because it could break other stm32 ports.
   
   These drivers are written by hobbysts or company that uses specific chip. Both of these groups (and especially the company group) don't want to read stm32f4 and stm32l5 (and tens of other chips) documentation, when they want to fix a bug in stm32f0.
   
   I think it's simply to scary.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] acassis commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
acassis commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1206924383

   @mlyszczek you original Kconfig wasn't too big to motivate split it. Almost all Kconfig inside arch/ is way bigget than these.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#issuecomment-1205421458

   @mlyszczek please fix the style warning.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 merged pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 merged PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] mlyszczek commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
mlyszczek commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939499410


##########
boards/arm/stm32wl5/nucleo-wl55jc/Kconfig:
##########
@@ -24,547 +24,8 @@ config ARCH_BOARD_ENABLE_CPU2
 		When enabled, CPU2 (cortex-m0) will be started up. CPU2
 		will be booted after all initialization on CPU1 is done.
 
-menuconfig ARCH_BOARD_IPCC
-	bool "Enabled IPCC"
-	select IPCC
-	select STM32WL5_IPCC
-	default n
-	---help---
-		Enables IPCC (inter processor communication controller)
-		to exchange data between CPU1 and CPU2. Channels are
-		indexed from 0. IPCC will be accessible as character
-		device under "/dev/ipccN" path, where N is an ipcc channel.
-
-if ARCH_BOARD_IPCC
-
-comment "IPCC buffering is off, enable IPCC_BUFFERED to configure buffers"
-	depends on !IPCC_BUFFERED
-
-comment "IPCC channel 1 enabled by default"
-
-config ARCH_BOARD_IPCC_CHAN1_RXBUF
-	int "Channel 1 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN1_TXBUF
-	int "Channel 1 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2
-	bool "Enable channel 2"
-	default n
-	select STM32WL5_IPCC_CHAN2
-
-if ARCH_BOARD_IPCC_CHAN2
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 2 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2_TXBUF
-	int "Channel 2 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3
-	bool "Enable channel 3"
-	default n
-	select STM32WL5_IPCC_CHAN3
-
-if ARCH_BOARD_IPCC_CHAN3
-
-config ARCH_BOARD_IPCC_CHAN3_RXBUF
-	int "Channel 3 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3_TXBUF
-	int "Channel 3 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4
-	bool "Enable channel 4"
-	default n
-	select STM32WL5_IPCC_CHAN4
-
-if ARCH_BOARD_IPCC_CHAN4
-
-config ARCH_BOARD_IPCC_CHAN4_RXBUF
-	int "Channel 4 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4_TXBUF
-	int "Channel 4 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5
-	bool "Enable channel 5"
-	default n
-	select STM32WL5_IPCC_CHAN5
-
-if ARCH_BOARD_IPCC_CHAN5
-
-config ARCH_BOARD_IPCC_CHAN5_RXBUF
-	int "Channel 5 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5_TXBUF
-	int "Channel 5 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6
-	bool "Enable channel 6"
-	default n
-	select STM32WL5_IPCC_CHAN6
-
-if ARCH_BOARD_IPCC_CHAN6
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 6 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6_TXBUF
-	int "Channel 6 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-endif # ARCH_BOARD_IPCC_CHAN6
-endif # ARCH_BOARD_IPCC_CHAN5
-endif # ARCH_BOARD_IPCC_CHAN4
-endif # ARCH_BOARD_IPCC_CHAN3
-endif # ARCH_BOARD_IPCC_CHAN2
-
-endif # ARCH_BOARD_IPCC
-
-menuconfig ARCH_BOARD_FLASH_MOUNT
-	bool "Enable FLASH partitioning and mounting"
-	depends on !DISABLE_MOUNTPOINT
-	select MTD
-	select MTD_PROGMEM
-	select MTD_PARTITION
-	select MTD_PARTITION_NAMES
-	select FS_PROCFS
-	default n
-	---help---
-		When enabled, you will be able to configure partition table
-		for onboard FLASH memory to create and mount flash filesystems.
-		All partition sizes are specified in PAGE_SIZE size. On
-		STM32WL5 page size is always 2048.
-
-		On STM32WL55JC there are 128 pages of flash memory. Size of
-		all configured partitions shall not exceed 128. In fact, it
-		should be equal to 128 or else you will simply have unused
-		space on flash. Even if you want some raw flash access you
-		should specify this partition in table and select fs_raw.
-
-		By default there are only 4 partitions defined, if you need
-		more, you can define more in Kconfig and stm32_flash.c files.
-
-comment "FLASH partitioning and mounting requires !DISABLE_MOUNTPOINT"
-	depends on DISABLE_MOUNTPOINT
-
-if ARCH_BOARD_FLASH_MOUNT
-
-config ARCH_BOARD_FLASH_BL_PROG_SIZE
-	int "Size reserved for bootloader program code"
-	default 0
-	---help---
-		How much memory to reserve for bootloader program code.
-		If you are using bootloader in your application, specify
-		max size of bootloader partition. This memory will be
-		reserved at the beginning of flash, and CPU1 progmem will
-		be right after bootloader.
-
-		If you don't use bootloader and just want to run program
-		directly after reset, set this to 0.
-
-config ARCH_BOARD_FLASH_CPU1_PROG_SIZE
-	int "Size reserved for CPU1 program code"
-	default 127
-	---help---
-		How much memory to reserve for CPU1 program code. This should
-		specified as other partitions will be created at offset to
-		this partition.
-
-config ARCH_BOARD_FLASH_CPU2_PROG_SIZE
-	int "Size reserved for CPU2 program code"
-	default 0
-	---help---
-		How much memory to reserve for CPU2 program code. If you use
-		dual CPU you should specify how much memory you want to
-		reserve for code for second CPU. User partition will be
-		created at this offset. If you don't use CPU2, set this to 0.
-
-config ARCH_BOARD_FLASH_PART1_SIZE
-	int "Size of user partition 1"
-	default 1
-	---help---
-		Size of partition specified in PAGE_SIZE. Page size on
-		stm32wl5xxx is always 2048.
-
-config ARCH_BOARD_FLASH_PART1_NAME
-	string "Name of user partition 1"
-	default "part1"
-	---help---
-		MTD partition name, this can be later read by MTD API,
-		or it can also be read from /proc/partitions to easily
-		identify partitions.
-
-config ARCH_BOARD_FLASH_PART1_MNT
-	string "Mount point for user partition 1"
-	default "/mnt/part1"
-	---help---
-		Directory where filesystem should be mounted.
-
-		Note: not all filesystems can be mounted. rawfs and
-		mtdconfig for example cannot be mounted. In that case
-		this config will be ignored.
-
-config ARCH_BOARD_FLASH_PART1_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 1"
-	default ARCH_BOARD_FLASH_PART1_FS_RAW
-
-config ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	bool "rawfs"
-	---help---
-		Raw block device /dev/mtdblockN will be available to use
-		with standard open(2)/fopen(3) functions.
-
-config ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-	---help---
-		Partition will be used as nxffs. Only one nxffs partition
-		can be enabled at one given time!
-
-config ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-	---help---
-		Partition will be used as smartfs. After first flash, you
-		will have to format partition with "mksmartfs /dev/smartN"
-		command. This has to be done only once unless you change
-		partition table that would affect offsets and/or sizes.
-		Programmers (like openocd) should not touch this memory
-		when flashing new software, unless you exceeded reserved
-		memory for program code.
-
-		Smartfs uses quite substential ammount of FLASH data to
-		get to workable state and mount. Looks like 8 page sizes
-		is absolute minimum (so a 16KiB!).
-
-config ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-	---help---
-		Purpose build filesystem to hold application's configuration.
-		It's not a filesystem per se, as it cannot be mounted and
-		setting and retrieving configuration is done via ioctl(2)
-		calls.
-
-endchoice # Filesystem of user partition 1
-
-config ARCH_BOARD_FLASH_PART2_SIZE
-	int "Size of user partition 2"
-	default 0
-
-if ARCH_BOARD_FLASH_PART2_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART2_NAME
-	string "Name of user partition 2"
-	default "part2"
-
-config ARCH_BOARD_FLASH_PART2_MNT
-	string "Mount point for user partition 2"
-	default "/mnt/part2"
-
-config ARCH_BOARD_FLASH_PART2_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 2"
-	default ARCH_BOARD_FLASH_PART2_FS_RAW
-
-config ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 2
-
-config ARCH_BOARD_FLASH_PART3_SIZE
-	int "Size of user partition 3"
-	default 0
-
-if ARCH_BOARD_FLASH_PART3_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART3_NAME
-	string "Name of user partition 3"
-	default "part3"
-
-config ARCH_BOARD_FLASH_PART3_MNT
-	string "Mount point for user partition 3"
-	default "/mnt/part3"
-
-config ARCH_BOARD_FLASH_PART3_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 3"
-	default ARCH_BOARD_FLASH_PART3_FS_RAW
-
-config ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 3
-
-config ARCH_BOARD_FLASH_PART4_SIZE
-	int "Size of user partition 4"
-	default 0
-
-if ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART4_NAME
-	string "Name of user partition 4"
-	default "part4"
-
-config ARCH_BOARD_FLASH_PART4_MNT
-	string "Mount point for user partition 4"
-	default "/mnt/part4"
-
-config ARCH_BOARD_FLASH_PART4_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 4"
-	default ARCH_BOARD_FLASH_PART4_FS_RAW
-
-config ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 4
-
-endif # ARCH_BOARD_FLASH_PART2_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART3_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-endif # ARCH_BOARD_FLASH_MOUNT
-
-if LCD_SSD1680 && ARCH_BOARD_NUCLEO_WL55JC
-
-menu "E-ink SSD1680 pins config"
-
-choice
-	prompt "Port that handles Chip Select line (output)"
-	default SSD1680_GPIO_CS_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_CS_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_CS_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_CS_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_CS_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_CS_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-config SSD1680_GPIO_PIN_CS
-	int "Pin that select the chip on SPI bus (output)"
-	default "4" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-
-choice
-	prompt "Port that handles Data/!Command line"
-	default SSD1680_GPIO_DTA_CMD_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_DTA_CMD_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_DTA_CMD_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_DTA_CMD_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_DTA_CMD_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_DTA_CMD_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-config SSD1680_GPIO_PIN_DTA_CMD
-	int "Pin that switch between command and data on 4-wire SPI bus"
-	default "9" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-
-choice
-	prompt "Port that handles reset line (output)"
-	default SSD1680_GPIO_RST_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_RST_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_RST_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_RST_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_RST_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_RST_PORTD
-	bool "Port D"
-endchoice
-
-if SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-config SSD1680_GPIO_PIN_RST
-	int "Pin that handles the reset line (output)"
-	default "2" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-
-choice
-	prompt "Port that handles busy line (input)"
-	default SSD1680_GPIO_BUSY_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_BUSY_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_BUSY_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_BUSY_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_BUSY_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_BUSY_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-config SSD1680_GPIO_PIN_BUSY
-	int "Pin that handles the busy line (input)"
-	default "1" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-
-choice
-	prompt "Port that handles power line"
-	default SSD1680_GPIO_PWR_DISABLED if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_PWR_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_PWR_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_PWR_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_PWR_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_PWR_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-config SSD1680_GPIO_PIN_PWR
-	int "Pin that handles the pwr on/off line (output)"
-	range 0 31
-endif #SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-
-
-config SSD1680_SPI_BUS
-	int "Spi bus no"
-	range 1 2
-	default "1"
-endmenu
-
-endif #LCD_SSD1680
+source "boards/arm/stm32wl5/nucleo-wl55jc/kconfig.d/ipcc.kconfig"

Review Comment:
   I agree with Kconfig.xxx. I agree to "compress" the splits a little bit.
   
   I don't agree with not creating directory. Going with this logic then, why do we create hardware directory? We could simply name files like stm32wl5_hardware_rcc.h / stm32wl5_registers_rc.h. There are a lot of peripherals, some have more complicated configurations - like serial can also have configurations for 1wire and rs485 for each port (I did not include them in stm32wl5 as I did not implement nor tested them) which probably will be added in the future. At the end I suspect there might be even 10-15 kconfig files, so I think - just like with hardware directory - it's best to create kconfig.d.
   
   But then again, I am not religious or anything about creating kconfig.d. It's just my point of view and proposition, if I get outvoted then I will change this, no problem.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939496702


##########
boards/arm/stm32wl5/nucleo-wl55jc/Kconfig:
##########
@@ -24,547 +24,8 @@ config ARCH_BOARD_ENABLE_CPU2
 		When enabled, CPU2 (cortex-m0) will be started up. CPU2
 		will be booted after all initialization on CPU1 is done.
 
-menuconfig ARCH_BOARD_IPCC
-	bool "Enabled IPCC"
-	select IPCC
-	select STM32WL5_IPCC
-	default n
-	---help---
-		Enables IPCC (inter processor communication controller)
-		to exchange data between CPU1 and CPU2. Channels are
-		indexed from 0. IPCC will be accessible as character
-		device under "/dev/ipccN" path, where N is an ipcc channel.
-
-if ARCH_BOARD_IPCC
-
-comment "IPCC buffering is off, enable IPCC_BUFFERED to configure buffers"
-	depends on !IPCC_BUFFERED
-
-comment "IPCC channel 1 enabled by default"
-
-config ARCH_BOARD_IPCC_CHAN1_RXBUF
-	int "Channel 1 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN1_TXBUF
-	int "Channel 1 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2
-	bool "Enable channel 2"
-	default n
-	select STM32WL5_IPCC_CHAN2
-
-if ARCH_BOARD_IPCC_CHAN2
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 2 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2_TXBUF
-	int "Channel 2 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3
-	bool "Enable channel 3"
-	default n
-	select STM32WL5_IPCC_CHAN3
-
-if ARCH_BOARD_IPCC_CHAN3
-
-config ARCH_BOARD_IPCC_CHAN3_RXBUF
-	int "Channel 3 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3_TXBUF
-	int "Channel 3 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4
-	bool "Enable channel 4"
-	default n
-	select STM32WL5_IPCC_CHAN4
-
-if ARCH_BOARD_IPCC_CHAN4
-
-config ARCH_BOARD_IPCC_CHAN4_RXBUF
-	int "Channel 4 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4_TXBUF
-	int "Channel 4 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5
-	bool "Enable channel 5"
-	default n
-	select STM32WL5_IPCC_CHAN5
-
-if ARCH_BOARD_IPCC_CHAN5
-
-config ARCH_BOARD_IPCC_CHAN5_RXBUF
-	int "Channel 5 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5_TXBUF
-	int "Channel 5 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6
-	bool "Enable channel 6"
-	default n
-	select STM32WL5_IPCC_CHAN6
-
-if ARCH_BOARD_IPCC_CHAN6
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 6 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6_TXBUF
-	int "Channel 6 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-endif # ARCH_BOARD_IPCC_CHAN6
-endif # ARCH_BOARD_IPCC_CHAN5
-endif # ARCH_BOARD_IPCC_CHAN4
-endif # ARCH_BOARD_IPCC_CHAN3
-endif # ARCH_BOARD_IPCC_CHAN2
-
-endif # ARCH_BOARD_IPCC
-
-menuconfig ARCH_BOARD_FLASH_MOUNT
-	bool "Enable FLASH partitioning and mounting"
-	depends on !DISABLE_MOUNTPOINT
-	select MTD
-	select MTD_PROGMEM
-	select MTD_PARTITION
-	select MTD_PARTITION_NAMES
-	select FS_PROCFS
-	default n
-	---help---
-		When enabled, you will be able to configure partition table
-		for onboard FLASH memory to create and mount flash filesystems.
-		All partition sizes are specified in PAGE_SIZE size. On
-		STM32WL5 page size is always 2048.
-
-		On STM32WL55JC there are 128 pages of flash memory. Size of
-		all configured partitions shall not exceed 128. In fact, it
-		should be equal to 128 or else you will simply have unused
-		space on flash. Even if you want some raw flash access you
-		should specify this partition in table and select fs_raw.
-
-		By default there are only 4 partitions defined, if you need
-		more, you can define more in Kconfig and stm32_flash.c files.
-
-comment "FLASH partitioning and mounting requires !DISABLE_MOUNTPOINT"
-	depends on DISABLE_MOUNTPOINT
-
-if ARCH_BOARD_FLASH_MOUNT
-
-config ARCH_BOARD_FLASH_BL_PROG_SIZE
-	int "Size reserved for bootloader program code"
-	default 0
-	---help---
-		How much memory to reserve for bootloader program code.
-		If you are using bootloader in your application, specify
-		max size of bootloader partition. This memory will be
-		reserved at the beginning of flash, and CPU1 progmem will
-		be right after bootloader.
-
-		If you don't use bootloader and just want to run program
-		directly after reset, set this to 0.
-
-config ARCH_BOARD_FLASH_CPU1_PROG_SIZE
-	int "Size reserved for CPU1 program code"
-	default 127
-	---help---
-		How much memory to reserve for CPU1 program code. This should
-		specified as other partitions will be created at offset to
-		this partition.
-
-config ARCH_BOARD_FLASH_CPU2_PROG_SIZE
-	int "Size reserved for CPU2 program code"
-	default 0
-	---help---
-		How much memory to reserve for CPU2 program code. If you use
-		dual CPU you should specify how much memory you want to
-		reserve for code for second CPU. User partition will be
-		created at this offset. If you don't use CPU2, set this to 0.
-
-config ARCH_BOARD_FLASH_PART1_SIZE
-	int "Size of user partition 1"
-	default 1
-	---help---
-		Size of partition specified in PAGE_SIZE. Page size on
-		stm32wl5xxx is always 2048.
-
-config ARCH_BOARD_FLASH_PART1_NAME
-	string "Name of user partition 1"
-	default "part1"
-	---help---
-		MTD partition name, this can be later read by MTD API,
-		or it can also be read from /proc/partitions to easily
-		identify partitions.
-
-config ARCH_BOARD_FLASH_PART1_MNT
-	string "Mount point for user partition 1"
-	default "/mnt/part1"
-	---help---
-		Directory where filesystem should be mounted.
-
-		Note: not all filesystems can be mounted. rawfs and
-		mtdconfig for example cannot be mounted. In that case
-		this config will be ignored.
-
-config ARCH_BOARD_FLASH_PART1_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 1"
-	default ARCH_BOARD_FLASH_PART1_FS_RAW
-
-config ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	bool "rawfs"
-	---help---
-		Raw block device /dev/mtdblockN will be available to use
-		with standard open(2)/fopen(3) functions.
-
-config ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-	---help---
-		Partition will be used as nxffs. Only one nxffs partition
-		can be enabled at one given time!
-
-config ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-	---help---
-		Partition will be used as smartfs. After first flash, you
-		will have to format partition with "mksmartfs /dev/smartN"
-		command. This has to be done only once unless you change
-		partition table that would affect offsets and/or sizes.
-		Programmers (like openocd) should not touch this memory
-		when flashing new software, unless you exceeded reserved
-		memory for program code.
-
-		Smartfs uses quite substential ammount of FLASH data to
-		get to workable state and mount. Looks like 8 page sizes
-		is absolute minimum (so a 16KiB!).
-
-config ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-	---help---
-		Purpose build filesystem to hold application's configuration.
-		It's not a filesystem per se, as it cannot be mounted and
-		setting and retrieving configuration is done via ioctl(2)
-		calls.
-
-endchoice # Filesystem of user partition 1
-
-config ARCH_BOARD_FLASH_PART2_SIZE
-	int "Size of user partition 2"
-	default 0
-
-if ARCH_BOARD_FLASH_PART2_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART2_NAME
-	string "Name of user partition 2"
-	default "part2"
-
-config ARCH_BOARD_FLASH_PART2_MNT
-	string "Mount point for user partition 2"
-	default "/mnt/part2"
-
-config ARCH_BOARD_FLASH_PART2_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 2"
-	default ARCH_BOARD_FLASH_PART2_FS_RAW
-
-config ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 2
-
-config ARCH_BOARD_FLASH_PART3_SIZE
-	int "Size of user partition 3"
-	default 0
-
-if ARCH_BOARD_FLASH_PART3_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART3_NAME
-	string "Name of user partition 3"
-	default "part3"
-
-config ARCH_BOARD_FLASH_PART3_MNT
-	string "Mount point for user partition 3"
-	default "/mnt/part3"
-
-config ARCH_BOARD_FLASH_PART3_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 3"
-	default ARCH_BOARD_FLASH_PART3_FS_RAW
-
-config ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 3
-
-config ARCH_BOARD_FLASH_PART4_SIZE
-	int "Size of user partition 4"
-	default 0
-
-if ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART4_NAME
-	string "Name of user partition 4"
-	default "part4"
-
-config ARCH_BOARD_FLASH_PART4_MNT
-	string "Mount point for user partition 4"
-	default "/mnt/part4"
-
-config ARCH_BOARD_FLASH_PART4_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 4"
-	default ARCH_BOARD_FLASH_PART4_FS_RAW
-
-config ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 4
-
-endif # ARCH_BOARD_FLASH_PART2_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART3_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-endif # ARCH_BOARD_FLASH_MOUNT
-
-if LCD_SSD1680 && ARCH_BOARD_NUCLEO_WL55JC
-
-menu "E-ink SSD1680 pins config"
-
-choice
-	prompt "Port that handles Chip Select line (output)"
-	default SSD1680_GPIO_CS_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_CS_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_CS_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_CS_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_CS_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_CS_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-config SSD1680_GPIO_PIN_CS
-	int "Pin that select the chip on SPI bus (output)"
-	default "4" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-
-choice
-	prompt "Port that handles Data/!Command line"
-	default SSD1680_GPIO_DTA_CMD_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_DTA_CMD_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_DTA_CMD_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_DTA_CMD_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_DTA_CMD_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_DTA_CMD_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-config SSD1680_GPIO_PIN_DTA_CMD
-	int "Pin that switch between command and data on 4-wire SPI bus"
-	default "9" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-
-choice
-	prompt "Port that handles reset line (output)"
-	default SSD1680_GPIO_RST_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_RST_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_RST_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_RST_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_RST_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_RST_PORTD
-	bool "Port D"
-endchoice
-
-if SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-config SSD1680_GPIO_PIN_RST
-	int "Pin that handles the reset line (output)"
-	default "2" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-
-choice
-	prompt "Port that handles busy line (input)"
-	default SSD1680_GPIO_BUSY_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_BUSY_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_BUSY_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_BUSY_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_BUSY_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_BUSY_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-config SSD1680_GPIO_PIN_BUSY
-	int "Pin that handles the busy line (input)"
-	default "1" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-
-choice
-	prompt "Port that handles power line"
-	default SSD1680_GPIO_PWR_DISABLED if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_PWR_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_PWR_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_PWR_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_PWR_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_PWR_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-config SSD1680_GPIO_PIN_PWR
-	int "Pin that handles the pwr on/off line (output)"
-	range 0 31
-endif #SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-
-
-config SSD1680_SPI_BUS
-	int "Spi bus no"
-	range 1 2
-	default "1"
-endmenu
-
-endif #LCD_SSD1680
+source "boards/arm/stm32wl5/nucleo-wl55jc/kconfig.d/ipcc.kconfig"

Review Comment:
   I saw other project split Kconfig to small part, but all these files belong to the same directory of Makefile or source file.
   For examples, https://github.com/torvalds/linux/tree/master/lib:
   ```
   Kconfig
   Kconfig.debug
   Kconfig.kasan
   Kconfig.kcsan
   Kconfig.kfence
   Kconfig.kgdb
   Kconfig.ubsan
   ```
   I would prefer to follow Linux practice that:
   
   1. Name the splitted config as Kconfig.xxx
   2. Don't create the new directory for Kconfig 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939496702


##########
boards/arm/stm32wl5/nucleo-wl55jc/Kconfig:
##########
@@ -24,547 +24,8 @@ config ARCH_BOARD_ENABLE_CPU2
 		When enabled, CPU2 (cortex-m0) will be started up. CPU2
 		will be booted after all initialization on CPU1 is done.
 
-menuconfig ARCH_BOARD_IPCC
-	bool "Enabled IPCC"
-	select IPCC
-	select STM32WL5_IPCC
-	default n
-	---help---
-		Enables IPCC (inter processor communication controller)
-		to exchange data between CPU1 and CPU2. Channels are
-		indexed from 0. IPCC will be accessible as character
-		device under "/dev/ipccN" path, where N is an ipcc channel.
-
-if ARCH_BOARD_IPCC
-
-comment "IPCC buffering is off, enable IPCC_BUFFERED to configure buffers"
-	depends on !IPCC_BUFFERED
-
-comment "IPCC channel 1 enabled by default"
-
-config ARCH_BOARD_IPCC_CHAN1_RXBUF
-	int "Channel 1 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN1_TXBUF
-	int "Channel 1 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2
-	bool "Enable channel 2"
-	default n
-	select STM32WL5_IPCC_CHAN2
-
-if ARCH_BOARD_IPCC_CHAN2
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 2 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2_TXBUF
-	int "Channel 2 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3
-	bool "Enable channel 3"
-	default n
-	select STM32WL5_IPCC_CHAN3
-
-if ARCH_BOARD_IPCC_CHAN3
-
-config ARCH_BOARD_IPCC_CHAN3_RXBUF
-	int "Channel 3 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3_TXBUF
-	int "Channel 3 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4
-	bool "Enable channel 4"
-	default n
-	select STM32WL5_IPCC_CHAN4
-
-if ARCH_BOARD_IPCC_CHAN4
-
-config ARCH_BOARD_IPCC_CHAN4_RXBUF
-	int "Channel 4 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4_TXBUF
-	int "Channel 4 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5
-	bool "Enable channel 5"
-	default n
-	select STM32WL5_IPCC_CHAN5
-
-if ARCH_BOARD_IPCC_CHAN5
-
-config ARCH_BOARD_IPCC_CHAN5_RXBUF
-	int "Channel 5 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5_TXBUF
-	int "Channel 5 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6
-	bool "Enable channel 6"
-	default n
-	select STM32WL5_IPCC_CHAN6
-
-if ARCH_BOARD_IPCC_CHAN6
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 6 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6_TXBUF
-	int "Channel 6 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-endif # ARCH_BOARD_IPCC_CHAN6
-endif # ARCH_BOARD_IPCC_CHAN5
-endif # ARCH_BOARD_IPCC_CHAN4
-endif # ARCH_BOARD_IPCC_CHAN3
-endif # ARCH_BOARD_IPCC_CHAN2
-
-endif # ARCH_BOARD_IPCC
-
-menuconfig ARCH_BOARD_FLASH_MOUNT
-	bool "Enable FLASH partitioning and mounting"
-	depends on !DISABLE_MOUNTPOINT
-	select MTD
-	select MTD_PROGMEM
-	select MTD_PARTITION
-	select MTD_PARTITION_NAMES
-	select FS_PROCFS
-	default n
-	---help---
-		When enabled, you will be able to configure partition table
-		for onboard FLASH memory to create and mount flash filesystems.
-		All partition sizes are specified in PAGE_SIZE size. On
-		STM32WL5 page size is always 2048.
-
-		On STM32WL55JC there are 128 pages of flash memory. Size of
-		all configured partitions shall not exceed 128. In fact, it
-		should be equal to 128 or else you will simply have unused
-		space on flash. Even if you want some raw flash access you
-		should specify this partition in table and select fs_raw.
-
-		By default there are only 4 partitions defined, if you need
-		more, you can define more in Kconfig and stm32_flash.c files.
-
-comment "FLASH partitioning and mounting requires !DISABLE_MOUNTPOINT"
-	depends on DISABLE_MOUNTPOINT
-
-if ARCH_BOARD_FLASH_MOUNT
-
-config ARCH_BOARD_FLASH_BL_PROG_SIZE
-	int "Size reserved for bootloader program code"
-	default 0
-	---help---
-		How much memory to reserve for bootloader program code.
-		If you are using bootloader in your application, specify
-		max size of bootloader partition. This memory will be
-		reserved at the beginning of flash, and CPU1 progmem will
-		be right after bootloader.
-
-		If you don't use bootloader and just want to run program
-		directly after reset, set this to 0.
-
-config ARCH_BOARD_FLASH_CPU1_PROG_SIZE
-	int "Size reserved for CPU1 program code"
-	default 127
-	---help---
-		How much memory to reserve for CPU1 program code. This should
-		specified as other partitions will be created at offset to
-		this partition.
-
-config ARCH_BOARD_FLASH_CPU2_PROG_SIZE
-	int "Size reserved for CPU2 program code"
-	default 0
-	---help---
-		How much memory to reserve for CPU2 program code. If you use
-		dual CPU you should specify how much memory you want to
-		reserve for code for second CPU. User partition will be
-		created at this offset. If you don't use CPU2, set this to 0.
-
-config ARCH_BOARD_FLASH_PART1_SIZE
-	int "Size of user partition 1"
-	default 1
-	---help---
-		Size of partition specified in PAGE_SIZE. Page size on
-		stm32wl5xxx is always 2048.
-
-config ARCH_BOARD_FLASH_PART1_NAME
-	string "Name of user partition 1"
-	default "part1"
-	---help---
-		MTD partition name, this can be later read by MTD API,
-		or it can also be read from /proc/partitions to easily
-		identify partitions.
-
-config ARCH_BOARD_FLASH_PART1_MNT
-	string "Mount point for user partition 1"
-	default "/mnt/part1"
-	---help---
-		Directory where filesystem should be mounted.
-
-		Note: not all filesystems can be mounted. rawfs and
-		mtdconfig for example cannot be mounted. In that case
-		this config will be ignored.
-
-config ARCH_BOARD_FLASH_PART1_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 1"
-	default ARCH_BOARD_FLASH_PART1_FS_RAW
-
-config ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	bool "rawfs"
-	---help---
-		Raw block device /dev/mtdblockN will be available to use
-		with standard open(2)/fopen(3) functions.
-
-config ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-	---help---
-		Partition will be used as nxffs. Only one nxffs partition
-		can be enabled at one given time!
-
-config ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-	---help---
-		Partition will be used as smartfs. After first flash, you
-		will have to format partition with "mksmartfs /dev/smartN"
-		command. This has to be done only once unless you change
-		partition table that would affect offsets and/or sizes.
-		Programmers (like openocd) should not touch this memory
-		when flashing new software, unless you exceeded reserved
-		memory for program code.
-
-		Smartfs uses quite substential ammount of FLASH data to
-		get to workable state and mount. Looks like 8 page sizes
-		is absolute minimum (so a 16KiB!).
-
-config ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-	---help---
-		Purpose build filesystem to hold application's configuration.
-		It's not a filesystem per se, as it cannot be mounted and
-		setting and retrieving configuration is done via ioctl(2)
-		calls.
-
-endchoice # Filesystem of user partition 1
-
-config ARCH_BOARD_FLASH_PART2_SIZE
-	int "Size of user partition 2"
-	default 0
-
-if ARCH_BOARD_FLASH_PART2_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART2_NAME
-	string "Name of user partition 2"
-	default "part2"
-
-config ARCH_BOARD_FLASH_PART2_MNT
-	string "Mount point for user partition 2"
-	default "/mnt/part2"
-
-config ARCH_BOARD_FLASH_PART2_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 2"
-	default ARCH_BOARD_FLASH_PART2_FS_RAW
-
-config ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 2
-
-config ARCH_BOARD_FLASH_PART3_SIZE
-	int "Size of user partition 3"
-	default 0
-
-if ARCH_BOARD_FLASH_PART3_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART3_NAME
-	string "Name of user partition 3"
-	default "part3"
-
-config ARCH_BOARD_FLASH_PART3_MNT
-	string "Mount point for user partition 3"
-	default "/mnt/part3"
-
-config ARCH_BOARD_FLASH_PART3_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 3"
-	default ARCH_BOARD_FLASH_PART3_FS_RAW
-
-config ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 3
-
-config ARCH_BOARD_FLASH_PART4_SIZE
-	int "Size of user partition 4"
-	default 0
-
-if ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART4_NAME
-	string "Name of user partition 4"
-	default "part4"
-
-config ARCH_BOARD_FLASH_PART4_MNT
-	string "Mount point for user partition 4"
-	default "/mnt/part4"
-
-config ARCH_BOARD_FLASH_PART4_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 4"
-	default ARCH_BOARD_FLASH_PART4_FS_RAW
-
-config ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 4
-
-endif # ARCH_BOARD_FLASH_PART2_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART3_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-endif # ARCH_BOARD_FLASH_MOUNT
-
-if LCD_SSD1680 && ARCH_BOARD_NUCLEO_WL55JC
-
-menu "E-ink SSD1680 pins config"
-
-choice
-	prompt "Port that handles Chip Select line (output)"
-	default SSD1680_GPIO_CS_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_CS_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_CS_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_CS_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_CS_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_CS_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-config SSD1680_GPIO_PIN_CS
-	int "Pin that select the chip on SPI bus (output)"
-	default "4" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-
-choice
-	prompt "Port that handles Data/!Command line"
-	default SSD1680_GPIO_DTA_CMD_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_DTA_CMD_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_DTA_CMD_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_DTA_CMD_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_DTA_CMD_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_DTA_CMD_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-config SSD1680_GPIO_PIN_DTA_CMD
-	int "Pin that switch between command and data on 4-wire SPI bus"
-	default "9" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-
-choice
-	prompt "Port that handles reset line (output)"
-	default SSD1680_GPIO_RST_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_RST_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_RST_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_RST_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_RST_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_RST_PORTD
-	bool "Port D"
-endchoice
-
-if SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-config SSD1680_GPIO_PIN_RST
-	int "Pin that handles the reset line (output)"
-	default "2" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-
-choice
-	prompt "Port that handles busy line (input)"
-	default SSD1680_GPIO_BUSY_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_BUSY_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_BUSY_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_BUSY_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_BUSY_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_BUSY_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-config SSD1680_GPIO_PIN_BUSY
-	int "Pin that handles the busy line (input)"
-	default "1" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-
-choice
-	prompt "Port that handles power line"
-	default SSD1680_GPIO_PWR_DISABLED if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_PWR_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_PWR_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_PWR_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_PWR_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_PWR_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-config SSD1680_GPIO_PIN_PWR
-	int "Pin that handles the pwr on/off line (output)"
-	range 0 31
-endif #SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-
-
-config SSD1680_SPI_BUS
-	int "Spi bus no"
-	range 1 2
-	default "1"
-endmenu
-
-endif #LCD_SSD1680
+source "boards/arm/stm32wl5/nucleo-wl55jc/kconfig.d/ipcc.kconfig"

Review Comment:
   I saw other project split Kconfig to small part, but all these files belong to the same directory of Makefile or source file.
   For examples, https://github.com/torvalds/linux/tree/master/libKconfig:
   ```
   Kconfig
   Kconfig.debug
   Kconfig.kasan
   Kconfig.kcsan
   Kconfig.kfence
   Kconfig.kgdb
   Kconfig.ubsan
   ```
   I would prefer to follow Linux practice that:
   
   1. Name the splitted config as Kconfig.xxx
   2. Don't create the new directory for Kconfig 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-nuttx] xiaoxiang781216 commented on a diff in pull request #6781: Multiple improvements for stm32wl5 board nucleo-stm32wl5jc

Posted by GitBox <gi...@apache.org>.
xiaoxiang781216 commented on code in PR #6781:
URL: https://github.com/apache/incubator-nuttx/pull/6781#discussion_r939027660


##########
boards/arm/stm32wl5/nucleo-wl55jc/Kconfig:
##########
@@ -24,547 +24,8 @@ config ARCH_BOARD_ENABLE_CPU2
 		When enabled, CPU2 (cortex-m0) will be started up. CPU2
 		will be booted after all initialization on CPU1 is done.
 
-menuconfig ARCH_BOARD_IPCC
-	bool "Enabled IPCC"
-	select IPCC
-	select STM32WL5_IPCC
-	default n
-	---help---
-		Enables IPCC (inter processor communication controller)
-		to exchange data between CPU1 and CPU2. Channels are
-		indexed from 0. IPCC will be accessible as character
-		device under "/dev/ipccN" path, where N is an ipcc channel.
-
-if ARCH_BOARD_IPCC
-
-comment "IPCC buffering is off, enable IPCC_BUFFERED to configure buffers"
-	depends on !IPCC_BUFFERED
-
-comment "IPCC channel 1 enabled by default"
-
-config ARCH_BOARD_IPCC_CHAN1_RXBUF
-	int "Channel 1 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN1_TXBUF
-	int "Channel 1 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2
-	bool "Enable channel 2"
-	default n
-	select STM32WL5_IPCC_CHAN2
-
-if ARCH_BOARD_IPCC_CHAN2
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 2 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN2_TXBUF
-	int "Channel 2 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3
-	bool "Enable channel 3"
-	default n
-	select STM32WL5_IPCC_CHAN3
-
-if ARCH_BOARD_IPCC_CHAN3
-
-config ARCH_BOARD_IPCC_CHAN3_RXBUF
-	int "Channel 3 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN3_TXBUF
-	int "Channel 3 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4
-	bool "Enable channel 4"
-	default n
-	select STM32WL5_IPCC_CHAN4
-
-if ARCH_BOARD_IPCC_CHAN4
-
-config ARCH_BOARD_IPCC_CHAN4_RXBUF
-	int "Channel 4 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN4_TXBUF
-	int "Channel 4 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5
-	bool "Enable channel 5"
-	default n
-	select STM32WL5_IPCC_CHAN5
-
-if ARCH_BOARD_IPCC_CHAN5
-
-config ARCH_BOARD_IPCC_CHAN5_RXBUF
-	int "Channel 5 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN5_TXBUF
-	int "Channel 5 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6
-	bool "Enable channel 6"
-	default n
-	select STM32WL5_IPCC_CHAN6
-
-if ARCH_BOARD_IPCC_CHAN6
-
-config ARCH_BOARD_IPCC_CHAN2_RXBUF
-	int "Channel 6 RX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-config ARCH_BOARD_IPCC_CHAN6_TXBUF
-	int "Channel 6 TX buffer size"
-	default 256
-	depends on IPCC_BUFFERED
-
-endif # ARCH_BOARD_IPCC_CHAN6
-endif # ARCH_BOARD_IPCC_CHAN5
-endif # ARCH_BOARD_IPCC_CHAN4
-endif # ARCH_BOARD_IPCC_CHAN3
-endif # ARCH_BOARD_IPCC_CHAN2
-
-endif # ARCH_BOARD_IPCC
-
-menuconfig ARCH_BOARD_FLASH_MOUNT
-	bool "Enable FLASH partitioning and mounting"
-	depends on !DISABLE_MOUNTPOINT
-	select MTD
-	select MTD_PROGMEM
-	select MTD_PARTITION
-	select MTD_PARTITION_NAMES
-	select FS_PROCFS
-	default n
-	---help---
-		When enabled, you will be able to configure partition table
-		for onboard FLASH memory to create and mount flash filesystems.
-		All partition sizes are specified in PAGE_SIZE size. On
-		STM32WL5 page size is always 2048.
-
-		On STM32WL55JC there are 128 pages of flash memory. Size of
-		all configured partitions shall not exceed 128. In fact, it
-		should be equal to 128 or else you will simply have unused
-		space on flash. Even if you want some raw flash access you
-		should specify this partition in table and select fs_raw.
-
-		By default there are only 4 partitions defined, if you need
-		more, you can define more in Kconfig and stm32_flash.c files.
-
-comment "FLASH partitioning and mounting requires !DISABLE_MOUNTPOINT"
-	depends on DISABLE_MOUNTPOINT
-
-if ARCH_BOARD_FLASH_MOUNT
-
-config ARCH_BOARD_FLASH_BL_PROG_SIZE
-	int "Size reserved for bootloader program code"
-	default 0
-	---help---
-		How much memory to reserve for bootloader program code.
-		If you are using bootloader in your application, specify
-		max size of bootloader partition. This memory will be
-		reserved at the beginning of flash, and CPU1 progmem will
-		be right after bootloader.
-
-		If you don't use bootloader and just want to run program
-		directly after reset, set this to 0.
-
-config ARCH_BOARD_FLASH_CPU1_PROG_SIZE
-	int "Size reserved for CPU1 program code"
-	default 127
-	---help---
-		How much memory to reserve for CPU1 program code. This should
-		specified as other partitions will be created at offset to
-		this partition.
-
-config ARCH_BOARD_FLASH_CPU2_PROG_SIZE
-	int "Size reserved for CPU2 program code"
-	default 0
-	---help---
-		How much memory to reserve for CPU2 program code. If you use
-		dual CPU you should specify how much memory you want to
-		reserve for code for second CPU. User partition will be
-		created at this offset. If you don't use CPU2, set this to 0.
-
-config ARCH_BOARD_FLASH_PART1_SIZE
-	int "Size of user partition 1"
-	default 1
-	---help---
-		Size of partition specified in PAGE_SIZE. Page size on
-		stm32wl5xxx is always 2048.
-
-config ARCH_BOARD_FLASH_PART1_NAME
-	string "Name of user partition 1"
-	default "part1"
-	---help---
-		MTD partition name, this can be later read by MTD API,
-		or it can also be read from /proc/partitions to easily
-		identify partitions.
-
-config ARCH_BOARD_FLASH_PART1_MNT
-	string "Mount point for user partition 1"
-	default "/mnt/part1"
-	---help---
-		Directory where filesystem should be mounted.
-
-		Note: not all filesystems can be mounted. rawfs and
-		mtdconfig for example cannot be mounted. In that case
-		this config will be ignored.
-
-config ARCH_BOARD_FLASH_PART1_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 1"
-	default ARCH_BOARD_FLASH_PART1_FS_RAW
-
-config ARCH_BOARD_FLASH_PART1_FS_RAWFS
-	bool "rawfs"
-	---help---
-		Raw block device /dev/mtdblockN will be available to use
-		with standard open(2)/fopen(3) functions.
-
-config ARCH_BOARD_FLASH_PART1_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-	---help---
-		Partition will be used as nxffs. Only one nxffs partition
-		can be enabled at one given time!
-
-config ARCH_BOARD_FLASH_PART1_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-	---help---
-		Partition will be used as smartfs. After first flash, you
-		will have to format partition with "mksmartfs /dev/smartN"
-		command. This has to be done only once unless you change
-		partition table that would affect offsets and/or sizes.
-		Programmers (like openocd) should not touch this memory
-		when flashing new software, unless you exceeded reserved
-		memory for program code.
-
-		Smartfs uses quite substential ammount of FLASH data to
-		get to workable state and mount. Looks like 8 page sizes
-		is absolute minimum (so a 16KiB!).
-
-config ARCH_BOARD_FLASH_PART1_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-	---help---
-		Purpose build filesystem to hold application's configuration.
-		It's not a filesystem per se, as it cannot be mounted and
-		setting and retrieving configuration is done via ioctl(2)
-		calls.
-
-endchoice # Filesystem of user partition 1
-
-config ARCH_BOARD_FLASH_PART2_SIZE
-	int "Size of user partition 2"
-	default 0
-
-if ARCH_BOARD_FLASH_PART2_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART2_NAME
-	string "Name of user partition 2"
-	default "part2"
-
-config ARCH_BOARD_FLASH_PART2_MNT
-	string "Mount point for user partition 2"
-	default "/mnt/part2"
-
-config ARCH_BOARD_FLASH_PART2_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 2"
-	default ARCH_BOARD_FLASH_PART2_FS_RAW
-
-config ARCH_BOARD_FLASH_PART2_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART2_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART2_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 2
-
-config ARCH_BOARD_FLASH_PART3_SIZE
-	int "Size of user partition 3"
-	default 0
-
-if ARCH_BOARD_FLASH_PART3_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART3_NAME
-	string "Name of user partition 3"
-	default "part3"
-
-config ARCH_BOARD_FLASH_PART3_MNT
-	string "Mount point for user partition 3"
-	default "/mnt/part3"
-
-config ARCH_BOARD_FLASH_PART3_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 3"
-	default ARCH_BOARD_FLASH_PART3_FS_RAW
-
-config ARCH_BOARD_FLASH_PART3_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART3_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART3_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 3
-
-config ARCH_BOARD_FLASH_PART4_SIZE
-	int "Size of user partition 4"
-	default 0
-
-if ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-config ARCH_BOARD_FLASH_PART4_NAME
-	string "Name of user partition 4"
-	default "part4"
-
-config ARCH_BOARD_FLASH_PART4_MNT
-	string "Mount point for user partition 4"
-	default "/mnt/part4"
-
-config ARCH_BOARD_FLASH_PART4_FS
-	string
-	default "rawfs" if ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	default "nxffs" if ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	default "smartfs" if ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	default "mtdconfig" if ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-
-choice
-	prompt "Filesystem of user partition 4"
-	default ARCH_BOARD_FLASH_PART4_FS_RAW
-
-config ARCH_BOARD_FLASH_PART4_FS_RAWFS
-	bool "rawfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_NXFFS
-	select FS_NXFFS
-	bool "nxffs"
-
-config ARCH_BOARD_FLASH_PART4_FS_SMARTFS
-	select FS_SMARTFS
-	select MTD_SMART
-	bool "smartfs"
-
-config ARCH_BOARD_FLASH_PART4_FS_MTDCONFIG
-	select MTD_CONFIG
-	bool "mtdconfig"
-
-endchoice # Filesystem of user partition 4
-
-endif # ARCH_BOARD_FLASH_PART2_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART3_SIZE > 0
-endif # ARCH_BOARD_FLASH_PART4_SIZE > 0
-
-endif # ARCH_BOARD_FLASH_MOUNT
-
-if LCD_SSD1680 && ARCH_BOARD_NUCLEO_WL55JC
-
-menu "E-ink SSD1680 pins config"
-
-choice
-	prompt "Port that handles Chip Select line (output)"
-	default SSD1680_GPIO_CS_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_CS_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_CS_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_CS_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_CS_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_CS_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-config SSD1680_GPIO_PIN_CS
-	int "Pin that select the chip on SPI bus (output)"
-	default "4" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_CS_PORTA || SSD1680_GPIO_CS_PORTB || SSD1680_GPIO_CS_PORTC || SSD1680_GPIO_CS_PORTD
-
-choice
-	prompt "Port that handles Data/!Command line"
-	default SSD1680_GPIO_DTA_CMD_PORTA if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_DTA_CMD_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_DTA_CMD_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_DTA_CMD_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_DTA_CMD_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_DTA_CMD_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-config SSD1680_GPIO_PIN_DTA_CMD
-	int "Pin that switch between command and data on 4-wire SPI bus"
-	default "9" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_DTA_CMD_PORTA || SSD1680_GPIO_DTA_CMD_PORTB || SSD1680_GPIO_DTA_CMD_PORTC || SSD1680_GPIO_DTA_CMD_PORTD
-
-choice
-	prompt "Port that handles reset line (output)"
-	default SSD1680_GPIO_RST_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_RST_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_RST_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_RST_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_RST_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_RST_PORTD
-	bool "Port D"
-endchoice
-
-if SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-config SSD1680_GPIO_PIN_RST
-	int "Pin that handles the reset line (output)"
-	default "2" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_RST_PORTA || SSD1680_GPIO_RST_PORTB || SSD1680_GPIO_RST_PORTC || SSD1680_GPIO_RST_PORTD
-
-choice
-	prompt "Port that handles busy line (input)"
-	default SSD1680_GPIO_BUSY_PORTC if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_BUSY_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_BUSY_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_BUSY_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_BUSY_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_BUSY_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-config SSD1680_GPIO_PIN_BUSY
-	int "Pin that handles the busy line (input)"
-	default "1" if ARCH_BOARD_NUCLEO_WL55JC
-	range 0 15
-endif #SSD1680_GPIO_BUSY_PORTA || SSD1680_GPIO_BUSY_PORTB || SSD1680_GPIO_BUSY_PORTC || SSD1680_GPIO_BUSY_PORTD
-
-choice
-	prompt "Port that handles power line"
-	default SSD1680_GPIO_PWR_DISABLED if ARCH_BOARD_NUCLEO_WL55JC
-
-config SSD1680_GPIO_PWR_DISABLED
-	bool "Not available"
-
-config SSD1680_GPIO_PWR_PORTA
-	bool "Port A"
-
-config SSD1680_GPIO_PWR_PORTB
-	bool "Port B"
-
-config SSD1680_GPIO_PWR_PORTC
-	bool "Port C"
-
-config SSD1680_GPIO_PWR_PORTD
-	bool "Port D"
-
-endchoice
-
-if SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-config SSD1680_GPIO_PIN_PWR
-	int "Pin that handles the pwr on/off line (output)"
-	range 0 31
-endif #SSD1680_GPIO_PWR_PORTA || SSD1680_GPIO_PWR_PORTB || SSD1680_GPIO_PWR_PORTC || SSD1680_GPIO_PWR_PORTD
-
-
-config SSD1680_SPI_BUS
-	int "Spi bus no"
-	range 1 2
-	default "1"
-endmenu
-
-endif #LCD_SSD1680
+source "boards/arm/stm32wl5/nucleo-wl55jc/kconfig.d/ipcc.kconfig"

Review Comment:
   why create kconfig.d folder?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org