summaryrefslogtreecommitdiffstats
path: root/bsps/shared
diff options
context:
space:
mode:
authorKinsey Moore <kinsey.moore@oarcorp.com>2023-12-02 20:32:45 -0600
committerJoel Sherrill <joel@rtems.org>2023-12-14 13:40:03 -0600
commit437053282dbaf4514081ddccd56cdf68410c85fa (patch)
tree4035367cff2c63fd9ae8569094d108dad9e7827c /bsps/shared
parentbsps/xnandpsu: Mark correct reserved blocks (diff)
downloadrtems-437053282dbaf4514081ddccd56cdf68410c85fa.tar.bz2
bsps/xnandpsu: Constrain block erasure to device
The XNandPsu_EraseBlock function takes a target device and a block offset for erasure. Ensure the block offset is within the size of the target device.
Diffstat (limited to 'bsps/shared')
-rw-r--r--bsps/shared/dev/nand/xnandpsu.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/bsps/shared/dev/nand/xnandpsu.c b/bsps/shared/dev/nand/xnandpsu.c
index db4e625e5a..65c58b7e9b 100644
--- a/bsps/shared/dev/nand/xnandpsu.c
+++ b/bsps/shared/dev/nand/xnandpsu.c
@@ -2193,7 +2193,11 @@ s32 XNandPsu_EraseBlock(XNandPsu *InstancePtr, u32 Target, u32 Block)
Xil_AssertNonvoid(InstancePtr != NULL);
Xil_AssertNonvoid(InstancePtr->IsReady == XIL_COMPONENT_IS_READY);
Xil_AssertNonvoid(Target < XNANDPSU_MAX_TARGETS);
+#ifdef __rtems__
+ Xil_AssertNonvoid(Block < InstancePtr->Geometry.NumTargetBlocks);
+#else
Xil_AssertNonvoid(Block < InstancePtr->Geometry.NumBlocks);
+#endif
s32 Status = XST_FAILURE;
u32 Page;