Skip to content

Commit 230920c

Browse files
alxelaxnordicjm
authored andcommitted
tests: emds: fix flash_area_write alignment for rram
Zephyr commit c7616308e69 added alignment validation to nrf_rram_write() and nrf_rram_erase(). Write address and length must be multiples of WRITE_LINE_SIZE (16 bytes). In snapshot_make(), data length was rounded up to 4 bytes (sizeof(uint32_t)) before flash_area_write(). This causes -EINVAL on rram targets where write_block_size is 16 bytes. Round up to write_block_size instead. In test_allocation_if_data_garbaged(), garbage buffer was sizeof(struct emds_data_entry) (4 bytes). Increase to EMDS_FLASH_BLOCK_SIZE to satisfy write alignment. Also fix misleading error string ("metadata" -> "data"). Signed-off-by: Aleksandr Khromykh <aleksandr.khromykh@nordicsemi.no>
1 parent 2383e09 commit 230920c

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

  • tests/subsys/emds/emds_flash/src

tests/subsys/emds/emds_flash/src/main.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ snapshot_make(const struct emds_partition *partition,
154154
zassert_ok(flash_area_write(partition->fa, metadata_off, &metadata, sizeof(metadata)),
155155
"Failed to write metadata to flash area");
156156

157-
data_len = ROUND_UP(data_len, sizeof(uint32_t));
157+
data_len = ROUND_UP(data_len, partition->fp->write_block_size);
158158
zassert_ok(flash_area_write(partition->fa, metadata.data_instance_off, data, data_len),
159159
"Failed to write data to flash area");
160160

@@ -531,15 +531,15 @@ ZTEST(emds_flash, test_allocation_if_data_garbaged)
531531
};
532532
const struct flash_area *fa = partition[partition_index].fa;
533533
const struct flash_parameters *fp = partition[partition_index].fp;
534-
uint8_t garbage[sizeof(struct emds_data_entry)];
534+
uint8_t garbage[EMDS_FLASH_BLOCK_SIZE];
535535
int rc;
536536

537537
for (int i = 0; i < sizeof(garbage); i++) {
538538
garbage[i] = sys_rand32_get() % 256;
539539
}
540540

541541
zassert_ok(flash_area_write(fa, 0, &garbage, sizeof(garbage)),
542-
"Failed to write garbage into metadata flash area");
542+
"Failed to write garbage into data flash area");
543543

544544
rc = emds_flash_allocate_snapshot(&partition[partition_index], NULL, &allocated_snapshot,
545545
100);

0 commit comments

Comments
 (0)