chore(cm): add MDCR_EL3.RLTE to context managementThe bit is already implicitly zero so no functional change. Adding ithelps fully describe how we expect FEAT_TRF to behave.Change-Id: If7a7881e2
chore(cm): add MDCR_EL3.RLTE to context managementThe bit is already implicitly zero so no functional change. Adding ithelps fully describe how we expect FEAT_TRF to behave.Change-Id: If7a7881e2b50188222ce46265b432d658a664c75Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
show more ...
feat(cm): context switch MDCR_EL3 registerCurrently MDCR_EL3 register value is same for all theworlds(Non-secure, Secure, Realm and Root).With this approach, features enable/disable settingsrem
feat(cm): context switch MDCR_EL3 registerCurrently MDCR_EL3 register value is same for all theworlds(Non-secure, Secure, Realm and Root).With this approach, features enable/disable settingsremain same across all the worlds. This is not ideal asthere must be flexibility in controlling feature as perthe requirements for individual world.The patch addresses this by providing MDCR_EL3 a per worldvalue. Features with identical values for all the worlds aregrouped under ``manage_extensions_common`` API.Change-Id: Ibc068d985fe165d8cb6d0ffb84119bffd743b3d1Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
fix(cm): set MDCR_EL3.{NSPBE, STE} explicitlyWith the introduction of FEAT_RME MDCR_EL3 bits NSPB and NSPBE depend oneach other. The enable code relies on the register being initialised tozero an
fix(cm): set MDCR_EL3.{NSPBE, STE} explicitlyWith the introduction of FEAT_RME MDCR_EL3 bits NSPB and NSPBE depend oneach other. The enable code relies on the register being initialised tozero and omits to reset NSPBE. However, this is not obvious. Reset thebit explicitly to document this.Similarly, reset the STE bit , since it's part of the feature enablement.Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>Change-Id: I3714507bae10042cdccd2b7bc713b31d4cdeb02f
refactor(cpufeat): separate the EL2 and EL3 enablement codeCombining the EL2 and EL3 enablement code necessitates that it must becalled at el3_exit, which is the only place with enough context to
refactor(cpufeat): separate the EL2 and EL3 enablement codeCombining the EL2 and EL3 enablement code necessitates that it must becalled at el3_exit, which is the only place with enough context to makethe decision of what needs to be set.Decouple them to allow them to be called from elsewhere.Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>Change-Id: I147764c42771e7d4100699ec8fae98dac0a505c0
refactor(trf): enable FEAT_TRF for FEAT_STATE_CHECKEDAt the moment we only support FEAT_TRF to be either unconditionallycompiled in, or to be not supported at all.Add support for runtime detecti
refactor(trf): enable FEAT_TRF for FEAT_STATE_CHECKEDAt the moment we only support FEAT_TRF to be either unconditionallycompiled in, or to be not supported at all.Add support for runtime detection (ENABLE_TRF_FOR_NS=2), by splittingis_feat_trf_present() into an ID register reading function and a secondfunction to report the support status. That function considers bothbuild time settings and runtime information (if needed), and is usedbefore we access TRF related registers.Also move the context saving code from assembly to C, and use the newis_feat_trf_supported() function to guard its execution.The FVP platform decided to compile in support unconditionally (=1),even though FEAT_TRF is an ARMv8.4 feature, so is not available with theFVP model's default command line.Change that to the now supported dynamic option (=2), so the rightdecision can be made by the code at runtime.Change-Id: Ia97b01adbe24970a4d837afd463dc5506b7295a3Signed-off-by: Andre Przywara <andre.przywara@arm.com>
feat(trf): enable trace filter control register access from lower NS ELIntroduced a build flag 'ENABLE_TRF_FOR_NS' to enable trace filtercontrol registers access in NS-EL2, or NS-EL1 (when NS-EL2
feat(trf): enable trace filter control register access from lower NS ELIntroduced a build flag 'ENABLE_TRF_FOR_NS' to enable trace filtercontrol registers access in NS-EL2, or NS-EL1 (when NS-EL2 isimplemented but unused).Change-Id: If3f53b8173a5573424b9a405a4bd8c206ffdeb8cSigned-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>