Reading from SPI flash more than 35 bytes causes driver timeout and results to corrupt
This is not an electronics problem. On a SPI bus, the master is in complete control of the timing of any transfer that is initiated. In particular, on a read operation, the slave device can return bad data or no data at all, but it can't affect whether or not the transfer completes.

In other words, the DMA timeout error you're getting is entirely an issue within the Linux kernel or the specific driver you're using. In any case, a more specific answer is going to require a lot more detail from you: What flash chip are you using? What CPU board are you using? What Linux distribution are you using? What are the version numbers of the kernel and any kernel modules and/or device drivers you're using? Do you have links to where these items can be found?