[rtems commit] bsps/aarch64/zynqmp/nand: Erase using offset

Joel Sherrill joel at rtems.org
Fri Oct 27 16:07:23 UTC 2023


Module:    rtems
Branch:    master
Commit:    3339afb82eb198bf7b8a3f8f7d2e51d2f274cd2a
Changeset: http://git.rtems.org/rtems/commit/?id=3339afb82eb198bf7b8a3f8f7d2e51d2f274cd2a

Author:    Kinsey Moore <kinsey.moore at oarcorp.com>
Date:      Wed Oct 18 15:33:45 2023 -0500

bsps/aarch64/zynqmp/nand: Erase using offset

Prefer use of XNandPsu_Erase instead of XNandPsu_EraseBlock since the
XNandPsu driver does not expose the primitives necessary to ensure
device readiness after the operation is complete.

---

 bsps/aarch64/xilinx-zynqmp/jffs2_xnandpsu.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/bsps/aarch64/xilinx-zynqmp/jffs2_xnandpsu.c b/bsps/aarch64/xilinx-zynqmp/jffs2_xnandpsu.c
index ab0eb1ccd5..cf2a7d8192 100644
--- a/bsps/aarch64/xilinx-zynqmp/jffs2_xnandpsu.c
+++ b/bsps/aarch64/xilinx-zynqmp/jffs2_xnandpsu.c
@@ -105,21 +105,15 @@ static int flash_erase(
 {
   XNandPsu *nandpsu = get_flash_control(super)->nandpsu;
   rtems_status_code sc;
-  uint32_t BlockSize = nandpsu->Geometry.BlockSize;
-  uint32_t DeviceSize = nandpsu->Geometry.DeviceSize;
-  uint32_t BlockIndex;
-  uint32_t DeviceIndex;
+  uint64_t BlockSize = nandpsu->Geometry.BlockSize;
 
   if (offset > nandpsu->Geometry.DeviceSize) {
     return -EIO;
   }
 
-  DeviceIndex = offset / DeviceSize;
-  BlockIndex = (offset % DeviceSize) / BlockSize;
-
   /* Perform erase operation. */
   rtems_mutex_lock(&(get_flash_control(super)->access_lock));
-  sc = XNandPsu_EraseBlock(nandpsu, DeviceIndex, BlockIndex);
+  sc = XNandPsu_Erase(nandpsu, RTEMS_ALIGN_DOWN(offset, BlockSize), BlockSize);
   rtems_mutex_unlock(&(get_flash_control(super)->access_lock));
   if (sc ) {
     return -EIO;



More information about the vc mailing list