
So leaving 4-byte switched by UBoot SPI chip made it unusable to RockChip Bootrom. I found this by dumping Bootrom and decompiling it.
Sync with engineer working on these area, and get below:
Yes, this "4-byte addressing problem in SPI" issue is in SoCs including rk3328, this only happen
Can we have an explicit list of SoCs affected by this errata please?
I'm not sure this is a problem of the SoC (bootrom). The issue is either board design or flash usage pattern.
If you enable 4byte mode and don't have a hardware reset pin (or don't assert it during board reset) you are likely in trouble.
Have a look at JESD216D. The 16th DWORD lists 6 different software reset methods, there is even a "no software reset instruction is supported". That's also true for the "exit 4byte mode": there is no common way to exit it.
You could try to read the SFDP tables. But that will only work for flash devices with (valid) SFDP.
So in the general case, you are probably f** when you enable the 4 byte mode, boot from that flash and don't have a reset. As mentioned here, you should instead use the 4byte opcodes where possible.
-michael