hw/nand: Support multiple reads following READ STATUS
After receiving READ STATUS command all subsequent IO reads should return the status register value until another command is issued. Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com> [Riku Voipio: Fixes and restructuring patchset] Signed-off-by: Riku Voipio <riku.voipio@iki.fi> [Peter Maydell: More fixes and cleanups for upstream submission] Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Andrzej Zaborowski <andrew.zaborowski@intel.com>
This commit is contained in:
parent
48197dfa6a
commit
d72245fbcf
11
hw/nand.c
11
hw/nand.c
@ -496,9 +496,14 @@ uint32_t nand_getio(NANDFlashState *s)
|
|||||||
for (offset = s->buswidth; offset--;) {
|
for (offset = s->buswidth; offset--;) {
|
||||||
x |= s->ioaddr[offset] << (offset << 3);
|
x |= s->ioaddr[offset] << (offset << 3);
|
||||||
}
|
}
|
||||||
s->addr += s->buswidth;
|
/* after receiving READ STATUS command all subsequent reads will
|
||||||
s->ioaddr += s->buswidth;
|
* return the status register value until another command is issued
|
||||||
s->iolen -= s->buswidth;
|
*/
|
||||||
|
if (s->cmd != NAND_CMD_READSTATUS) {
|
||||||
|
s->addr += s->buswidth;
|
||||||
|
s->ioaddr += s->buswidth;
|
||||||
|
s->iolen -= s->buswidth;
|
||||||
|
}
|
||||||
return x;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user