Skip to content

Commit 1751446

Browse files
authored
Merge pull request #63 from eclipse-threadx/dev
Merge changes ahead of the 202504 release
2 parents 04e385f + c27eb52 commit 1751446

16 files changed

+2021
-1549
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.0.0 FATAL_ERROR)
1+
cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
22

33
# Set up the project
44
project(levelx

common/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ target_sources(${PROJECT_NAME} PRIVATE
2020
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_erase_count_set.c
2121
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_extended_cache_enable.c
2222
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_format.c
23+
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_format_extended.c
2324
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_free_block_list_add.c
2425
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_initialize.c
2526
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_mapped_block_list_add.c
@@ -30,6 +31,7 @@ target_sources(${PROJECT_NAME} PRIVATE
3031
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_metadata_build.c
3132
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_metadata_write.c
3233
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_open.c
34+
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_open_extended.c
3335
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_page_ecc_check.c
3436
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_page_ecc_compute.c
3537
${CMAKE_CURRENT_LIST_DIR}/src/lx_nand_flash_partial_defragment.c
@@ -52,6 +54,8 @@ target_sources(${PROJECT_NAME} PRIVATE
5254
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_logical_sector_find.c
5355
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_next_block_to_erase_find.c
5456
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_open.c
57+
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_open_extended.c
58+
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_format.c
5559
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_partial_defragment.c
5660
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_physical_sector_allocate.c
5761
${CMAKE_CURRENT_LIST_DIR}/src/lx_nor_flash_sector_mapping_cache_invalidate.c

common/inc/lx_api.h

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/***************************************************************************
2-
* Copyright (c) 2024 Microsoft Corporation
3-
*
2+
* Copyright (c) 2024 Microsoft Corporation
3+
* Portion Copyright (c) 2025 STMicroelectronics
4+
*
45
* This program and the accompanying materials are made available under the
56
* terms of the MIT License which is available at
67
* https://opensource.org/licenses/MIT.
@@ -203,7 +204,9 @@ typedef unsigned long long ULONG64;
203204
#define AZURE_RTOS_LEVELX
204205
#define LEVELX_MAJOR_VERSION 6
205206
#define LEVELX_MINOR_VERSION 4
206-
#define LEVELX_PATCH_VERSION 1
207+
#define LEVELX_PATCH_VERSION 5
208+
#define LEVELX_BUILD_VERSION 202504
209+
#define LEVELX_HOTFIX_VERSION ' '
207210

208211

209212
/* Define general LevelX Constants. */
@@ -528,7 +531,6 @@ typedef struct LX_NAND_FLASH_STRUCT
528531
#endif
529532
UCHAR *lx_nand_flash_page_buffer;
530533
UINT lx_nand_flash_page_buffer_size;
531-
532534
#ifdef LX_THREAD_SAFE_ENABLE
533535

534536
/* When this conditional is used, the LevelX code utilizes a ThreadX mutex for thread
@@ -537,6 +539,8 @@ typedef struct LX_NAND_FLASH_STRUCT
537539
TX_MUTEX lx_nand_flash_mutex;
538540
#endif
539541

542+
/* user data pointer optionally passed by the application to the driver via the lx_nand_flash_open_extended */
543+
VOID *lx_nand_flash_driver_info_ptr;
540544
/* Define the NAND flash control block open next/previous pointers. */
541545
struct LX_NAND_FLASH_STRUCT *lx_nand_flash_open_next,
542546
*lx_nand_flash_open_previous;
@@ -666,7 +670,8 @@ typedef struct LX_NOR_FLASH_STRUCT
666670
a higher layer. */
667671
TX_MUTEX lx_nor_flash_mutex;
668672
#endif
669-
673+
/* user data pointer optionally passed by the application to the driver via the lx_nor_flash_open_extended */
674+
VOID *lx_nor_flash_driver_info_ptr;
670675
/* Define the NOR flash control block open next/previous pointers. */
671676
struct LX_NOR_FLASH_STRUCT *lx_nor_flash_open_next,
672677
*lx_nor_flash_open_previous;
@@ -725,8 +730,10 @@ extern ULONG _lx_nor_flash_opened_cou
725730
#define lx_nand_flash_partial_defragment _lx_nand_flash_partial_defragment
726731
#define lx_nand_flash_extended_cache_enable _lx_nand_flash_extended_cache_enable
727732
#define lx_nand_flash_format _lx_nand_flash_format
733+
#define lx_nand_flash_format_extended _lx_nand_flash_format_extended
728734
#define lx_nand_flash_initialize _lx_nand_flash_initialize
729735
#define lx_nand_flash_open _lx_nand_flash_open
736+
#define lx_nand_flash_open_extended _lx_nand_flash_open_extended
730737
#define lx_nand_flash_page_ecc_check _lx_nand_flash_page_ecc_check
731738
#define lx_nand_flash_page_ecc_compute _lx_nand_flash_page_ecc_compute
732739
#define lx_nand_flash_sector_read _lx_nand_flash_sector_read
@@ -743,7 +750,9 @@ extern ULONG _lx_nor_flash_opened_cou
743750
#define lx_nor_flash_partial_defragment _lx_nor_flash_partial_defragment
744751
#define lx_nor_flash_extended_cache_enable _lx_nor_flash_extended_cache_enable
745752
#define lx_nor_flash_initialize _lx_nor_flash_initialize
753+
#define lx_nor_flash_format _lx_nor_flash_format
746754
#define lx_nor_flash_open _lx_nor_flash_open
755+
#define lx_nor_flash_open_extended _lx_nor_flash_open_extended
747756
#define lx_nor_flash_sector_read _lx_nor_flash_sector_read
748757
#define lx_nor_flash_sector_release _lx_nor_flash_sector_release
749758
#define lx_nor_flash_sector_write _lx_nor_flash_sector_write
@@ -759,7 +768,13 @@ UINT _lx_nand_flash_extended_cache_enable(LX_NAND_FLASH *nand_flash, VOID *m
759768
UINT _lx_nand_flash_format(LX_NAND_FLASH* nand_flash, CHAR* name,
760769
UINT(*nand_driver_initialize)(LX_NAND_FLASH*),
761770
ULONG* memory_ptr, UINT memory_size);
771+
UINT _lx_nand_flash_format_extended(LX_NAND_FLASH* nand_flash, CHAR* name,
772+
UINT(*nand_driver_initialize)(LX_NAND_FLASH*), VOID *nand_driver_info_ptr,
773+
ULONG* memory_ptr, UINT memory_size);
762774
UINT _lx_nand_flash_open(LX_NAND_FLASH *nand_flash, CHAR *name, UINT (*nand_driver_initialize)(LX_NAND_FLASH *), ULONG* memory_ptr, UINT memory_size);
775+
UINT _lx_nand_flash_open_extended(LX_NAND_FLASH *nand_flash, CHAR *name,
776+
UINT (*nand_driver_initialize)(LX_NAND_FLASH *), VOID *nand_driver_info_ptr,
777+
ULONG* memory_ptr, UINT memory_size);
763778
UINT _lx_nand_flash_page_ecc_check(LX_NAND_FLASH *nand_flash, UCHAR *page_buffer, UCHAR *ecc_buffer);
764779
UINT _lx_nand_flash_page_ecc_compute(LX_NAND_FLASH *nand_flash, UCHAR *page_buffer, UCHAR *ecc_buffer);
765780
UINT _lx_nand_flash_partial_defragment(LX_NAND_FLASH *nand_flash, UINT max_blocks);
@@ -774,7 +789,9 @@ UINT _lx_nor_flash_close(LX_NOR_FLASH *nor_flash);
774789
UINT _lx_nor_flash_defragment(LX_NOR_FLASH *nor_flash);
775790
UINT _lx_nor_flash_extended_cache_enable(LX_NOR_FLASH *nor_flash, VOID *memory, ULONG size);
776791
UINT _lx_nor_flash_initialize(void);
792+
UINT _lx_nor_flash_format(LX_NOR_FLASH *nor_flash, CHAR *name, UINT (*nor_driver_initialize)(LX_NOR_FLASH *), VOID *nor_driver_info_ptr);
777793
UINT _lx_nor_flash_open(LX_NOR_FLASH *nor_flash, CHAR *name, UINT (*nor_driver_initialize)(LX_NOR_FLASH *));
794+
UINT _lx_nor_flash_open_extended(LX_NOR_FLASH *nor_flash, CHAR *name, UINT (*nor_driver_initialize)(LX_NOR_FLASH *), VOID *nor_driver_info_ptr);
778795
UINT _lx_nor_flash_partial_defragment(LX_NOR_FLASH *nor_flash, UINT max_blocks);
779796
UINT _lx_nor_flash_sector_read(LX_NOR_FLASH *nor_flash, ULONG logical_sector, VOID *buffer);
780797
UINT _lx_nor_flash_sector_release(LX_NOR_FLASH *nor_flash, ULONG logical_sector);

common/src/lx_nand_flash_block_find.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ UINT _lx_nand_flash_block_find(LX_NAND_FLASH *nand_flash, ULONG logical_sector,
9090
block_mapping_index = logical_sector / nand_flash -> lx_nand_flash_pages_per_block;
9191

9292
/* Check the address range. */
93-
if (block_mapping_index > nand_flash -> lx_nand_flash_block_mapping_table_size / sizeof(*nand_flash -> lx_nand_flash_block_mapping_table))
93+
if (block_mapping_index >= nand_flash -> lx_nand_flash_block_mapping_table_size / sizeof(*nand_flash -> lx_nand_flash_block_mapping_table))
9494
{
9595

9696
/* Out of range, return an error. */

0 commit comments

Comments
 (0)