diff --git a/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_DYNAMIC/cfg/vfsconf.h b/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_DYNAMIC/cfg/vfsconf.h
index 79891ae04..7e2f63495 100644
--- a/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_DYNAMIC/cfg/vfsconf.h
+++ b/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_DYNAMIC/cfg/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS FALSE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/cfg/vfsconf.h b/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/cfg/vfsconf.h
index 79891ae04..7e2f63495 100644
--- a/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/cfg/vfsconf.h
+++ b/demos/STM32/RT-STM32G474RE-NUCLEO64-SB_HOST_STATIC/cfg/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS FALSE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-STM32H563ZI-NUCLEO144-SB_HOST_DYNAMIC/cfg/vfsconf.h b/demos/STM32/RT-STM32H563ZI-NUCLEO144-SB_HOST_DYNAMIC/cfg/vfsconf.h
index 79891ae04..7e2f63495 100644
--- a/demos/STM32/RT-STM32H563ZI-NUCLEO144-SB_HOST_DYNAMIC/cfg/vfsconf.h
+++ b/demos/STM32/RT-STM32H563ZI-NUCLEO144-SB_HOST_DYNAMIC/cfg/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS FALSE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-STM32L4R9-DISCOVERY-SB_HOST_DYNAMIC_RAMBOX/cfg/vfsconf.h b/demos/STM32/RT-STM32L4R9-DISCOVERY-SB_HOST_DYNAMIC_RAMBOX/cfg/vfsconf.h
index 34a1ca635..39de412a6 100644
--- a/demos/STM32/RT-STM32L4R9-DISCOVERY-SB_HOST_DYNAMIC_RAMBOX/cfg/vfsconf.h
+++ b/demos/STM32/RT-STM32L4R9-DISCOVERY-SB_HOST_DYNAMIC_RAMBOX/cfg/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS TRUE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-VFS-FATFS/cfg/stm32f407zg_olimex/vfsconf.h b/demos/STM32/RT-VFS-FATFS/cfg/stm32f407zg_olimex/vfsconf.h
index 34a1ca635..39de412a6 100644
--- a/demos/STM32/RT-VFS-FATFS/cfg/stm32f407zg_olimex/vfsconf.h
+++ b/demos/STM32/RT-VFS-FATFS/cfg/stm32f407zg_olimex/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS TRUE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-VFS-FATFS/cfg/stm32f769ni_discovery/vfsconf.h b/demos/STM32/RT-VFS-FATFS/cfg/stm32f769ni_discovery/vfsconf.h
index 34a1ca635..39de412a6 100644
--- a/demos/STM32/RT-VFS-FATFS/cfg/stm32f769ni_discovery/vfsconf.h
+++ b/demos/STM32/RT-VFS-FATFS/cfg/stm32f769ni_discovery/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS TRUE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h b/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h
index 34a1ca635..39de412a6 100644
--- a/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h
+++ b/demos/STM32/RT-VFS-FATFS/cfg/stm32g474re_nucleo64/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS TRUE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-VFS-FATFS/cfg/stm32h735ig_discovery/vfsconf.h b/demos/STM32/RT-VFS-FATFS/cfg/stm32h735ig_discovery/vfsconf.h
index 34a1ca635..39de412a6 100644
--- a/demos/STM32/RT-VFS-FATFS/cfg/stm32h735ig_discovery/vfsconf.h
+++ b/demos/STM32/RT-VFS-FATFS/cfg/stm32h735ig_discovery/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS TRUE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/demos/STM32/RT-VFS-FATFS/cfg/stm32l4r9ai_discovery/vfsconf.h b/demos/STM32/RT-VFS-FATFS/cfg/stm32l4r9ai_discovery/vfsconf.h
index 34a1ca635..39de412a6 100644
--- a/demos/STM32/RT-VFS-FATFS/cfg/stm32l4r9ai_discovery/vfsconf.h
+++ b/demos/STM32/RT-VFS-FATFS/cfg/stm32l4r9ai_discovery/vfsconf.h
@@ -1,5 +1,5 @@
/*
- ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -86,6 +86,13 @@
#define VFS_CFG_ENABLE_DRV_FATFS TRUE
#endif
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS TRUE
+#endif
+
/** @} */
/*===========================================================================*/
@@ -164,6 +171,36 @@
/** @} */
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM 2
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM 1
+#endif
+
+/** @} */
+
#endif /* VFSCONF_H */
/** @} */
diff --git a/tools/ftl/processors/conf/vfsconf/vfsconf.h.ftl b/tools/ftl/processors/conf/vfsconf/vfsconf.h.ftl
new file mode 100644
index 000000000..3893972a8
--- /dev/null
+++ b/tools/ftl/processors/conf/vfsconf/vfsconf.h.ftl
@@ -0,0 +1,217 @@
+[#ftl]
+[#--
+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio.
+
+ This file is part of ChibiOS.
+
+ ChibiOS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ ChibiOS is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ --]
+[@pp.dropOutputFile /]
+[#import "/@lib/libutils.ftl" as utils /]
+[#import "/@lib/liblicense.ftl" as license /]
+[@pp.changeOutputFile name="vfsconf.h" /]
+/*
+[@license.EmitLicenseAsText /]
+*/
+
+/**
+ * @file templates/vfsconf.h
+ * @brief VFS configuration header.
+ *
+ * @addtogroup VFS_CONF
+ * @{
+ */
+
+#ifndef VFSCONF_H
+#define VFSCONF_H
+
+#define _CHIBIOS_VFS_CONF_
+#define _CHIBIOS_VFS_CONF_VER_1_0_
+
+/*===========================================================================*/
+/**
+ * @name VFS general settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Maximum filename length.
+ */
+#if !defined(VFS_CFG_NAMELEN_MAX) || defined(__DOXYGEN__)
+#define VFS_CFG_NAMELEN_MAX ${doc.VFS_CFG_NAMELEN_MAX!"15"}
+#endif
+
+/**
+ * @brief Maximum paths length.
+ */
+#if !defined(VFS_CFG_PATHLEN_MAX) || defined(__DOXYGEN__)
+#define VFS_CFG_PATHLEN_MAX ${doc.VFS_CFG_PATHLEN_MAX!"1023"}
+#endif
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(VFS_CFG_PATHBUFS_NUM) || defined(__DOXYGEN__)
+#define VFS_CFG_PATHBUFS_NUM ${doc.VFS_CFG_PATHBUFS_NUM!"1"}
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name VFS drivers
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Enables the VFS Overlay Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_OVERLAY) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_OVERLAY ${doc.VFS_CFG_ENABLE_DRV_OVERLAY!"TRUE"}
+#endif
+
+/**
+ * @brief Enables the VFS Streams Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_STREAMS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_STREAMS ${doc.VFS_CFG_ENABLE_DRV_STREAMS!"TRUE"}
+#endif
+
+/**
+ * @brief Enables the VFS FatFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_FATFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_FATFS ${doc.VFS_CFG_ENABLE_DRV_FATFS!"TRUE"}
+#endif
+
+/**
+ * @brief Enables the VFS LittleFS Driver.
+ */
+#if !defined(VFS_CFG_ENABLE_DRV_LITTLEFS) || defined(__DOXYGEN__)
+#define VFS_CFG_ENABLE_DRV_LITTLEFS ${doc.VFS_CFG_ENABLE_DRV_LITTLEFS!"TRUE"}
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Overlay driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Maximum number of overlay directories.
+ */
+#if !defined(DRV_CFG_OVERLAY_DRV_MAX) || defined(__DOXYGEN__)
+#define DRV_CFG_OVERLAY_DRV_MAX 2
+#endif
+
+/**
+ * @brief Number of directory nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_OVERLAY_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_OVERLAY_DIR_NODES_NUM 1
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name Streams driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of directory nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_STREAMS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_STREAMS_DIR_NODES_NUM 1
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_STREAMS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_STREAMS_FILE_NODES_NUM 2
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name FatFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Maximum number of FatFS file systems mounted.
+ */
+#if !defined(DRV_CFG_FATFS_FS_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_FATFS_FS_NUM 1
+#endif
+
+/**
+ * @brief Number of directory nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_FATFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_FATFS_DIR_NODES_NUM 1
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_FATFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_FATFS_FILE_NODES_NUM 2
+#endif
+
+/** @} */
+
+/*===========================================================================*/
+/**
+ * @name LittleFS driver settings
+ * @{
+ */
+/*===========================================================================*/
+
+/**
+ * @brief Number of shared path buffers.
+ */
+#if !defined(DRV_CFG_LITTLEFS_DIR_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_DIR_NODES_NUM ${doc.DRV_CFG_LITTLEFS_DIR_NODES_NUM!"2"}
+#endif
+
+/**
+ * @brief Number of file nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_FILE_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_FILE_NODES_NUM ${doc.DRV_CFG_LITTLEFS_FILE_NODES_NUM!"2"}
+#endif
+
+/**
+ * @brief Number of info nodes pre-allocated in the pool.
+ */
+#if !defined(DRV_CFG_LITTLEFS_INFO_NODES_NUM) || defined(__DOXYGEN__)
+#define DRV_CFG_LITTLEFS_INFO_NODES_NUM ${doc.DRV_CFG_LITTLEFS_INFO_NODES_NUM!"1"}
+#endif
+
+/** @} */
+
+#endif /* VFSCONF_H */
+
+/** @} */
diff --git a/tools/updater/halconf.h b/tools/updater/halconf.h
new file mode 100644
index 000000000..71fe44185
--- /dev/null
+++ b/tools/updater/halconf.h
@@ -0,0 +1,85 @@
+/*
+ ChibiOS - Copyright (C) 2006..2024 Giovanni Di Sirio
+
+ Licensed 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.
+*/
+
+/**
+ * @file sb/templates/sbconf.h
+ * @brief Configuration file template.
+ * @details A copy of this file must be placed in each project directory, it
+ * contains the application specific kernel settings.
+ *
+ * @addtogroup SB_CONFIG
+ * @details Sandboxes-related settings and hooks.
+ * @{
+ */
+
+#ifndef SBCONF_H
+#define SBCONF_H
+
+#define __CHIBIOS_SB_CONF__
+#define __CHIBIOS_SB_CONF_VER_3_0__
+
+/**
+ * @brief Sandboxes privileged stack size.
+ */
+#if !defined(SB_CFG_PRIVILEGED_STACK_SIZE) || defined(__DOXYGEN__)
+#define SB_CFG_PRIVILEGED_STACK_SIZE 512
+#endif
+
+/**
+ * @brief Number of memory regions for each sandbox.
+ */
+#if !defined(SB_CFG_NUM_REGIONS) || defined(__DOXYGEN__)
+#define SB_CFG_NUM_REGIONS 2
+#endif
+
+/**
+ * @brief Enables support for sandbox Virtual IRQs.
+ */
+#if !defined(SB_CFG_ENABLE_VRQ) || defined(__DOXYGEN__)
+#define SB_CFG_ENABLE_VRQ TRUE
+#endif
+
+/**
+ * @brief Virtual IRQ to be used for alarm.
+ */
+#if !defined(SB_CFG_ALARM_VRQ) || defined(__DOXYGEN__)
+#define SB_CFG_ALARM_VRQ 0
+#endif
+
+/**
+ * @brief Enables support for sandbox virtualized I/O.
+ */
+#if !defined(SB_CFG_ENABLE_VIO) || defined(__DOXYGEN__)
+#define SB_CFG_ENABLE_VIO TRUE
+#endif
+
+/**
+ * @brief Enables Posix API in sandboxes using VFS.
+ */
+#if !defined(SB_CFG_ENABLE_VFS) || defined(__DOXYGEN__)
+#define SB_CFG_ENABLE_VFS TRUE
+#endif
+
+/**
+ * @brief Number of file descriptors for each sandbox.
+ */
+#if !defined(SB_CFG_FD_NUM) || defined(__DOXYGEN__)
+#define SB_CFG_FD_NUM 12
+#endif
+
+#endif /* SBCONF_H */
+
+/** @} */
diff --git a/tools/updater/update_vfsconf.sh b/tools/updater/update_vfsconf.sh
new file mode 100644
index 000000000..885cd8dff
--- /dev/null
+++ b/tools/updater/update_vfsconf.sh
@@ -0,0 +1,29 @@
+#!/bin/bash
+if [ $# -eq 2 ]
+ then
+ if [ $1 = "rootpath" ]
+ then
+ find $2 -name "vfsconf.h" -exec bash update_vfsconf.sh "{}" \;
+ else
+ echo "Usage: vfsconf.sh [rootpath ]"
+ fi
+elif [ $# -eq 1 ]
+then
+ declare conffile=$(<$1)
+# if egrep -q "" <<< "$conffile"
+# then
+ echo Processing: $1
+ egrep -e "\#define\s+[a-zA-Z0-9_]*\s+[a-zA-Z0-9_]" <<< "$conffile" | sed 's/\#define //g; s/ */=/g' > ./values.txt
+ if ! fmpp -q -C conf.fmpp -S ../ftl/processors/conf/vfsconf
+ then
+ echo
+ echo "aborted"
+ exit 1
+ fi
+ cp ./vfsconf.h $1
+ rm ./vfsconf.h ./values.txt
+# fi
+else
+ echo "Usage: update_vfsconf.sh [rootpath ]"
+ echo " update_vfsconf.sh ]"
+fi