diff --git a/drivers/at24cxxx/mtd/mtd.c b/drivers/at24cxxx/mtd/mtd.c index 1a69469d6c..47f581d112 100644 --- a/drivers/at24cxxx/mtd/mtd.c +++ b/drivers/at24cxxx/mtd/mtd.c @@ -80,5 +80,6 @@ const mtd_desc_t mtd_at24cxxx_driver = { .write = _mtd_at24cxxx_write, .write_page = mtd_at24cxxx_write_page, .erase = _mtd_at24cxxx_erase, - .power = _mtd_at24cxxx_power + .power = _mtd_at24cxxx_power, + .flags = MTD_DRIVER_FLAG_DIRECT_WRITE, }; diff --git a/drivers/at25xxx/mtd/mtd.c b/drivers/at25xxx/mtd/mtd.c index 991de54c97..37d237a3e6 100644 --- a/drivers/at25xxx/mtd/mtd.c +++ b/drivers/at25xxx/mtd/mtd.c @@ -90,4 +90,5 @@ const mtd_desc_t mtd_at25xxx_driver = { .write_page = mtd_at25xxx_write_page, .erase = mtd_at25xxx_erase, .power = mtd_at25xxx_power, + .flags = MTD_DRIVER_FLAG_DIRECT_WRITE, }; diff --git a/drivers/mtd_mci/mtd_mci.c b/drivers/mtd_mci/mtd_mci.c index a1cf194102..f1094f0e6a 100644 --- a/drivers/mtd_mci/mtd_mci.c +++ b/drivers/mtd_mci/mtd_mci.c @@ -143,4 +143,5 @@ const mtd_desc_t mtd_mci_driver = { .write_page = mtd_mci_write_page, .erase_sector = mtd_mci_erase_sector, .power = mtd_mci_power, + .flags = MTD_DRIVER_FLAG_DIRECT_WRITE, }; diff --git a/drivers/mtd_sdcard/mtd_sdcard.c b/drivers/mtd_sdcard/mtd_sdcard.c index bac6382557..466c6e9974 100644 --- a/drivers/mtd_sdcard/mtd_sdcard.c +++ b/drivers/mtd_sdcard/mtd_sdcard.c @@ -158,4 +158,5 @@ const mtd_desc_t mtd_sdcard_driver = { .write_page = mtd_sdcard_write_page, .erase = mtd_sdcard_erase, .power = mtd_sdcard_power, + .flags = MTD_DRIVER_FLAG_DIRECT_WRITE, }; diff --git a/tests/mtd_raw/main.c b/tests/mtd_raw/main.c index e431282290..e9d8f25d9f 100644 --- a/tests/mtd_raw/main.c +++ b/tests/mtd_raw/main.c @@ -406,6 +406,13 @@ static int cmd_test(int argc, char **argv) assert(mtd_read_page(dev, buffer, page_0, offset, sizeof(test_str)) == 0); assert(memcmp(test_str, buffer, sizeof(test_str)) == 0); + /* overwrite first test string, rely on MTD for read-modify-write */ + const char test_str_2[] = "Hello World!"; + offset = 5; + assert(mtd_write_page_hl(dev, test_str_2, page_0, offset, sizeof(test_str_2)) == 0); + assert(mtd_read_page(dev, buffer, page_0, offset, sizeof(test_str_2)) == 0); + assert(memcmp(test_str_2, buffer, sizeof(test_str_2)) == 0); + puts("[SUCCESS]"); free(buffer);