| #
5f01b0b1 |
| 24-Aug-2023 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "build(bl32): added check for AARCH32_SP" into integration
|
| #
043f38fd |
| 09-Aug-2023 |
Juan Pablo Conde <juanpablo.conde@arm.com> |
build(bl32): added check for AARCH32_SP
If AACRH32_SP is not specified, it causes the DEFAULT_LINKER_SCRIPT variable to be empty, and then the linker takes the variable following it as if it was the
build(bl32): added check for AARCH32_SP
If AACRH32_SP is not specified, it causes the DEFAULT_LINKER_SCRIPT variable to be empty, and then the linker takes the variable following it as if it was the linker script, which is not one. This patch addresses that issue by requiring the AARCH32_SP variable to be set before continuing.
Change-Id: I21db7d5bd86b98faaa1a1cd3f985daa592556a2d Signed-off-by: Juan Pablo Conde <juanpablo.conde@arm.com>
show more ...
|
| #
d1b5ada8 |
| 19-Jul-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "msm8916-plats" into integration
* changes: docs(msm8916): document new platforms feat(msm8916): add port for MDM9607 refactor(msm8916): handle single core platforms
Merge changes from topic "msm8916-plats" into integration
* changes: docs(msm8916): document new platforms feat(msm8916): add port for MDM9607 refactor(msm8916): handle single core platforms feat(msm8916): add port for MSM8939 feat(msm8916): power on L2 caches for secondary clusters feat(msm8916): initialize CCI-400 for multiple clusters refactor(msm8916): handle multiple CPU clusters feat(msm8916): add port for MSM8909 feat(msm8916): clear CACHE_LOCK for MMU-500 r2p0+ style(msm8916): add missing braces to while statements
show more ...
|
| #
c28e96cd |
| 16-Sep-2022 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): add port for MSM8939
The Qualcomm Snapdragon 615 (MSM8939) SoC is very similar to the existing MSM8916, except for:
- Two clusters with ARM Cortex-A53 cores - CCI-400
Make the e
feat(msm8916): add port for MSM8939
The Qualcomm Snapdragon 615 (MSM8939) SoC is very similar to the existing MSM8916, except for:
- Two clusters with ARM Cortex-A53 cores - CCI-400
Make the existing MSM8916 platform port usable for MSM8939 as well by adding some minimal if statements where necessary plus the platform make files for msm8939.
Change-Id: I8cda83dc642f62222f984a42eec14de5df4c11e3 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
1240dc7e |
| 16-Sep-2022 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): initialize CCI-400 for multiple clusters
The MSM8939 SoC is very similar to MSM8916 but uses an ARM CCI-400 for cache coherence between the two CPU clusters. Add the necessary code to
feat(msm8916): initialize CCI-400 for multiple clusters
The MSM8939 SoC is very similar to MSM8916 but uses an ARM CCI-400 for cache coherence between the two CPU clusters. Add the necessary code to initialize it with the existing driver.
No functional change for platforms with a single cluster. The CCI related code is discarded entirely in this case.
Change-Id: I041d60222d8d2aeca53b392934c87280c66b0db0 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
cf0a75f0 |
| 02-Sep-2022 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): add port for MSM8909
The Qualcomm Snapdragon 210 (MSM8909) SoC is very similar to the existing MSM8916, except for:
- ARM Cortex-A7 instead of Cortex-A53 (AArch32-only) - MMU-500
feat(msm8916): add port for MSM8909
The Qualcomm Snapdragon 210 (MSM8909) SoC is very similar to the existing MSM8916, except for:
- ARM Cortex-A7 instead of Cortex-A53 (AArch32-only) - MMU-500 r2p0 instead of r0p0 (need to clear CACHE_LOCK bit) - Different default BL31 address and UART number
Make the existing MSM8916 platform port usable for MSM8909 as well by adding some minimal if statements where necessary plus the platform make files for msm8909.
Change-Id: I8eca5bd8f2486cc2174562fb5de28f8dffa0d874 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
c4c7efe7 |
| 22-Jun-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes from topic "msm8916-spmin" into integration
* changes: docs(msm8916): document new build options feat(msm8916): allow selecting which UART to use feat(msm8916): add SP_MIN port f
Merge changes from topic "msm8916-spmin" into integration
* changes: docs(msm8916): document new build options feat(msm8916): allow selecting which UART to use feat(msm8916): add SP_MIN port for AArch32 refactor(msm8916): detect cold boot in plat_get_my_entrypoint feat(msm8916): add Test Secure Payload (TSP) port build(msm8916): place bl32 directly after bl31 refactor(msm8916): separate common platform setup code
show more ...
|
| #
aad23f1a |
| 02-Sep-2022 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): allow selecting which UART to use
At the moment the msm8916 platform port always uses UART number 2 for debug output. In some situations it is necessary to change this, either because
feat(msm8916): allow selecting which UART to use
At the moment the msm8916 platform port always uses UART number 2 for debug output. In some situations it is necessary to change this, either because only the other UART is exposed on the board or for runtime debugging, to avoid conflicting with the normal world.
Make the UART to use configurable using QTI_UART_NUM on the make command line and also add QTI_RUNTIME_UART as an option to keep using the UART after early boot. The latter is disabled by default since it requires reserving the UART and related clocks inside the normal world.
Change-Id: I14725f954bbcecebcf317e8601922a3d00f2ec28 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
45b2bd0a |
| 28-Aug-2022 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): add SP_MIN port for AArch32
Use the new shared msm8916 setup code to allow compiling the minimal AArch32 Secure Payload (SP_MIN) as simple PSCI implementation.
AArch64 is preferred f
feat(msm8916): add SP_MIN port for AArch32
Use the new shared msm8916 setup code to allow compiling the minimal AArch32 Secure Payload (SP_MIN) as simple PSCI implementation.
AArch64 is preferred for the Cortex-A53 cores in MSM8916 but there are some similar platforms with AArch32-only Cortex-A7 cores that can benefit from this in future changes.
The AArch32 assembly implementation for msm8916_helpers.S and uartdm_console.S is a direct port of the AArch64 implementation. Only plat_get_my_entrypoint is slightly different because there is no need to handle the "boot remapper" on cold boot for AArch32.
Change-Id: Idf160e86fb3e685fcedec3e051400e6273997b74 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
4181ec8c |
| 24-Mar-2023 |
Stephan Gerhold <stephan@gerhold.net> |
build(msm8916): place bl32 directly after bl31
At the moment there are two entirely separate memory regions for BL31 and BL32. However, since BL31 is very small (<= 128 KiB) there is actually still
build(msm8916): place bl32 directly after bl31
At the moment there are two entirely separate memory regions for BL31 and BL32. However, since BL31 is very small (<= 128 KiB) there is actually still plenty of space after BL31.
Drop the extra memory region for BL32 and place it directly after BL31 (i.e. BL31_LIMIT). If needed it is still possible to change it on the make command line.
While at it, move the definitions to the bottom of the make file so they come immediately before the related add_define calls.
Change-Id: I5184dcc2d89a92f1384508f973d56fd963e7befb Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
840831b2 |
| 28-Aug-2022 |
Stephan Gerhold <stephan@gerhold.net> |
refactor(msm8916): separate common platform setup code
In preparation of adding BL32 support for the msm8916 platform (AArch32/SP_MIN and TSP), separate the common platform setup code into shared ms
refactor(msm8916): separate common platform setup code
In preparation of adding BL32 support for the msm8916 platform (AArch32/SP_MIN and TSP), separate the common platform setup code into shared msm8916_setup.c and msm8916_config.c files which can be called from both BL31 and BL32.
msm8916_setup.c contains the relevant shared code for BL31/SP_MIN/TSP, while msm8916_config.c is cold boot configuration code that is only relevant for BL31 and SP_MIN (but not TSP).
No functional change.
Change-Id: I055522d5ad8c03dfb8e09236dc47dd383a480e95 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
41914de3 |
| 09-May-2023 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
Merge changes I5bb43cb0,I6aebe2ca,Ib59df16a,I9d037ab2,I9df5a465, ... into integration
* changes: fix(msm8916): add timeout for crash console TX flush style(msm8916): use size macros feat(msm89
Merge changes I5bb43cb0,I6aebe2ca,Ib59df16a,I9d037ab2,I9df5a465, ... into integration
* changes: fix(msm8916): add timeout for crash console TX flush style(msm8916): use size macros feat(msm8916): expose more timer frames fix(msm8916): drop unneeded initialization of CNTACR build(msm8916): disable unneeded workarounds fix(msm8916): flush dcache after writing msm8916_entry_point fix(msm8916): print \r before \n on UART console
show more ...
|
| #
4a3e2cb3 |
| 14-Mar-2023 |
Stephan Gerhold <stephan@gerhold.net> |
build(msm8916): disable unneeded workarounds
The Cortex-A53 cores used in the msm8916 platform are not affected by CVE-2017-5715 and CVE-2022-23960, so disable the workarounds for them to drop the u
build(msm8916): disable unneeded workarounds
The Cortex-A53 cores used in the msm8916 platform are not affected by CVE-2017-5715 and CVE-2022-23960, so disable the workarounds for them to drop the unused code from the compiled binary.
Change-Id: I9df5a4657c4fd90702b4db4e82d4ee1a2f60303c Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
e24e42c6 |
| 28-Mar-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "feat_amu_rework" into integration
* changes: refactor(amu): use new AMU feature check routines refactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1
|
| #
d23acc9e |
| 21-Mar-2023 |
Andre Przywara <andre.przywara@arm.com> |
refactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1
So far we have the ENABLE_AMU build option to include AMU register handling code for enabling and context switch. There is also an ENABLE_FEAT_A
refactor(amu): unify ENABLE_AMU and ENABLE_FEAT_AMUv1
So far we have the ENABLE_AMU build option to include AMU register handling code for enabling and context switch. There is also an ENABLE_FEAT_AMUv1 option, solely to protect the HAFGRTR_EL2 system register handling. The latter needs some alignment with the new feature scheme, but it conceptually overlaps with the ENABLE_AMU option.
Since there is no real need for two separate options, unify both into a new ENABLE_FEAT_AMU name in a first step. This is mostly just renaming at this point, a subsequent patch will make use of the new feature handling scheme.
Change-Id: I97d8a55bdee2ed1e1509fa9f2b09fd0bdd82736e Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
7419b7a7 |
| 20-Mar-2023 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "feat_state_part3" into integration
* changes: refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED refactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED feat(l
Merge changes from topic "feat_state_part3" into integration
* changes: refactor(cpufeat): enable FEAT_VHE for FEAT_STATE_CHECKED refactor(mpam): enable FEAT_MPAM for FEAT_STATE_CHECKED feat(libc): add support for fallthrough statement refactor(spe): enable FEAT_SPE for FEAT_STATE_CHECKED refactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS fix(spe): drop SPE EL2 context switch code
show more ...
|
| #
90118bb5 |
| 03-Feb-2023 |
Andre Przywara <andre.przywara@arm.com> |
refactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS
At the moment we hardcode the SPE functionality to be available on the non-secure side only, by setting MDCR_EL2.E2PB accordin
refactor(cpufeat): rename ENABLE_SPE_FOR_LOWER_ELS to ENABLE_SPE_FOR_NS
At the moment we hardcode the SPE functionality to be available on the non-secure side only, by setting MDCR_EL2.E2PB accordingly.
This should be reflected in the feature selection symbol, so rename that to ENABLE_SPE_FOR_NS, to make it clearer that SPE is not supported in the secure world.
Change-Id: I3f9b48eab1a45d6ccfcbb9c90a11eeb66867ad9a Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
e0a6a512 |
| 03-Feb-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "msm8916" into integration
* changes: feat(msm8916): allow booting secondary CPU cores feat(msm8916): setup hardware for non-secure world feat(gic): allow overriding G
Merge changes from topic "msm8916" into integration
* changes: feat(msm8916): allow booting secondary CPU cores feat(msm8916): setup hardware for non-secure world feat(gic): allow overriding GICD_PIDR2_GICV2 address feat(msm8916): initial platform port docs(msm8916): new port for Qualcomm Snapdragon 410
show more ...
|
| #
a758c0b6 |
| 01-Dec-2021 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): allow booting secondary CPU cores
Add support for the PSCI CPU_ON call to allow booting secondary CPU cores. On cold boot they need to be booted with a special register sequence. Also
feat(msm8916): allow booting secondary CPU cores
Add support for the PSCI CPU_ON call to allow booting secondary CPU cores. On cold boot they need to be booted with a special register sequence. Also, the "boot remapper" needs to be configured to point to the BL31_BASE, so the CPUs actually start executing BL31 after reset.
Change-Id: I406c508070ccb046bfdefd51554f12e1db671fd4 Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|
| #
af644731 |
| 01-Dec-2021 |
Stephan Gerhold <stephan@gerhold.net> |
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-secu
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>
show more ...
|
| #
dddba19a |
| 01-Dec-2021 |
Stephan Gerhold <stephan@gerhold.net> |
feat(msm8916): initial platform port
Introduce the bare mimimum base of the msm8916 BL31 port. This is pretty much just a standard platform "skeleton" with CPU/memory initialization and an UART driv
feat(msm8916): initial platform port
Introduce the bare mimimum base of the msm8916 BL31 port. This is pretty much just a standard platform "skeleton" with CPU/memory initialization and an UART driver. This allows booting into e.g. U-Boot with working UART output.
Note that the plat/qti/msm8916 port is completely separate and does not make use of anything in plat/qti/common at the moment. The main reason for that is that plat/qti/common is heavily focused around having a binary "qtiseclib" component, while the MSM8916 port is fully open-source (and therefore somewhat limited to publicly documented functionality).
In the future it might be possible to re-use some of the open-source parts in plat/qti/common (e.g. spmi_arb.c or pm_ps_hold.c) but it's not strictly required for the basic functionality supported so far.
Change-Id: I7b4375df0f947b3bd1e55b0b52b21edb6e6d175b Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
show more ...
|