On Sun, Sep 26, 2021 at 10:49:53AM +0800, Bin Meng wrote: > On Sat, Sep 18, 2021 at 12:19 PM Guenter Roeck <[email protected]> wrote: > > > > On 9/17/21 8:09 PM, Cheng, Xuzhou wrote: > > >>> 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. > > > > > > > No problem. Note that I'll be traveling for the next 2-3 weeks, and I won't > > be able > > to test any patches during that time. > > > > I have some updates to share, as I have been working with Xuzhou > internally on this issue for the past days: > > Current mods using BURST_LEN to determine the timing to pull up the CS > line in the SPI controller codes is a workaround. Hardware does not do > this. To understand what real hardware behavior is, Xuzhou used an > oscilloscope to verify our guess. > > It turns out the root cause is elsewhere, and a proper fix will be > sent out soon. >
Thanks a lot for tracking this down! Guenter
