- Feb 10, 2022
-
-
Manish Badarkhe authored
Allow access to PMSNEVFR_EL1 register at NS-EL1 or NS-EL2 when FEAT_SPEv1p2 is implemented. Change-Id: I44b1de93526dbe9c11fd061d876371a6c0e6fa9c Signed-off-by:
Manish V Badarkhe <Manish.Badarkhe@arm.com>
-
- Feb 09, 2022
-
-
Manish Pandey2 authored
* changes: test(el3-runtime): dit is retained on world switch fix(el3-runtime): set unset pstate bits to default refactor(el3-runtime): add prepare_el3_entry func
-
- Feb 07, 2022
-
-
Madhukar Pappireddy authored
-
Madhukar Pappireddy authored
-
- Feb 04, 2022
-
-
Madhukar Pappireddy authored
-
Madhukar Pappireddy authored
-
Aditya Angadi authored
Add board support for variant 2 of RD-N2 platform which is a four chip variant with 4 cores on each chip. The "CSS_SGI_PLATFORM_VARIANT" value is 2 for multi-chip variant. The "CSS_SGI_CHIP_COUNT_MACRO" can be in the range [1, 4] for multi-chip variant. Signed-off-by:
Aditya Angadi <aditya.angadi@arm.com> Change-Id: I6412106e80e2f17704c796226c2ee9fe808705ba
-
- Feb 03, 2022
-
-
Jorge Troncoso authored
Previously ufs_write_blocks was memsetting the write buffer before calling ufs_prepare_cmd, causing zeros to be written to UFS. This change deletes the memset call so the original buffer contents get written to UFS. Signed-off-by:
Jorge Troncoso <jatron@google.com> Change-Id: I3299f11b30e6d7d409408ce11a6759c88607ee18
-
Manish Pandey2 authored
* 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
-
Stephan Gerhold authored
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>
-
Stephan Gerhold authored
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>
-
Stephan Gerhold authored
Older Qualcomm SoCs seem to have a custom Qualcomm implementation of the GICv2 specification. It's mostly compliant but unfortunately it looks like a mistake was made with the GICD_PIDR registers. PIDR2 is defined to be at offset 0xFE8, but the Qualcomm implementation has it at 0xFD8. It looks like the entire PIDR0-3/4-7 block is swapped compared to the ARM implementation: PIDR0 starts at 0xFD0 (instead of 0xFE0) and PIDR4 starts at 0xFE0 (instead of 0xFD0). Actually this only breaks a single assert in gicv2_main.c that checks the GIC version: assert((gic_version == ARCH_REV_GICV2) ... In release mode everything seems to work correctly. To keep the code generic, allow affected platforms to override the GICD_PIDR2_GICV2 register address in platform_def.h. Since this header is typically included very early (e.g. from assert.h), add an #ifndef so the definitions from platform_def.h takes priority. Change-Id: I2929a8c1726f8d751bc28796567eb30b81eca2fe Signed-off-by:
Stephan Gerhold <stephan@gerhold.net>
-
Daniel Boulby authored
Add tsp service to check the value of the PSTATE DIT bit is as expected and toggle it's value. This is used to ensure that the DIT bit is maintained during a switch from the Normal to Secure worlds and back. Change-Id: I4e8bdfa6530e5e75925c0079d4fa2795133c5105 Signed-off-by:
Daniel Boulby <daniel.boulby@arm.com>
-
Daniel Boulby authored
During a transition to a higher EL some of the PSTATE bits are not set by hardware, this means that their state may be leaked from lower ELs. This patch sets those bits to a default value upon entry to EL3. This patch was tested using a debugger to check the PSTATE values are correctly set. As well as adding a test in the next patch to ensure the PSTATE in lower ELs is still maintained after this change. Change-Id: Ie546acbca7b9aa3c86bd68185edded91b2a64ae5 Signed-off-by:
Daniel Boulby <daniel.boulby@arm.com>
-
Stephan Gerhold authored
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>
-
Stephan Gerhold authored
The Qualcomm Snapdragon 410 is Qualcomm's first 64-bit SoC, released in 2014 with four ARM Cortex-A53 cores. There are differents variants (MSM8916, APQ8016(E), ...) that are all very similar. A popular device based on APQ8016E is the DragonBoard 410c single-board computer, but the SoC is also used in various mid-range smartphones/tablets. This commit adds documentation for a minimal, community-maintained port of TF-A/BL31 for MSM8916. The actual platform port is added in the following four separate small commits to simplify the review process. The code is primarily based on the information from the public Snapdragon 410E Technical Reference Manual [1], combined with a lot of trial and error to actually make it work. Note that this port is a pure community effort without any commercial interests and is not related to Qualcomm in any way. The main motivation for this port is to have a minimal, updatable firmware since this old chip does not receive many updates anymore from Qualcomm. It works quite well for many use cases so I am willing to maintain it as a "code owner". I have also added Nikita Travkin as second code owner to help with reviews. The main limitation so far is the lack of memory protection for TF-A. This is similar to the ports for the Raspberry Pi but in this case not a lack of hardware support but rather a lack of documentation. However, this does not limit the usefulness of the port when used as a minimal PSCI implementation. [1]: https://developer.qualcomm.com/download/sd410/snapdragon-410e-technical-reference-manual.pdf Change-Id: I676adf86061638cfc2f3ae8615470d145e84f172 Signed-off-by:
Stephan Gerhold <stephan@gerhold.net>
-
Lionel Debieve authored
From the new binding, the RCC become secured based on the new compatible. This must be done only from the secure OS initialisation. Signed-off-by:
Lionel Debieve <lionel.debieve@st.com> Change-Id: I7f0a62f22bfcca638ddaefc9563df00f89f01653
-
Yann Gautier authored
Add an early UART console to ease debug before UART is fully configured. This is done under flag STM32MP_EARLY_CONSOLE in the first STM32MP1 platform function called (bl2_el3_early_platform_setup()). It uses the parameters defined for crash console: STM32MP_DEBUG_USART* macros. Signed-off-by:
Yann Gautier <yann.gautier@st.com> Change-Id: Id6be62368723a0499e97bbf56fb52c166fcbdfad
-
- Feb 02, 2022
-
-
Manish Pandey2 authored
* changes: feat(stm32mp1): warn when debug enabled on secure chip fix(stm32mp1): rework switch/case for MISRA feat(st): disable authentication based on part_number
-
Manish Pandey2 authored
* changes: fix(sptool): add leading zeroes in UUID conversion feat(tc): enable SMMU for DPU feat(tc): add reserved memory region for Gralloc feat(tc): enable GPU fix(tc): remove the bootargs node
-
Madhukar Pappireddy authored
* changes: feat(st-gpio): do not apply secure config in BL2 feat(st): get pin_count from the gpio-ranges property feat(st-gpio): allow to set a gpio in output mode refactor(st-gpio): code improvements
-
Anders Dellien authored
The UUID conversion drops leading zeroes, so make sure that all hex strings always are 8 digits long Signed-off-by:
Anders Dellien <anders.dellien@arm.com> Change-Id: I5d7e3cf3b53403a02bf551f35f17dbdb96dec8ae
-
Manish Pandey2 authored
-
- Feb 01, 2022
-
-
Yann Gautier authored
At boot, the devices under ETZPC control are secured, so should be their GPIOs. As securable GPIOs are secured by default, keep the reset values in BL2. Change-Id: I9e560d936f8e8fda0f96f6299bb0c3b35ba9b71f Signed-off-by:
Yann Gautier <yann.gautier@st.com>
-
Fabien Dessenne authored
The "ngpios" property is deprecated and may be removed. Use the "gpio-ranges" property where the last parameter of that property is the number of available pins within that range. Signed-off-by:
Fabien Dessenne <fabien.dessenne@foss.st.com> Change-Id: I28295412c7cb1246fc753cff0d447b6fdcdc4c0f
-
Fabien Dessenne authored
Allow to set a gpio in output mode from the device tree. Signed-off-by:
Fabien Dessenne <fabien.dessenne@foss.st.com> Change-Id: Ic483324bc5fe916a60df05f74706bd1da4d08aa5
-
Fabien Dessenne authored
No functional, change, but some improvements: - Declare set_gpio() as static (only called locally) - Handle the type ('open-drain') property independently from the mode one. - Replace mmio_clrbits_32() + mmio_setbits_32() with mmio_clrsetbits_32(). - Add a missing log - Add missing U() in macro definitions Signed-off-by:
Fabien Dessenne <fabien.dessenne@foss.st.com> Change-Id: I1a79609609ac8e8001127ebefdb81def573f76fa
-
Madhukar Pappireddy authored
-
Lionel Debieve authored
Add a banner that inform user that debug is enabled on a secure chip. Change-Id: Ib618ac1332b40a1af72d0b60750eea4fc36a8014 Signed-off-by:
Lionel Debieve <lionel.debieve@st.com> Signed-off-by:
Yann Gautier <yann.gautier@st.com>
-
Yann Gautier authored
Avoid the use of return inside switch/case in stm32mp_is_single_core(). Although this MISRA rulre might not be enforced, we align on what is done for stm32mp_is_auth_supported(). Change-Id: I00a5ec1b18c55b4254af00c9c5cf5a4dce104175 Signed-off-by:
Yann Gautier <yann.gautier@st.com>
-
Lionel Debieve authored
STM32MP15xA and STM32MP15xD chip part numbers don't support the secure boot. All functions linked to secure boot must not be used and signed binaries are not allowed on such chip. Signed-off-by:
Lionel Debieve <lionel.debieve@st.com> Change-Id: I5b85f322f5eb3b64415e1819bd00fb2c99f20695
-
Anders Dellien authored
The SMMU needs to be enabled to support 8GB RAM Signed-off-by:
Anders Dellien <anders.dellien@arm.com> Change-Id: Ie81f2fc59886c52e9d6ed799ea73f49eb7a7c307
-
Anders Dellien authored
Gralloc for Android S uses dmabuf, we need to add reserved memory area for these allocations Signed-off-by:
Anders Dellien <anders.dellien@arm.com> Change-Id: If869ac930fadc374ec435cae3847ba374584275b
-
Anders Dellien authored
Add DTS node for GPU to support hardware rendering in Android Signed-off-by:
Anders Dellien <anders.dellien@arm.com> Change-Id: I2cf2badf5b15e59a910f6cf7d3d30fdfaf4fe9ce
-
Anders Dellien authored
We need to keep the kernel command line in Yocto, otherwise we can't support AVB. Signed-off-by:
Anders Dellien <anders.dellien@arm.com> Change-Id: Ic291eb13620b307f10354c2c2797c6fc9b053e83
-
- Jan 31, 2022
-
-
Madhukar Pappireddy authored
* changes: feat(stm32mp1): manage monotonic counter feat(stm32mp1): new way to access platform OTP feat(stm32mp1-fdts): update NVMEM nodes refactor(st-drivers): improve BSEC driver feat(stm32mp1-fdts): add nvmem_layout node and OTP definitions feat(stm32mp1): add NVMEM layout compatibility definition
-
Manish Pandey2 authored
* changes: fix(plat/rcar3): change stack size of BL31 fix(plat/rcar3): fix SYSTEM_OFF processing for R-Car D3
-
Madhukar Pappireddy authored
-
Daniel Boulby authored
In the next patch we add an extra step of setting the PSTATE registers to a known state on el3 entry. In this patch we create the function prepare_el3_entry to wrap the steps needed for before el3 entry. For now this is only save_gp_pmcr_pauth_regs. Change-Id: Ie26dc8d89bfaec308769165d2649e84d41be196c Signed-off-by:
Daniel Boulby <daniel.boulby@arm.com>
-
Daniel Boulby authored
Also split SPM MM into it's own scope. Change-Id: I9cfb1ddec7419ad0d7b539f65e7322bbd44a3913 Signed-off-by:
Daniel Boulby <daniel.boulby@arm.com>
-