08-25-2016 12:15 AM
If you compile a xilinx kernel 4.6 for any Zynq-7 series board, it will fail to boot from SD card. You'll get lots of errors like this:
mmc0: Timeout waiting for hardware interrupt.
mmcblk0: error -110 transferring data, sector 138110, nr 4, cmd 0
Since kernel 4.5 still booted fine, I did some bisecting, and the problem turned out to be memory protection. In 4.6, this option "CONFIG_DEBUG_RODATA" is enabled by default in the kernel, while in 4.5 the default was disabled. Disabling the option will again make the kernel 4.6 boot successfully.
The zynqmp systems are not affected by this. They appear to use the same Arasan SDIO/MMC controller though, so maybe the ARMv8 platform doesn't trigger this bug.
Compile a 4.4 kernel with the following configuration set and it will also fail to boot, so the root cause of the problem has been in there for a long time already:
08-25-2016 12:26 AM