fix(cm): deprecate use of NS_TIMER_SWITCHOn AArch64, secure world has it's own EL3 physical timer registersaccessible to secure EL1 in absence of S-EL2. With S-EL2 there isvirtualized view availa
fix(cm): deprecate use of NS_TIMER_SWITCHOn AArch64, secure world has it's own EL3 physical timer registersaccessible to secure EL1 in absence of S-EL2. With S-EL2 there isvirtualized view available for EL1 timer registers. So it isunreasonable for secure world to use non-secure EL1 physical timerregisters. Moreover, the non-secure operating system (Linux in our case)relies heavily on these EL1 physical timer registers for schedulingdecisions. If NS_TIMER_SWITCH is enabled, it simply breaks the preemptionmodel of the non-secure world by disabling non-secure timer interruptsleading to RCU stalls being observed on long running secure world tasks.The only arch timer register which will benefit from context managementis cntkctl_el1: Counter-timer Kernel Control Register. This enables thesecure and non-secure worlds to independently control accesses to EL0for counter-timer registers. This is something that OP-TEE uses toenable ftrace feature for Trusted Applications and SPM_MM uses for EL0access as well.Lets enable context management of cntkctl_el1 by default and deprecateconditional context management of non-secure EL1 physical timerregisters for whom there isn't any upstream user. With that deprecatethis NS_TIMER_SWITCH build option which just adds confusion for theplatform maintainers. It will be eventually dropped followingdeprecation policy of TF-A.Reported-by: Stauffer Thomas MTANA <thomas.stauffer@mt.com>Reported-by: Andrew Davis <afd@ti.com>Change-Id: Ifb3a919dc0bf8c05c38895352de5fe94b4f4387eSigned-off-by: Sumit Garg <sumit.garg@oss.qualcomm.com>
show more ...
refactor(ti): move out k3/common to ti/commonThis will allow us to support more platforms that share commonalitieslike the k3_gicv3, console, helpers, etc.With this new common folder location, we
refactor(ti): move out k3/common to ti/commonThis will allow us to support more platforms that share commonalitieslike the k3_gicv3, console, helpers, etc.With this new common folder location, we can move the previouslycreated ti_bl31_setup file into the new location so it can be sharedacross multiple TI SoCs when need comes.With this, also update all copyright dates.Change-Id: Ie4365e32cd3b4b5870fe2cd03843400506e46265Signed-off-by: Dhruva Gole <d-gole@ti.com>