| #
47fd2315 |
| 16-Sep-2025 |
Yann Gautier <yann.gautier@st.com> |
Merge changes Ibc52a4fc,Ieb56af33 into integration
* changes: build(allwinner): disable unneeded CVE workarounds and MPAM fix(cpus): use correct Makefile indentation for CVE-2018-3639 check
|
| #
d86ddcef |
| 01-Sep-2025 |
Andre Przywara <andre.przywara@arm.com> |
build(allwinner): disable unneeded CVE workarounds and MPAM
There are a number of workarounds for CVEs related to sidechannel attacks on some CPU cores, most of them listed here: https://developer.a
build(allwinner): disable unneeded CVE workarounds and MPAM
There are a number of workarounds for CVEs related to sidechannel attacks on some CPU cores, most of them listed here: https://developer.arm.com/documentation/110280/latest/ Also there are two other CVEs: https://developer.arm.com/documentation/110324/latest/ https://developer.arm.com/documentation/110326/latest/
As these page reveals, those workaround do not apply to the Cortex-A53 (or A55) cores, so we can safely disable them in the Allwinner build recipes, since they only use those two cores so far.
Also disable FEAT_MPAM, which is one of the only three later features that are enabled default, but are not enabled in Cortex-A53 or A55 cores. Use the opportunity to group those options together and improve the comment.
This decreases the code size by a few hundred bytes.
Change-Id: Ibc52a4fc9b8f5d9b2b28a2ce13d3ab99b63e9640 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 ...
|
| #
3e0a087f |
| 04-May-2022 |
André Przywara <andre.przywara@arm.com> |
Merge changes from topic "allwinner-idle" into integration
* changes: feat(allwinner): provide CPU idle states to the rich OS feat(allwinner): simplify CPU_SUSPEND power state encoding feat(al
Merge changes from topic "allwinner-idle" into integration
* changes: feat(allwinner): provide CPU idle states to the rich OS feat(allwinner): simplify CPU_SUSPEND power state encoding feat(allwinner): choose PSCI states to avoid translation feat(fdt): add the ability to supply idle state information fix(allwinner): improve DTB patching error handling refactor(allwinner): patch the DTB after setting up PSCI refactor(allwinner): move DTB change code into allwinner/common
show more ...
|
| #
e2b18771 |
| 23-Jan-2022 |
Samuel Holland <samuel@sholland.org> |
feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to
feat(allwinner): provide CPU idle states to the rich OS
When using SCPI as the PSCI backend, firmware can wake up the CPUs and cluster from sleep, so CPU idle states are available for the rich OS to use. In that case, advertise them to the rich OS via the DTB.
Change-Id: I718ef6ef41212fe5213b11b4799613adbbe6e0eb Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| #
6fa8e72e |
| 19-Dec-2021 |
Andre Przywara <andre.przywara@arm.com> |
refactor(allwinner): move DTB change code into allwinner/common
So far the H616 was the only Allwinner SoC needed to amend the DTB, to reserve the DRAM portion that BL31 occupies. To allow other SoC
refactor(allwinner): move DTB change code into allwinner/common
So far the H616 was the only Allwinner SoC needed to amend the DTB, to reserve the DRAM portion that BL31 occupies. To allow other SoCs to modify the DTB as well, without duplicating code, move the DTB change routines into Allwinner common code, and generalise the current code to allow other modifications.
No functional change intended.
Change-Id: I080ea07b6470367f3c2573a4368f8ef5196d411c Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| #
e752fa4a |
| 01-Jan-2022 |
André Przywara <andre.przywara@arm.com> |
Merge "feat(allwinner): allow to skip PMIC regulator setup" into integration
|
| #
67412e4d |
| 01-Nov-2021 |
Andre Przywara <andre.przywara@arm.com> |
feat(allwinner): allow to skip PMIC regulator setup
For somewhat historical reasons we are doing some initial PMIC regulator setup in BL31, as U-Boot does not (yet) have a PMIC driver. This worked f
feat(allwinner): allow to skip PMIC regulator setup
For somewhat historical reasons we are doing some initial PMIC regulator setup in BL31, as U-Boot does not (yet) have a PMIC driver. This worked fine so far, but there is at least one board (OrangePi 3) that gets upset, because the Ethernet PHY needs some *coordinated* bringup of *two* regulators.
To avoid custom hacks, let's introduce a build option to keep doing the regulator setup in TF-A. Defining SUNXI_SETUP_REGULATORS to 0 will break support for some devices on some boards in U-Boot (Ethernet and HDMI), but will allow to bring up the OrangePi 3 in Linux correctly. We keep the default at 1 to not change the behaviour for all other boards.
After U-Boot gained proper PMIC support at some point in the future, we will probably change the default to 0, to get rid of the less optimal PMIC code in TF-A.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Change-Id: Ie8e2583d0396f6eeaae8ffe6b6190f27db63e2a7
show more ...
|
| #
8078b5c5 |
| 30-Mar-2021 |
André Przywara <andre.przywara@arm.com> |
Merge changes from topic "allwinner_h616" into integration
* changes: allwinner: H616: Add reserved-memory node to DT allwinner: Add Allwinner H616 SoC support allwinner: Add H616 SoC ID all
Merge changes from topic "allwinner_h616" into integration
* changes: allwinner: H616: Add reserved-memory node to DT allwinner: Add Allwinner H616 SoC support allwinner: Add H616 SoC ID allwinner: Express memmap more dynamically allwinner: Move sunxi_cpu_power_off_self() into platforms allwinner: Move SEPARATE_NOBITS_REGION to platforms doc: allwinner: Reorder sections, document memory mapping
show more ...
|
| #
eb15bdaa |
| 15-Feb-2021 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Move SEPARATE_NOBITS_REGION to platforms
For the existing SoCs we support, we use SEPARATE_NOBITS_REGION, to move some parts of the data into separate memory regions (to save on the SRAM
allwinner: Move SEPARATE_NOBITS_REGION to platforms
For the existing SoCs we support, we use SEPARATE_NOBITS_REGION, to move some parts of the data into separate memory regions (to save on the SRAM A2 we are loaded into). For the upcoming H616 platform this is of no concern (we run in DRAM), so make this flag a platform choice instead.
Change-Id: Ic01d49578c6274660f8f112bd23680d3eca3be7a Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
964df136 |
| 24-Feb-2021 |
André Przywara <andre.przywara@arm.com> |
Merge "allwinner: Allow conditional compilation of SCPI and native PSCI ops" into integration
|
| #
c36e2d48 |
| 22-Feb-2021 |
André Przywara <andre.przywara@arm.com> |
Merge changes from topic "sunxi-split-psci" into integration
* changes: allwinner: Split native and SCPI-based PSCI implementations allwinner: psci: Improve system shutdown/reset sequence allw
Merge changes from topic "sunxi-split-psci" into integration
* changes: allwinner: Split native and SCPI-based PSCI implementations allwinner: psci: Improve system shutdown/reset sequence allwinner: psci: Drop .pwr_domain_pwr_down_wfi callback allwinner: Separate code to power off self and other CPUs
show more ...
|
| #
b23ab8eb |
| 20-Jan-2021 |
Andre Przywara <andre.przywara@arm.com> |
allwinner: Allow conditional compilation of SCPI and native PSCI ops
Now that we have split the native and the SCPI version of the PSCI ops, we can introduce build options to compile in either or bo
allwinner: Allow conditional compilation of SCPI and native PSCI ops
Now that we have split the native and the SCPI version of the PSCI ops, we can introduce build options to compile in either or both of them.
If one version is not compiled in, some stub functions make sure the common code still compiles and makes the right decisions.
By default both version are enabled (as before), but one of them can be disabled on the make command line, or via a platform specific Makefile.
Change-Id: I0c019d8700c0208365eacf57809fb8bc608eb9c0 Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| #
fe753c97 |
| 16-Jan-2021 |
Samuel Holland <samuel@sholland.org> |
allwinner: Split native and SCPI-based PSCI implementations
In order to keep SCP firmware as optional, the original, limited native PSCI implementation was kept around as a fallback. This turned out
allwinner: Split native and SCPI-based PSCI implementations
In order to keep SCP firmware as optional, the original, limited native PSCI implementation was kept around as a fallback. This turned out to be a good decision, as some newer SoCs omit the ARISC, and thus cannot run SCP firmware.
However, keeping the two implementations in one file makes things unnecessarily messy. First, it is difficult to compile out the SCPI-based implementation where it is not applicable. Second the check is done in each callback, while scpi_available is only updated at boot. This makes the individual callbacks unnecessarily complicated.
It is cleaner to provide two entirely separate implementations in two separate files. The native implementation does not support any kind of CPU suspend, so its callbacks are greatly simplified. One function, sunxi_validate_ns_entrypoint, is shared between the two implementations.
Finally, the logic for choosing between implementations is kept in a third file, to provide for platforms where only one implementation is applicable and the other is compiled out.
Change-Id: I4914f07d8e693dbce218e0e2394bef15c42945f8 Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| #
be7dc2df |
| 22-Dec-2020 |
André Przywara <andre.przywara@arm.com> |
Merge "allwinner: Fix non-default PRELOADED_BL33_BASE" into integration
|
| #
b51d466a |
| 22-Dec-2020 |
André Przywara <andre.przywara@arm.com> |
Merge "allwinner: Enable workaround for Cortex-A53 erratum 1530924" into integration
|
| #
74665119 |
| 14-Dec-2020 |
Samuel Holland <samuel@sholland.org> |
allwinner: Enable workaround for Cortex-A53 erratum 1530924
BL31 reports the following warning during boot:
WARNING: BL31: cortex_a53: CPU workaround for 1530924 was missing!
Resolve this by ena
allwinner: Enable workaround for Cortex-A53 erratum 1530924
BL31 reports the following warning during boot:
WARNING: BL31: cortex_a53: CPU workaround for 1530924 was missing!
Resolve this by enabling the workaround on the affected platforms.
Change-Id: Ia1d5075370be5ae67b7bece96ec0069d9692b14c Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| #
3d36d8e6 |
| 14-Dec-2020 |
Samuel Holland <samuel@sholland.org> |
allwinner: Fix non-default PRELOADED_BL33_BASE
While the Allwinner platform code nominally supported a custom PRELOADED_BL33_BASE, some references to the BL33 load address used another constant: PLA
allwinner: Fix non-default PRELOADED_BL33_BASE
While the Allwinner platform code nominally supported a custom PRELOADED_BL33_BASE, some references to the BL33 load address used another constant: PLAT_SUNXI_NS_IMAGE_OFFSET. To allow the DTB search code to work if a U-Boot BL33 is loaded to a custom address, consistently use PRELOADED_BL33_BASE. And to avoid this confusion in the future, remove the other constant.
Signed-off-by: Samuel Holland <samuel@sholland.org> Change-Id: Ie6b97ae1fdec95d784676aef39200bef161471b0
show more ...
|
| #
e168b66d |
| 19-Aug-2020 |
André Przywara <andre.przywara@arm.com> |
Merge changes from topic "aw_drivevbus" into integration
* changes: plat/allwinner: Only enable DRIVEVBUS if really needed plat/allwinner: Use common gicv2.mk
|
| #
9bc28a5e |
| 02-Aug-2020 |
Andre Przywara <andre.przywara@arm.com> |
plat/allwinner: Use common gicv2.mk
Compiling BL31 for the Allwinner platform now produces a message about the deprecation of gic_common.c. Follow the advice and use include gicv2.mk instead.
Colle
plat/allwinner: Use common gicv2.mk
Compiling BL31 for the Allwinner platform now produces a message about the deprecation of gic_common.c. Follow the advice and use include gicv2.mk instead.
Collect all includes at the beginning of the file on the way.
Change-Id: Iee46e21a630bfa831d28059f09aa7b049eb554bb Signed-off-by: Andre Przywara <andre.przywara@arm.com>
show more ...
|
| #
c335ad48 |
| 26-Feb-2020 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "allwinner: Implement PSCI system suspend using SCPI" into integration
|
| #
fbe228b1 |
| 26-Feb-2020 |
Olivier Deprez <olivier.deprez@arm.com> |
Merge "allwinner: Add a msgbox driver for use with SCPI" into integration
|
| #
e382c88e |
| 21-Oct-2018 |
Samuel Holland <samuel@sholland.org> |
allwinner: Implement PSCI system suspend using SCPI
If an SCP firmware is present and able to communicate via SCPI, then use that to implement CPU and system power state transitions, including CPU h
allwinner: Implement PSCI system suspend using SCPI
If an SCP firmware is present and able to communicate via SCPI, then use that to implement CPU and system power state transitions, including CPU hotplug and system suspend. Otherwise, fall back to the existing CPU power control implementation.
The last 16 KiB of SRAM A2 are reserved for the SCP firmware, and the SCPI shared memory is at the very end of this region (and therefore the end of SRAM A2). BL31 continues to start at the beginning of SRAM A2 (not counting the ARISC exception vector area) and fills up to the beginning of the SCP firmware.
Because the SCP firmware is not loaded adjacent to the ARISC exception vector area, the jump instructions used for exception handling cannot be included in the SCP firmware image, and must be initialized here before turning on the SCP.
Signed-off-by: Samuel Holland <samuel@sholland.org> Change-Id: I37b9b9636f94d4125230423726f3ac5e9cdb551c
show more ...
|
| #
50cabf6d |
| 21-Oct-2018 |
Samuel Holland <samuel@sholland.org> |
allwinner: Add a msgbox driver for use with SCPI
The function names follow the naming convention used by the existing ARM SCPI client.
Signed-off-by: Samuel Holland <samuel@sholland.org> Change-Id:
allwinner: Add a msgbox driver for use with SCPI
The function names follow the naming convention used by the existing ARM SCPI client.
Signed-off-by: Samuel Holland <samuel@sholland.org> Change-Id: I543bae7d46e206eb405dbedfcf7aeba88a12ca48
show more ...
|