| 13979674 | 09-Aug-2021 |
Tanmay Shah <tanmay.shah@xilinx.com> |
feat(versal): add common interfaces to handle EEMI commands
This change adds common interfaces to handle commands from firmware driver to power management controller. It removes big chunk of source
feat(versal): add common interfaces to handle EEMI commands
This change adds common interfaces to handle commands from firmware driver to power management controller. It removes big chunk of source line of code that was handling each command separately and doing same repetitive work.
EEMI - Embedded Energy Management Interface is Xilinx proprietary protocol to allow communication between power management controller and different processing clusters.
As of now, Each EEMI command has its own implementation in TF-A. This is redundant. Essentially most EEMI command implementation in TF-A does same work. It prepares payload received from kernel, sends payload to firmware, receives response from firmware and send response back to kernel.
The same functionality can be achieved if common interface is used among multiple EEMI commands. This change divides platform management related SMCCC requests into 4 categories.
1) EEMI commands required for backward compatibility.
Some EEMI commands are still required for backward compatibility until removed completely or its use is changed to accommodate common interface
2) EEMI commands that require for PSCI interface and accessed from debugfs
For example EEMI calls related to CPU suspend/resume
3) TF-A specific requests
Functionality such as getting TF-A version and getting callback data for platform management is handled by this interface
4) Common interface for rest of EEMI commands
This handlers performs payload and firmware response transaction job for rest of EEMI commands. Also it parses module ID from SMC payload and inserts in IPI request. If not module ID is found, then default is LIBPM_MODULE_ID. This helps in making common path in TF-A for all the modules in PLM firmware
Change-Id: I57a2787c7fff9f2e1d1f9003b3daab092632d57e Signed-off-by: Tanmay Shah <tanmay.shah@xilinx.com>
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 ...
|
| 52466ec3 | 19-Mar-2021 |
Samuel Holland <samuel@sholland.org> |
feat(allwinner): simplify CPU_SUSPEND power state encoding
Use the encoding recommended by the PSCI specification: four bits for the power state at each power level.
SCPI provides no way to handsha
feat(allwinner): simplify CPU_SUSPEND power state encoding
Use the encoding recommended by the PSCI specification: four bits for the power state at each power level.
SCPI provides no way to handshake an exit from a standby state, so the only possible standby state is the architectural WFI state. Since WFI can be used outside of PSCI, we do not allow passing in standby states.
Change-Id: I4b3b84e5c255ee58a25255a0cab5d7623425086e Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| 159c36fd | 19-Mar-2021 |
Samuel Holland <samuel@sholland.org> |
feat(allwinner): choose PSCI states to avoid translation
Aligning the PSCI and SCPI power states avoids some code to translate between the two. This also makes room for an intermediate power state,
feat(allwinner): choose PSCI states to avoid translation
Aligning the PSCI and SCPI power states avoids some code to translate between the two. This also makes room for an intermediate power state, for future firmware capability growth.
Change-Id: I26691085f277a96bd405e3305ab0fe390a92b418 Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| 79808f10 | 23-Jan-2022 |
Samuel Holland <samuel@sholland.org> |
fix(allwinner): improve DTB patching error handling
Currently, if any step of the DTB patching process fails, the whole process is aborted. However, this causes some problems: - If any step modifie
fix(allwinner): improve DTB patching error handling
Currently, if any step of the DTB patching process fails, the whole process is aborted. However, this causes some problems: - If any step modifies the DTB (including fdt_open_into), the dcache must still be cleaned, even if some later step fails. - The DTB may need changes in multiple places; if one patch fails (for example due to missing nodes), we should still apply other patches. - Similarly, if some patch fails, we should still run fdt_pack to clean up after ourselves.
Change-Id: If1af2e58e5a7edaf542354bb8a261dd1c3da1ad0 Signed-off-by: Samuel Holland <samuel@sholland.org>
show more ...
|
| 3ccccc65 | 23-Jan-2022 |
Samuel Holland <samuel@sholland.org> |
refactor(allwinner): patch the DTB after setting up PSCI
Idle states are advertised to the rich OS by declaring them in the DTB. Since the availability of idle states depends on which PSCI implement
refactor(allwinner): patch the DTB after setting up PSCI
Idle states are advertised to the rich OS by declaring them in the DTB. Since the availability of idle states depends on which PSCI implementation was chosen, the DTB must be updated after PSCI setup.
Move this operation to bl31_plat_runtime_setup, the platform hook which happens at the right time. Defining this hook overrides the weak definition from plat/common, so copy over the code from there, too.
Change-Id: I42a83edb9cb28e1803d17dc2d73dbc879d885222 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 ...
|
| b08a199b | 26-Apr-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge "fix(xilinx): fix mismatching function prototype" into integration |
| 394f2ea0 | 25-Apr-2022 |
Lauren Wehrmeister <lauren.wehrmeister@arm.com> |
Merge changes Iccfa7ec6,Ide9a7af4 into integration
* changes: feat(intel): add macro to switch between different UART PORT feat(intel): add SMC support for ROM Patch SHA384 mailbox |
| 5b44657a | 25-Apr-2022 |
Madhukar Pappireddy <madhukar.pappireddy@arm.com> |
Merge changes from topic "st_fwu_bkp_reg" into integration
* changes: feat(stm32mp1): retry 3 times FWU trial boot refactor(stm32mp1): update backup reg for FWU |
| 429f10e3 | 22-Apr-2022 |
Yann Gautier <yann.gautier@foss.st.com> |
fix(stm32mp1): correct dtc version check
Depending on the shell used, the grep command can fail, leading to a wrong dtc version detection. Correct that by adding quotes.
Signed-off-by: Yann Gautier
fix(stm32mp1): correct dtc version check
Depending on the shell used, the grep command can fail, leading to a wrong dtc version detection. Correct that by adding quotes.
Signed-off-by: Yann Gautier <yann.gautier@foss.st.com> Change-Id: I329ec929559c94bf1bf99b127662c9d978e067cf
show more ...
|
| dfc59a7b | 19-Apr-2022 |
Manish Pandey <manish.pandey2@arm.com> |
Merge changes from topic "st_nvmem_layout" into integration
* changes: refactor(stm32mp1-fdts): remove nvmem_layout node refactor(stm32mp1): drop the "st,stm32-nvmem-layout" node refactor(st):
Merge changes from topic "st_nvmem_layout" into integration
* changes: refactor(stm32mp1-fdts): remove nvmem_layout node refactor(stm32mp1): drop the "st,stm32-nvmem-layout" node refactor(st): remove useless includes
show more ...
|
| 781d07a4 | 28-Mar-2022 |
Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> |
refactor(twed): improve TWED enablement in EL-3
The current implementation uses plat_arm API under generic code. "plat_arm" API is a convention used with Arm common platform layer and is reserved fo
refactor(twed): improve TWED enablement in EL-3
The current implementation uses plat_arm API under generic code. "plat_arm" API is a convention used with Arm common platform layer and is reserved for that purpose. In addition, the function has a weak definition which is not encouraged in TF-A.
Henceforth, removing the weak API with a configurable macro "TWED_DELAY" of numeric data type in generic code and simplifying the implementation. By default "TWED_DELAY" is defined to zero, and the delay value need to be explicitly set by the platforms during buildtime.
Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com> Change-Id: I25cd6f628e863dc40415ced3a82d0662fdf2d75a
show more ...
|
| 8b95e848 | 31-Jan-2022 |
Zelalem Aweke <zelalem.aweke@arm.com> |
refactor(context mgmt): add cm_prepare_el3_exit_ns function
As part of the RFC: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/13651, this patch adds the 'cm_prepare_el3_exit_ns' fun
refactor(context mgmt): add cm_prepare_el3_exit_ns function
As part of the RFC: https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/13651, this patch adds the 'cm_prepare_el3_exit_ns' function. The function is a wrapper to 'cm_prepare_el3_exit' function for Non-secure state.
When EL2 sysregs context exists (CTX_INCLUDE_EL2_REGS is enabled) EL1 and EL2 sysreg values are restored from the context instead of directly updating the registers.
Signed-off-by: Zelalem Aweke <zelalem.aweke@arm.com> Change-Id: I9b071030576bb05500d54090e2a03b3f125d1653
show more ...
|
| 2d1ba79c | 12-Apr-2022 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "style(plat/arm/corstone1000): resolve checkpatch warnings" into integration |
| def5571d | 21-Feb-2022 |
Manish V Badarkhe <manish.badarkhe@arm.com> |
refactor(arm): use MBEDTLS_CONFIG_FILE macro
Used MBEDTLS_CONFIG_FILE macro for including mbedTLS configuration.
Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com> Change-Id: I374b59a31df3a
refactor(arm): use MBEDTLS_CONFIG_FILE macro
Used MBEDTLS_CONFIG_FILE macro for including mbedTLS configuration.
Signed-off-by: Manish V Badarkhe <manish.badarkhe@arm.com> Change-Id: I374b59a31df3ab1e69481b2c37a6f7455a106b6e
show more ...
|
| a934332d | 11-Apr-2022 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
Merge "refactor(corstone700): namespace MHU driver filenames" into integration |
| 81333eac | 11-Apr-2022 |
Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com> |
fix(xilinx): fix mismatching function prototype
The reported function raises a error when compilers assert the flag `-Warray-parameter=`, signaling that an array-type argument was promoted to a poin
fix(xilinx): fix mismatching function prototype
The reported function raises a error when compilers assert the flag `-Warray-parameter=`, signaling that an array-type argument was promoted to a pointer-type argument. We observed this behaviour with the gcc 11.2 version.
plat/xilinx/common/pm_service/pm_ipi.c:263:34: error: argument 1 of type 'uint32_t *' {aka 'unsigned int *'} declared as a pointer [-Werror=array-parameter=] 263 | uint32_t calculate_crc(uint32_t *payload, uint32_t bufsize) | ~~~~~~~~~~^~~~~~~ In file included from plat/xilinx/common/pm_service/pm_ipi.c:16: plat/xilinx/common/include/pm_ipi.h:30:33: note: previously declared as an array 'uint32_t[8]' {aka 'unsigned int[8]'} 30 | uint32_t calculate_crc(uint32_t payload[PAYLOAD_ARG_CNT], uint32_t buffersize); | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~ cc1.real: all warnings being treated as errors
Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu@xilinx.com> Change-Id: I7329f2e76ee0ca5faba71eb50babd20a796fee64
show more ...
|
| 03d20776 | 28-Mar-2022 |
Yann Gautier <yann.gautier@st.com> |
fix(st): remove extra chars from dtc version
In some implementations of dtc tool (e.g. with yocto), there can be a 'v' at the beginning of the version, and a '+' at the end. Just keep numbers then,
fix(st): remove extra chars from dtc version
In some implementations of dtc tool (e.g. with yocto), there can be a 'v' at the beginning of the version, and a '+' at the end. Just keep numbers then, with a grep -o.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Change-Id: I180e97ab75ba3e5ceacb4b1961a1f22788b428a3
show more ...
|
| 447e699f | 05-Aug-2021 |
Boon Khai Ng <boon.khai.ng@intel.com> |
feat(intel): add macro to switch between different UART PORT
HSD #1509626040: This patch is to add the flexibility for BL2 and BL31 to choose different UART output port at platform_def.h using param
feat(intel): add macro to switch between different UART PORT
HSD #1509626040: This patch is to add the flexibility for BL2 and BL31 to choose different UART output port at platform_def.h using parameter PLAT_INTEL_UART_BASE
This patch also fixing the plat_helpers.S where the UART BASE is hardcoded to PLAT_UART0_BASE. It is then switched to CRASH_CONSOLE_BASE.
Signed-off-by: Boon Khai Ng <boon.khai.ng@intel.com> Change-Id: Iccfa7ec64e4955b531905778be4da803045d3c8f
show more ...
|
| 77902fca | 16-Mar-2022 |
Sieu Mun Tang <sieu.mun.tang@intel.com> |
feat(intel): add SMC support for ROM Patch SHA384 mailbox
HSD #16014059592: Add support for ROM Patch SHA384 mailbox SMC call.
Signed-off-by: Kris Chaplin <kris.chaplin@linux.intel.com> Signed-off-
feat(intel): add SMC support for ROM Patch SHA384 mailbox
HSD #16014059592: Add support for ROM Patch SHA384 mailbox SMC call.
Signed-off-by: Kris Chaplin <kris.chaplin@linux.intel.com> Signed-off-by: Sieu Mun Tang <sieu.mun.tang@intel.com> Change-Id: Ide9a7af41a089980745cb7216a9bf85e7fbd84e3
show more ...
|
| 510dc79c | 18-Mar-2022 |
Sandrine Bailleux <sandrine.bailleux@arm.com> |
refactor(corstone700): namespace MHU driver filenames
There are plans to contribute a generic MHU driver to the TF-A code base in the short term.
In preparation for this, rename the Corstone-700 MH
refactor(corstone700): namespace MHU driver filenames
There are plans to contribute a generic MHU driver to the TF-A code base in the short term.
In preparation for this, rename the Corstone-700 MHU driver source files and prefix them with the name of the platform to avoid any ambiguity or name clashes with the upcoming generic MHU driver. Also rename the header guard accordingly.
This renaming is inline with other platform-specific MHU drivers, such as the ones used on Broadcom [1], Socionext [2] or Amlogic [3] platforms.
[1] plat/brcm/common/brcm_mhu.h [2] plat/socionext/synquacer/drivers/mhu/sq_mhu.h [3] plat/amlogic/common/aml_mhu.c
Change-Id: I8a5e5b16e7c19bf931a90422dfca8f6a2a0663b4 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
show more ...
|
| 83b3ed26 | 03-Mar-2022 |
David Vincze <david.vincze@arm.com> |
style(plat/arm/corstone1000): resolve checkpatch warnings
Change-Id: Ic8cb9b0834806675c792018e809d7ba77fbe856f Signed-off-by: David Vincze <david.vincze@arm.com> |
| f87de907 | 07-Feb-2022 |
Nicolas Toromanoff <nicolas.toromanoff@foss.st.com> |
feat(stm32mp1): retry 3 times FWU trial boot
If we reboot 3 times in trial mode, BL2 will select previous boot image.
Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@foss.st.com> Change-Id: I
feat(stm32mp1): retry 3 times FWU trial boot
If we reboot 3 times in trial mode, BL2 will select previous boot image.
Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@foss.st.com> Change-Id: I82b423cc84f0471fdb6fa7c393fc5fe411d25c06
show more ...
|
| e633f9c5 | 28-Mar-2022 |
Yann Gautier <yann.gautier@st.com> |
refactor(stm32mp1): update backup reg for FWU
Change the backup register used to store FWU parameters from 21 to 10. This is chosen to have a Read/Write secure and Read non-secure register. The mapp
refactor(stm32mp1): update backup reg for FWU
Change the backup register used to store FWU parameters from 21 to 10. This is chosen to have a Read/Write secure and Read non-secure register. The mapping is also changed: only the first 4 bits will be used to store the FWU index. The 4 next bits will be used to store count info. The other bits are reserved.
Signed-off-by: Yann Gautier <yann.gautier@st.com> Signed-off-by: Nicolas Toromanoff <nicolas.toromanoff@foss.st.com> Change-Id: I9249768287ec5688ba2d8711ce04d429763543d7
show more ...
|