I would like to know the expected result of reading block data from MTD flash, as per the code below:
#define PHY_ADDR 0x80000000 // certain physical memory location
void *dst;
dst = ioremap(PHY_ADDR,len); // ioremapping
mtd_image->_read(mtd, from, len, retlen, dst); // reading from MTD flash to dst buffer with len length
So will this code write the read data to the physical memory address 0x80000000
? or will just put the data in the pointer dst? Where I can find the read data in the physical memory (using gdb x/16x memory address
for example)?
With
ioremap
you map physical memory to the pointerdst
. This means thatmtd_read
reads the address rangefrom
tofrom + len
on devicemtd
and writes it to physical address0x80000000
through pointerdst
.