From df4ecd840453d76ebcce50c3d3b11e70d44beb94 Mon Sep 17 00:00:00 2001 From: Xiuwen Cai Date: Thu, 30 Nov 2023 05:23:36 +0000 Subject: [PATCH] Update on 30 Nov 2023. Expand to see details. dd0abfd Fix sequential checking logic 6d0382a Add configuration checks --- common/inc/lx_api.h | 18 +++++++++++++++++- common/src/lx_nand_flash_data_page_copy.c | 10 +++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/common/inc/lx_api.h b/common/inc/lx_api.h index e556902..ed7d43d 100644 --- a/common/inc/lx_api.h +++ b/common/inc/lx_api.h @@ -26,7 +26,7 @@ /* APPLICATION INTERFACE DEFINITION RELEASE */ /* */ /* lx_api.h PORTABLE C */ -/* 6.3.0 */ +/* 6.x */ /* AUTHOR */ /* */ /* William E. Lamie, Microsoft Corporation */ @@ -86,6 +86,9 @@ /* bitmap and obsolete count */ /* cache for NOR flash, */ /* resulting in version 6.3.0 */ +/* xx-xx-xxxx Xiuwen Cai Modified comment(s), */ +/* added configuration checks, */ +/* resulting in version 6.x */ /* */ /**************************************************************************/ @@ -279,6 +282,19 @@ typedef unsigned long long ULONG64; #define LX_NOR_PHYSICAL_SECTOR_FREE 0xFFFFFFFF +/* Check extended cache configurations. */ +#ifdef LX_NOR_DISABLE_EXTENDED_CACHE + +#ifdef LX_NOR_ENABLE_MAPPING_BITMAP +#error "To enable mapping bitmap, you need to undefine LX_NOR_DISABLE_EXTENDED_CACHE." +#endif + +#ifdef LX_NOR_ENABLE_OBSOLETE_COUNT_CACHE +#error "To enable obsolete count cache, you need to undefine LX_NOR_DISABLE_EXTENDED_CACHE." +#endif + +#endif + /* Define NAND flash constants. */ #define LX_NAND_GOOD_BLOCK 0xFF diff --git a/common/src/lx_nand_flash_data_page_copy.c b/common/src/lx_nand_flash_data_page_copy.c index 60fec05..d575f70 100644 --- a/common/src/lx_nand_flash_data_page_copy.c +++ b/common/src/lx_nand_flash_data_page_copy.c @@ -40,7 +40,7 @@ /* FUNCTION RELEASE */ /* */ /* _lx_nand_flash_data_page_copy PORTABLE C */ -/* 6.2.1 */ +/* 6.x */ /* AUTHOR */ /* */ /* Xiuwen Cai, Microsoft Corporation */ @@ -78,7 +78,11 @@ /* */ /* DATE NAME DESCRIPTION */ /* */ -/* 03-08-2023 Xiuwen Cai Initial Version 6.2.1 */ +/* 03-08-2023 Xiuwen Cai Initial Version 6.2.1 */ +/* xx-xx-xxxx Xiuwen Cai Modified comment(s), */ +/* fixed sequential checking */ +/* logic, */ +/* resulting in version 6.x */ /* */ /**************************************************************************/ UINT _lx_nand_flash_data_page_copy(LX_NAND_FLASH* nand_flash, ULONG logical_sector, ULONG source_block, USHORT src_block_status, @@ -168,7 +172,7 @@ ULONG number_of_pages; } /* Check if the pages in destination block is still sequential. */ - if ((destination_page) != (logical_sector + i % nand_flash -> lx_nand_flash_pages_per_block)) + if (destination_page != ((logical_sector + i) % nand_flash -> lx_nand_flash_pages_per_block)) { /* Mark the block status as non sequential. */ dest_block_status |= LX_NAND_BLOCK_STATUS_NON_SEQUENTIAL;