arm-trusted-firmware/plat/qti/msm8916
Stephan Gerhold af6447315c feat(msm8916): setup hardware for non-secure world
Booting e.g. Linux in the non-secure world does not work with the
msm8916 port yet because essential hardware is not made available to
the non-secure world. Add more platform initialization to:

  - Initialize the GICv2 and mark secure interrupts.
    Only secure SGIs/PPIs so far. Override the GICD_PIDR2_GICV2
    register address in platform_def.h to avoid a failing assert()
    because of a (hardware) mistake in Qualcomm's GICv2 implementation.

  - Make a timer frame available to the non-secure world.
    The "Qualcomm Timer" (QTMR) implements the ARM generic timer
    specification, so the standard defines (CNTACR_BASE etc)
    can be used.

  - Make parts of the "APCS" register region available to the
    non-secure world, e.g. for CPU frequency control implemented
    in Linux.

  - Initialize a platform-specific register to route all SMMU context
    bank interrupts to the non-secure interrupt pin, since all control
    of the SMMUs is left up to the non-secure world for now.

Change-Id: Icf676437b8e329dead06658e177107dfd0ba4f9d
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
2022-02-03 15:19:26 +01:00
..
aarch64 feat(msm8916): initial platform port 2022-02-03 11:56:22 +01:00
include feat(msm8916): setup hardware for non-secure world 2022-02-03 15:19:26 +01:00
msm8916_bl31_setup.c feat(msm8916): setup hardware for non-secure world 2022-02-03 15:19:26 +01:00
msm8916_gicv2.c feat(msm8916): setup hardware for non-secure world 2022-02-03 15:19:26 +01:00
msm8916_gicv2.h feat(msm8916): setup hardware for non-secure world 2022-02-03 15:19:26 +01:00
msm8916_pm.c feat(msm8916): initial platform port 2022-02-03 11:56:22 +01:00
msm8916_topology.c feat(msm8916): initial platform port 2022-02-03 11:56:22 +01:00
platform.mk feat(msm8916): setup hardware for non-secure world 2022-02-03 15:19:26 +01:00