cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
milosoftware
Scholar
Scholar
3,793 Views
Registered: ‎10-26-2012

Zynq 7000 Boards fail to boot with memory protection enabled

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:

 

# debug
CONFIG_ARM_KERNMEM_PERMS=y
CONFIG_DEBUG_RODATA=y

 

0 Kudos
2 Replies
balkris
Xilinx Employee
Xilinx Employee
3,787 Views
Registered: ‎08-01-2008

check resources here . I am looking into your problem
http://www.wiki.xilinx.com/Build+Linux+for+Zynq-7000+AP+SoC+using+Buildroot
Thanks and Regards
Balkrishan
--------------------------------------------------------------------------------------------
Please mark the post as an answer "Accept as solution" in case it helped resolve your query.
Give kudos in case a post in case it guided to the solution.
0 Kudos
milosoftware
Scholar
Scholar
3,774 Views
Registered: ‎10-26-2012

Wrong link maybe? That one appears to talk about buildroot?

0 Kudos