AnsweredAssumed Answered

What can break branch instructions in Normal World when booting Linux?

Question asked by Darius-Andrei Suciu on Oct 3, 2016
Latest reply on Oct 10, 2016 by TomE

I am trying to run Linux 4.6.7  on a IMX53-QSB board using u-boot 2016 as the bootloader. 

The it boots perfectly fine in Secure Mode, but after configuring u-boot to switch to Normal Mode before launching linux, it causes only certain branch instructions to not work (No instruction is executed at the branch target. The branch target points to the correct address), very early in the Linux start sequence. For example the branch to the start_kernel function hangs.

 

The configuration made before starting linux is the following:

CSU CSL_0-31: 0x00FF00FF

TZIC_INTSEC_0-3: 0xFFFFFFFF

TZIC_PRIOMASK: 0x1F1F1F1F

TZIC_PRIORITY_0-31: 0x1F1F1F1F

TZIC_INTCTRL: 0x80010001

TZIC_SYNCCTRL: 0x00000000

IIM_SCS1: 0x7D

M4IF_WMIS0: 0x80000000 (so no memory should be unrechable)

 

 

 

I previously used the configuration for Linux 2.6.35 and with u-boot-2009 and it worked fine. However,  we now require a Linux with a version >= 4.0 to run.

 

Do you know of some security register, that I missed setting, some Linux patches that need to be applied, or what else could be the cause of this problem?

 

 

Thank you for your help! 

Outcomes