Good call of you and bodhi, yes wrong timing would explain errors you get, so good idea to back off.
Two ways to do it (they are general, not arch specific):
1) recompile the device tree
2) have uboot modify the device tree
Now the problem with 1) is it needs to be redone every time the kernel is updated, as new device tree blobs come with every kernel. This means my preferred method is 2), I've done this on both BBB and Odroid c2, both of which needed at times device tree modification.
However, with your nand errors, it isn't each to access the flash from current kernel. Also IIRC my nsa325 has the old style uboot that has a function form of command execution, where a function is run, that calls other function, that call yet more functions, that eventuality set up what is needed to boot. Modern uboot tends to work from scripts - which are a tad easier to think about.
So what I'd suggest is first go modifying the device tree approach, see if that works. If we can get a working nand that way, then do the change in uboot instead.
Also if this corrects the problem, it should be flowed upstream to the maintainer - we would want the original deice tree for the nsa310 modififed with timings that work.
Anyway how to modify the device tree. Device tree blobs live in
$this->bbcode_second_pass_code('', '/boot/dtbs')
Find which one you are using. Then we'll need to change it to a source file, for that you'll need dtc:
$this->bbcode_second_pass_code('', 'pacman -Suy dtc')
I think works.
then
$this->bbcode_second_pass_code('', 'dtc -I dtb -O dts file.dtb')
That will expand to a dts file, you can edit it with a text editor - find the relevant terms, and modify.
After that change back into a blob, use the dtc command with input and output reversed.
After that should be able to reboot, you can check the change has happened in /proc/devicetree or is it /sys? Anyway there is a directory there that has the device tree in it.
How to do the uboot method, I'll need to look it up when I have more time. Its a bit complicated ...
sigh, and the timing is common to all nsa3xx devices
https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/kirkwood-nsa3x0-common.dtsiAnd this thread gives the basics of how to do it the uboot method, which you'll have to adapt:
https://archlinuxarm.org/forum/viewtopic.php?f=67&t=12571And reading your other thread, clearly a problem is that you can't boot a device tree kernel, without updating uboot ....