diff --git a/arch/risc-v/src/esp32c3/esp32c3_spiflash.c b/arch/risc-v/src/esp32c3/esp32c3_spiflash.c index f2c0ee0477..8003f3db10 100644 --- a/arch/risc-v/src/esp32c3/esp32c3_spiflash.c +++ b/arch/risc-v/src/esp32c3/esp32c3_spiflash.c @@ -290,7 +290,7 @@ static int IRAM_ATTR esp32c3_mmap(struct spiflash_map_req_s *req) } flash_page = MMU_ADDR2PAGE(req->src_addr); - page_cnt = MMU_BYTES2PAGES(req->size); + page_cnt = MMU_BYTES2PAGES(MMU_ADDR2OFF(req->src_addr) + req->size); if (start_page + page_cnt < DROM0_PAGES_END) { diff --git a/arch/xtensa/src/esp32/esp32_spiflash.c b/arch/xtensa/src/esp32/esp32_spiflash.c index 7c085ab3c3..6119e8de9f 100644 --- a/arch/xtensa/src/esp32/esp32_spiflash.c +++ b/arch/xtensa/src/esp32/esp32_spiflash.c @@ -1344,7 +1344,7 @@ static int IRAM_ATTR esp32_mmap(struct esp32_spiflash_s *priv, } flash_page = MMU_ADDR2PAGE(req->src_addr); - page_cnt = MMU_BYTES2PAGES(req->size); + page_cnt = MMU_BYTES2PAGES(MMU_ADDR2OFF(req->src_addr) + req->size); if (start_page + page_cnt < DROM0_PAGES_END) {