Hi,
I'm pretty sure this is because the U-Boot port on which this preloader is based upon does not fully support this flash.
As seen in the datasheet (
http://www.spansion.com/support/datasheets/s25fl512s_00.pdf), the bit EXTADD of the Bank Address Register is set to 0 by default, and this means that
the FAST_READ (0Bh) command used by U-Boot expects to be followed by a 3-byte address, but since the device is > 16 MB,
U-Boot automatically uses a 4-byte address! So the preloader copies garbage to the DDR, and then tries to run it, the watchdog is
triggered, and so on...
There is also a similar problem related to the Normal or Quad operation.
The changes are not too difficult to implement, but actually Altera pushed last week a commit that adds this support!
So, you can take a look at this commit, and see if it solves your problem:
https://github.com/altera-opensource/u-boot-socfpga/commit/5a47f31c98e6c70185f3423bc82f3414cb25ca2c Hope this helps!