> > I got some free time in the past days to investigate this issue. Guenter is > > right, the Linux imx-spi driver does not work on QEMU. > > > > The reason is that the state of m25p80 machine loops in STATE_READING_DATA > > state after receiving RDSR command, the new command is ignored. Before > > sending a new command, the CS line should be pulled to high, this make the > > state of m25p80 back to IDLE. > > > > I have same point with Guenter, it's that set CS to 1 when burst is zero. > > But i don't think it is necessary to set CS to 0 in imx_spi_flush_txfifo(). > > I will send a new patch to fix this issue. > > > > Thanks a lot for looking into this. If you have a better solution than mine, > by all means, please go for it. As I mentioned in my patch, I didn't really > like it, but I was unable to find a better solution. I am doing some experiment to verify that the new patch is reasonable, so the new patch will be delayed few days.
> > > BTW, the Linux driver uses DMA mode when transfer length is greater than > > the FIFO size, But QEMU imx-spi model doesn't support DMA now. > > Does it have practical impact ? Obviously my tests were somewhat limited (I > was happy to get Linux booting from flash), but I don't recall seeing a > problem. There seem have no practical impact. :)