diff --git a/mcux/mcux-sdk-ng/drivers/xspi/fsl_xspi.c b/mcux/mcux-sdk-ng/drivers/xspi/fsl_xspi.c index a5a2c90451..d223fd783d 100644 --- a/mcux/mcux-sdk-ng/drivers/xspi/fsl_xspi.c +++ b/mcux/mcux-sdk-ng/drivers/xspi/fsl_xspi.c @@ -3054,7 +3054,7 @@ void XSPI_Cache64_InvalidateCacheByRange(uint32_t address, size_t size) { if (size > 0UL) { - uint32_t endAddr = MSDK_REG_SECURE_ADDR(address + size - 0x01U); + uint32_t endAddr = MSDK_REG_SECURE_ADDR(address + size); uint32_t pccReg = 0; /* Align address to cache line size. */ uint32_t startAddr = MSDK_REG_SECURE_ADDR(address & ~((uint32_t)FSL_FEATURE_CACHE64_LINESIZE_BYTE - 1U)); @@ -3070,7 +3070,7 @@ void XSPI_Cache64_InvalidateCacheByRange(uint32_t address, size_t size) return; } base = s_xspi_cache64ctrlBases[instance]; - endLim = MSDK_REG_SECURE_ADDR(phyMemBase[instance] + phyMemSize[instance] - 0x01U); + endLim = MSDK_REG_SECURE_ADDR(phyMemBase[instance] + phyMemSize[instance]); endAddr = endAddr > endLim ? endLim : endAddr; /* Set the invalidate by line command and use the physical address. */ @@ -3120,7 +3120,7 @@ void XSPI_Cache64_CleanCacheByRange(uint32_t address, size_t size) { if (size > 0UL) { - uint32_t endAddr = MSDK_REG_SECURE_ADDR(address + size - 0x01U); + uint32_t endAddr = MSDK_REG_SECURE_ADDR(address + size); uint32_t pccReg = 0; /* Align address to cache line size. */ uint32_t startAddr = MSDK_REG_SECURE_ADDR(address & ~((uint32_t)FSL_FEATURE_CACHE64_LINESIZE_BYTE - 1U)); @@ -3136,7 +3136,7 @@ void XSPI_Cache64_CleanCacheByRange(uint32_t address, size_t size) return; } base = s_xspi_cache64ctrlBases[instance]; - endLim = MSDK_REG_SECURE_ADDR(phyMemBase[instance] + phyMemSize[instance] - 0x01U); + endLim = MSDK_REG_SECURE_ADDR(phyMemBase[instance] + phyMemSize[instance]); endAddr = endAddr > endLim ? endLim : endAddr; /* Set the push by line command. */ @@ -3188,7 +3188,7 @@ void XSPI_Cache64_CleanInvalidateByRange(uint32_t address, size_t size) { if (size > 0UL) { - uint32_t endAddr = MSDK_REG_SECURE_ADDR(address + size - 0x01U); + uint32_t endAddr = MSDK_REG_SECURE_ADDR(address + size); uint32_t pccReg = 0; /* Align address to cache line size. */ uint32_t startAddr = MSDK_REG_SECURE_ADDR(address & ~((uint32_t)FSL_FEATURE_CACHE64_LINESIZE_BYTE - 1U)); @@ -3204,7 +3204,7 @@ void XSPI_Cache64_CleanInvalidateByRange(uint32_t address, size_t size) return; } base = s_xspi_cache64ctrlBases[instance]; - endLim = MSDK_REG_SECURE_ADDR(phyMemBase[instance] + phyMemSize[instance] - 0x01U); + endLim = MSDK_REG_SECURE_ADDR(phyMemBase[instance] + phyMemSize[instance]); endAddr = endAddr > endLim ? endLim : endAddr; /* Set the push by line command. */