| 9b4ed0af | 05-Feb-2022 |
Giulio Benetti <giulio.benetti@benettiengineering.com> |
feat(plat/zynqmp): fix section `coherent_ram' will not fit in region `RAM'
Actually BL31_LIMIT is set to 0xffffffff but that doesn't work correctly with bl31.ld since ". = ALIGN(((1) << (12)));" wil
feat(plat/zynqmp): fix section `coherent_ram' will not fit in region `RAM'
Actually BL31_LIMIT is set to 0xffffffff but that doesn't work correctly with bl31.ld since ". = ALIGN(((1) << (12)));" will try to fill aligned up to 0x100000000 included, but the RAM size is 0xffffffff, so this leads to this build error: ``` bl31.elf section `coherent_ram' will not fit in region `RAM' /home/br-user/git/upstream/ci-tests/zynqmp_zcu102/host/bin/aarch64-buildroot-linux-uclibc-ld: region `RAM' overflowed by 1 byte ``` So let's move BR31_LIMIT to 0x100000000 giving 1 byte more room to fill RAM up to the end.
Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com> Change-Id: Ic0edb8ed159e013f60598a9dd4f50adbf656b38d
show more ...
|
| 0e38ff2a | 04-Feb-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "feat(st): update the security based on new compatible" into integration |
| bfc231c1 | 04-Feb-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "feat(st): add early console in BL2" into integration |
| efeb4380 | 09-Aug-2021 |
Aditya Angadi <aditya.angadi@arm.com> |
feat(rdn2): add board support for rdn2cfg2 variant
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
feat(rdn2): add board support for rdn2cfg2 variant
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
show more ...
|
| cd3ea90b | 03-Feb-2022 |
Jorge Troncoso <jatron@google.com> |
fix(ufs): don't zero out the write buffer
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 mems
fix(ufs): don't zero out the write buffer
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
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 ...
|
| a7521bd5 | 01-Dec-2021 |
Stephan Gerhold <stephan@gerhold.net> |
feat(gic): allow overriding GICD_PIDR2_GICV2 address
Older Qualcomm SoCs seem to have a custom Qualcomm implementation of the GICv2 specification. It's mostly compliant but unfortunately it looks li
feat(gic): allow overriding GICD_PIDR2_GICV2 address
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>
show more ...
|
| 9944f557 | 09-Dec-2021 |
Daniel Boulby <daniel.boulby@arm.com> |
feat(ff-a): forward FFA_VERSION from SPMD to SPMC
Introduced by FF-A v1.1 we must forward a call to FFA_VERSION to the SPMC so that the ffa version of the caller can be stored for later use. Since t
feat(ff-a): forward FFA_VERSION from SPMD to SPMC
Introduced by FF-A v1.1 we must forward a call to FFA_VERSION to the SPMC so that the ffa version of the caller can be stored for later use. Since the return of FFA_VERSION is not wrapped in a FF-A call we need to use a direct message request to do this forwarding. For the spmd_handler in the SPMC to hand off to the correct function we use w2 to specify a target framework function. Therefore we must update PSCI CPU_OFF to do this as well.
Change-Id: Ibaa6832b66f1597b3d65aa8986034f0c5916016d Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
show more ...
|
| 4d482156 | 22-Oct-2021 |
Daniel Boulby <daniel.boulby@arm.com> |
test(el3-runtime): dit is retained on world switch
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 maintaine
test(el3-runtime): dit is retained on world switch
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>
show more ...
|
| 7d33ffe4 | 25-May-2021 |
Daniel Boulby <daniel.boulby@arm.com> |
fix(el3-runtime): set unset pstate bits to default
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
fix(el3-runtime): set unset pstate bits to default
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>
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 ...
|
| fa145398 | 01-Dec-2021 |
Stephan Gerhold <stephan@gerhold.net> |
docs(msm8916): new port for Qualcomm Snapdragon 410
The Qualcomm Snapdragon 410 is Qualcomm's first 64-bit SoC, released in 2014 with four ARM Cortex-A53 cores. There are differents variants (MSM891
docs(msm8916): new port for Qualcomm Snapdragon 410
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>
show more ...
|
| 812daf91 | 15-Dec-2020 |
Lionel Debieve <lionel.debieve@st.com> |
feat(st): update the security based on new compatible
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-
feat(st): update the security based on new compatible
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
show more ...
|
| c768b2b2 | 18-Oct-2021 |
Yann Gautier <yann.gautier@st.com> |
feat(st): add early console in BL2
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 call
feat(st): add early console in BL2
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
show more ...
|
| 99026cff | 02-Feb-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "st-security-update" into integration
* changes: feat(stm32mp1): warn when debug enabled on secure chip fix(stm32mp1): rework switch/case for MISRA feat(st): disable a
Merge changes from topic "st-security-update" into integration
* 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
show more ...
|
| b350811c | 02-Feb-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes I5d7e3cf3,Ie81f2fc5,If869ac93,I2cf2badf,Ic291eb13 into integration
* changes: fix(sptool): add leading zeroes in UUID conversion feat(tc): enable SMMU for DPU feat(tc): add reser
Merge changes I5d7e3cf3,Ie81f2fc5,If869ac93,I2cf2badf,Ic291eb13 into integration
* 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
show more ...
|
| ed2d29ae | 02-Feb-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "st-gpio-update" into integration
* changes: feat(st-gpio): do not apply secure config in BL2 feat(st): get pin_count from the gpio-ranges property feat(st-gpio): allo
Merge changes from topic "st-gpio-update" into integration
* 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
show more ...
|
| 992d97c4 | 18-Jan-2022 |
Manish V Badarkhe <Manish.Badarkhe@arm.com> |
refactor(measured-boot): cleanup Event Log makefile
The Event Log sources are added to the source-list of BL1 and BL2 images in the Event Log Makefile. It doesn't seem correct since some platforms o
refactor(measured-boot): cleanup Event Log makefile
The Event Log sources are added to the source-list of BL1 and BL2 images in the Event Log Makefile. It doesn't seem correct since some platforms only compile Event Log sources for BL2. Hence, moved compilation decision of Event Log sources to the platform makefile.
Change-Id: I1cb96e24d6bea5e091d08167f3d1470d22b461cc Signed-off-by: Manish V Badarkhe <Manish.Badarkhe@arm.com>
show more ...
|
| b06344a3 | 07-Jan-2022 |
Anders Dellien <anders.dellien@arm.com> |
fix(sptool): add leading zeroes in UUID conversion
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
fix(sptool): add leading zeroes in UUID conversion
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
show more ...
|
| 20eb9d5b | 02-Feb-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge "fix(stm32mp1): remove interrupt_provider warning for dtc" into integration |
| fc0aa10a | 11-Aug-2020 |
Yann Gautier <yann.gautier@st.com> |
feat(st-gpio): do not apply secure config in BL2
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 B
feat(st-gpio): do not apply secure config in BL2
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>
show more ...
|
| d0f2cf3b | 21-Sep-2021 |
Fabien Dessenne <fabien.dessenne@foss.st.com> |
feat(st): get pin_count from the gpio-ranges property
The "ngpios" property is deprecated and may be removed. Use the "gpio-ranges" property where the last parameter of that property is the number o
feat(st): get pin_count from the gpio-ranges property
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
show more ...
|
| 53584e1d | 21-Sep-2021 |
Fabien Dessenne <fabien.dessenne@foss.st.com> |
feat(st-gpio): allow to set a gpio in output mode
Allow to set a gpio in output mode from the device tree.
Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com> Change-Id: Ic483324bc5fe916a6
feat(st-gpio): allow to set a gpio in output mode
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
show more ...
|