| 652c1ab1 | 19-Apr-2024 |
Michal Simek <michal.simek@amd.com> |
fix(xilinx): check proc variable before use
Check return value from pm_get_proc() to make sure that CPU is valid.
Signed-off-by: Michal Simek <michal.simek@amd.com> Change-Id: If51b5d42ce87f31fd732
fix(xilinx): check proc variable before use
Check return value from pm_get_proc() to make sure that CPU is valid.
Signed-off-by: Michal Simek <michal.simek@amd.com> Change-Id: If51b5d42ce87f31fd732ab58ae8fcd0e2db0a2a8
show more ...
|
| 1064bc6c | 22-Jan-2024 |
Joanna Farley <joanna.farley@arm.com> |
Merge changes from topic "idling-during-subsystem-restart" into integration
* changes: fix(xilinx): add console_flush() before shutdown fix(xilinx): fix sending sgi to linux feat(xilinx): add
Merge changes from topic "idling-during-subsystem-restart" into integration
* changes: fix(xilinx): add console_flush() before shutdown fix(xilinx): fix sending sgi to linux feat(xilinx): add new state to identify cpu power down feat(xilinx): request cpu power down from reset feat(xilinx): power down all cores on receiving cpu pwrdwn req feat(xilinx): add handler for power down req sgi irq feat(xilinx): add wrapper to handle cpu power down req fix(versal-net): use arm common GIC handlers fix(xilinx): rename macros to align with ARM
show more ...
|
| 6a80c20e | 11-Jan-2024 |
Akshay Belsare <akshay.belsare@amd.com> |
fix(xilinx): deprecate SiP service count query
As per SMCCC Section 6.2, the call count query for all the services has been deprecated from SMCCC v1.2 onwards.
Inline with above change, AMD-Xilinx
fix(xilinx): deprecate SiP service count query
As per SMCCC Section 6.2, the call count query for all the services has been deprecated from SMCCC v1.2 onwards.
Inline with above change, AMD-Xilinx SiP service count query has been deprecated and now onwards will return unknown function identifier error.
Change-Id: I296d119d65549fdb01718d08351d255550e4ead0 Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
show more ...
|
| 59497016 | 12-Sep-2023 |
Jay Buddhabhatti <jay.buddhabhatti@amd.com> |
feat(xilinx): add new state to identify cpu power down
Currently there is only 1 state for CPU idle which is used while CPU power down from Linux CPU idle feature. But CPU power down when firmware s
feat(xilinx): add new state to identify cpu power down
Currently there is only 1 state for CPU idle which is used while CPU power down from Linux CPU idle feature. But CPU power down when firmware send CPU power down request needs new state in self suspend to distinguish in firmware for CPU power down from power down request or CPU power down from Linux CPU idle. So add new state PM_STATE_CPU_OFF to indicate CPU power down from power down request from firmware.
PM_STATE_CPU_OFF state is supported from self-suspend version 3. So added feature check which sends new state in case of new firmware and old state i.e. PM_STATE_CPU_IDLE in case of old firmware.
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id: I4118e1b813e5f76fca7b7e9ca1cc598715203fb0
show more ...
|
| 88ee0816 | 19-Jun-2023 |
Jay Buddhabhatti <jay.buddhabhatti@amd.com> |
feat(xilinx): request cpu power down from reset
Send subsystem restart notification to firmware when TF-A receives system reset PSCI call. On receiving subsystem restart call, firmware will send CPU
feat(xilinx): request cpu power down from reset
Send subsystem restart notification to firmware when TF-A receives system reset PSCI call. On receiving subsystem restart call, firmware will send CPU idle callback to TF-A for powering down all cores. Wait for CPU idle callback from firmware and raise power down request to all cores after it receives CPU idle callback to power down core.
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id: I50f417ae228017f38b648740dc90b2e8f1872620
show more ...
|
| ade92a64 | 25-Apr-2023 |
Jay Buddhabhatti <jay.buddhabhatti@amd.com> |
feat(xilinx): add handler for power down req sgi irq
On receiving CPU power down callback, TF-A raises SGI interrupt to all active cores to power down each active cores. Add handler for this SGI IRQ
feat(xilinx): add handler for power down req sgi irq
On receiving CPU power down callback, TF-A raises SGI interrupt to all active cores to power down each active cores. Add handler for this SGI IRQ.
By default TF-A uses SGI 6 for CPU power down request. This can be configurable through CPU_PWRDWN_SGI build flag.
e.g., If user wants to use SGI 7 instead of SGI 6 then provide build flag CPU_PWRDWN_SGI=7
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id: Id0df32187d1de3f0af4486eb4d4930cb3ab01dbd
show more ...
|
| b2259261 | 06-Oct-2023 |
Jay Buddhabhatti <jay.buddhabhatti@amd.com> |
fix(versal-net): use arm common GIC handlers
Currently SGI interrupts are not received in secondary cores because of issue in GIC configuration. In current Versal NET specific GIC functions, redist
fix(versal-net): use arm common GIC handlers
Currently SGI interrupts are not received in secondary cores because of issue in GIC configuration. In current Versal NET specific GIC functions, redistributor configuration is not happening properly. Because of that SGI interrupt from one processor to another processor is not transferring. So, use common GIC handlers which will iterate over all GIC redistributor frames and discovers per cpu redistributor frame. Also, it initializes corresponding interface in GICv3.
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id: I1433260b8520d6a315fdf5df86bd0688f92d211a
show more ...
|
| 79953190 | 05-Oct-2023 |
Jay Buddhabhatti <jay.buddhabhatti@amd.com> |
fix(xilinx): rename macros to align with ARM
Use generic macro name as per common ARM GIC macro name for Versal and Versal NET.
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id:
fix(xilinx): rename macros to align with ARM
Use generic macro name as per common ARM GIC macro name for Versal and Versal NET.
Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@amd.com> Change-Id: I2987ff2f612993fc80979f0179c04d316259ed1d
show more ...
|
| cc3374ac | 20-Dec-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
refactor(xilinx): move plat_get_syscnt_freq2 to common file
The code in the AMD-Xilinx platform for Versal and Versal NET is being refactored to move the plat_get_syscnt_freq2() function to a common
refactor(xilinx): move plat_get_syscnt_freq2 to common file
The code in the AMD-Xilinx platform for Versal and Versal NET is being refactored to move the plat_get_syscnt_freq2() function to a common file. This common function is utilized for obtaining the CPU clock frequency from the platform.
Change-Id: I7a4c3fa43a2941d51cacd259c57b24e545aea848 Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
show more ...
|
| 1f02024b | 20-Dec-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
refactor(versal-net): rename VERSAL_NET_IOU_SCNTRS register to generic
Refactor, the macro named VERSAL_NET_IOU_SCNTRS is being renamed to a more generic macro name, which will be used in common cod
refactor(versal-net): rename VERSAL_NET_IOU_SCNTRS register to generic
Refactor, the macro named VERSAL_NET_IOU_SCNTRS is being renamed to a more generic macro name, which will be used in common code to enable reuse across various platforms.
Change-Id: I548437e0fe2d73b196468bc92029f8099ea1f8d1 Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
show more ...
|
| 07625d9d | 20-Dec-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
fix(versal-net): setup counter frequency
Refactor the system counter configuration into the syscnt_freq_config_setup() function as it involves timestamp and system counter configuration, which requi
fix(versal-net): setup counter frequency
Refactor the system counter configuration into the syscnt_freq_config_setup() function as it involves timestamp and system counter configuration, which requires early configuration for clock setup and read the value of the IOU_SCNTRS_BASE_FREQ register using mmio_read_32() to determine the counter frequency.
If the counter frequency is zero, the system will set the default CPU clocks constants in TF-A and displays message. However, if the counter frequency is non-zero, the program will return the value stored in the IOU_SCNTRS_BASE_FREQ register.
The issue lies in dcc_status_timeout(),function verifying timeout status, particularly within timeout_cnt_us2cnt(), converting microseconds to counter ticks using read_cntfrq_el0(), which returns zero. timeout_elapsed() then checks if the current counter from read_cntpct_el0() exceeds the expiration count, reached to timeout.
After the function set_cnt_freq() writes into the counter frequency register, the function timeout_cnt_us2cnt() is used to obtain the appropriate counter ticks. Subsequently, the function timeout_elapsed() checks whether the current counter value read_cntpct_el0() has exceeded the specified expiration count. If it has, this indicates that the timeout has lapsed.
Change-Id: Ib9ed3493d22f23c832f8bb7d11c4f727fe1ebe3c Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
show more ...
|
| c0ae04ad | 08-Dec-2023 |
Joanna Farley <joanna.farley@arm.com> |
Merge "feat(versal-net): add bufferless IPI Support" into integration |
| 511e4a48 | 07-Nov-2023 |
Ben Levinsky <ben.levinsky@amd.com> |
feat(versal-net): add bufferless IPI Support
There exist inter-processor interrupts on Versal-Net that do not have corresponding message buffers. These bufferless IPI's on Versal NET SOC are added t
feat(versal-net): add bufferless IPI Support
There exist inter-processor interrupts on Versal-Net that do not have corresponding message buffers. These bufferless IPI's on Versal NET SOC are added to static IPI Tables.
In hardware description there exists two IPI's called 'IPI6' without buffers that have respective system interrupt values 95 and 101. For these append the string '_95' or '_101' to denote the difference for each.
Change-Id: I22bf1a68cb0ed68913eb868f1c197856fc7d82d5 Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
show more ...
|
| 4622da46 | 08-Nov-2023 |
Akshay Belsare <akshay.belsare@amd.com> |
build(versal-net): reorganize platform source files
Reorganize the platform source files necessary across various Bootloader (BL) configurations within the platform makefile. This reordering aims to
build(versal-net): reorganize platform source files
Reorganize the platform source files necessary across various Bootloader (BL) configurations within the platform makefile. This reordering aims to prevent redundant inclusions of these files across multiple makefiles used for distinct features.
Change-Id: I9c5525dd8522cb8c8e3ad6add70189dcb7cfcc29 Signed-off-by: Akshay Belsare <akshay.belsare@amd.com>
show more ...
|
| 1684c8d6 | 06-Nov-2023 |
Joanna Farley <joanna.farley@arm.com> |
Merge changes from topic "enable_assertion" into integration
* changes: feat(zynqmp): enable assertion feat(versal-net): enable assertion feat(versal): enable assertion |
| bfb8d8eb | 06-Nov-2023 |
Joanna Farley <joanna.farley@arm.com> |
Merge "feat(xilinx): switch boot console to runtime" into integration |
| 639b3676 | 27-Oct-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
feat(versal-net): add tsp support
Introduces support for the Test Secure Payload (TSP) for AMD-Xilinx Versal NET platform. TSP is a component for testing and validating secure OS and trusted execut
feat(versal-net): add tsp support
Introduces support for the Test Secure Payload (TSP) for AMD-Xilinx Versal NET platform. TSP is a component for testing and validating secure OS and trusted execution environments.
If a BL32 image is present, then there must be a matching Secure-EL1 Payload Dispatcher (SPD) service called TSPD, this service is responsible for Initializing the TSP. During initialization that service must register a function to carry out initialization of BL32 once the runtime services are fully initialized. BL31 invokes such a registered function to initialize BL32 before running BL33.
The GICv3 driver is initialized in EL3 and does not need to be initialized again in SEL1 GICv3 driver is initialized in EL3 This is because the S-EL1 can use GIC system registers to manage interrupts and does not need GIC interface base addresses to be configured.
The secure code load address is initially being pointed to 0x0 in the handoff parameters, which is different from the default or user-provided load address of 0x60000000. In this case, set up the PC to the requested BL32_BASE address to ensure that the secure code is loaded and executed from the correct location.
Change-Id: I58fe256dc9d6be5cee384c5ebb9baca2737c02a6 Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
show more ...
|
| 51564354 | 26-Oct-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
refactor(xilinx): rename platform function to generic name
Refactor two platform specific functions, plat_versal_get_mmap() and plat_versal_net_get_mmap(), to use a more generic function name plat_g
refactor(xilinx): rename platform function to generic name
Refactor two platform specific functions, plat_versal_get_mmap() and plat_versal_net_get_mmap(), to use a more generic function name plat_get_mmap(). The function can be used in the common code to obtain memory region.
Change-Id: I3eeb24aff217eef30af60a7742cbebe9d3b2edce Signed-off-by: Prasad Kummari <prasad.kummari@amd.com>
show more ...
|
| 80cb4b14 | 30-Oct-2023 |
Amit Nagal <amit.nagal@amd.com> |
feat(versal-net): enable assertion
Retain assertions in release builds by building TF-A with ENABLE_ASSERTIONS=1. It helps to catch programming errors (e.g. bad argument provided by platform porting
feat(versal-net): enable assertion
Retain assertions in release builds by building TF-A with ENABLE_ASSERTIONS=1. It helps to catch programming errors (e.g. bad argument provided by platform porting function) in release builds as well. code size change is 4k. For debug builds, assertions are enabled by default. The same change is done by Tegra: plat/nvidia/tegra/platform.mk
Change-Id: I0db4b82d42d115866a3ed43933edbfc46ac7406a Signed-off-by: Amit Nagal <amit.nagal@amd.com>
show more ...
|
| 9c1c8f01 | 13-Oct-2023 |
Michal Simek <michal.simek@amd.com> |
feat(xilinx): switch boot console to runtime
Switch boot console to runtime at bl31_plat_runtime_setup() for all Xilinx SOCs to follow default behavior. Till now boot console is used for the whole l
feat(xilinx): switch boot console to runtime
Switch boot console to runtime at bl31_plat_runtime_setup() for all Xilinx SOCs to follow default behavior. Till now boot console is used for the whole lifecycle of TF-A. On the other hand there is no option to configure different boot and run time console that's why this isn't really a issue.
Documentation is describing default behavior like this: " Function : bl31_plat_runtime_setup() [optional] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
::
Argument : void Return : void
The purpose of this function is allow the platform to perform any BL31 runtime setup just prior to BL31 exit during cold boot. The default weak implementation of this function will invoke ``console_switch_state()`` to switch console output to consoles marked for use in the ``runtime`` state. "
Change-Id: I08baa722dfd8b37b4440e84accf3baaeb01a686f Signed-off-by: Michal Simek <michal.simek@amd.com>
show more ...
|
| a467e813 | 20-Sep-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
feat(versal-net): retrieval of console information from dtb
Introduces functionality to retrieve console information from the device tree (DTB) and use it in TF-A code.
Comparing early console info
feat(versal-net): retrieval of console information from dtb
Introduces functionality to retrieve console information from the device tree (DTB) and use it in TF-A code.
Comparing early console information and the data populated from the DTB. In case of a mistmatch, the changes takes care of unregistering the build time console configuration and registering the DTB-based console.
Reorganizes the console configuration setup in BL31 by moving it to a dedicated function called setup_console() in the plat_console.c file. This change improves code readability by isolating console- related settings, making it easier to manage and extend the console configuration in the future.
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com> Change-Id: I7b6ebad0e91133ab5fbda8f3a8663abfb6dd2458
show more ...
|
| c1e84aca | 04-Oct-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
refactor(xilinx): create generic function for clock retrieval
Refactors the code in the AMD-Xilinx platform for Versal and Versal NET to create a more generic function for obtaining clock signals fr
refactor(xilinx): create generic function for clock retrieval
Refactors the code in the AMD-Xilinx platform for Versal and Versal NET to create a more generic function for obtaining clock signals from the platform. The new function get_uart_clk is specific to each platform and providing greater flexibility for clock signal retrieval in various parts of the codebase.
Signed-off-by: Prasad Kummari <prasad.kummari@amd.com> Change-Id: Iff67315339b2651c9bea73af0d89fcbad2bb332a
show more ...
|
| e2ef1dfc | 04-Oct-2023 |
Prasad Kummari <prasad.kummari@amd.com> |
fix(versal-net): use correct macro name for uart baudrate
Address an issue where incorrect macro name is being used for setting the UART buad rate. Updated the code to use the appropriate macro name
fix(versal-net): use correct macro name for uart baudrate
Address an issue where incorrect macro name is being used for setting the UART buad rate. Updated the code to use the appropriate macro name, ensuring that baud rate name is proper.
Fixes: 04a483359fef ("feat(xilinx): sync macro names") Signed-off-by: Prasad Kummari <prasad.kummari@amd.com> Change-Id: I27dd8b1559beb0cf7b872de037adc95a948ecc2f
show more ...
|
| f9820f21 | 27-Sep-2023 |
Michal Simek <michal.simek@amd.com> |
fix(xilinx): remove console error message
If console is not found there is no way where to print information about it. Currently only cdns/dcc/pl011 uarts are supported that's why remove the message
fix(xilinx): remove console error message
If console is not found there is no way where to print information about it. Currently only cdns/dcc/pl011 uarts are supported that's why remove the message which none can see anyway. But keep "else" part with comment to avoid misra c rule 15.7 violation which is also missing in Versal NET implementation.
Change-Id: I78e3baffd2288d2a4673099bf193f22029912840 Signed-off-by: Michal Simek <michal.simek@amd.com>
show more ...
|
| 04a48335 | 27-Sep-2023 |
Michal Simek <michal.simek@amd.com> |
feat(xilinx): sync macro names
There is no reason to have platform specific macros where generic macros can be used. This is pretty much preparation step for moving console code to single location w
feat(xilinx): sync macro names
There is no reason to have platform specific macros where generic macros can be used. This is pretty much preparation step for moving console code to single location where multiple combinations can be easier to handle.
Change-Id: I4d85ddef29f5870a9ea9590d4d1564469c6eb87e Signed-off-by: Michal Simek <michal.simek@amd.com>
show more ...
|