- 19 Apr, 2019 3 commits
-
-
Andrew F. Davis authored
This should be more secure and looks a bit cleaner. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: Ie5eaf0234b211ba02631cf5eab5faa1402a34461
-
Andrew F. Davis authored
We don't use this for anything right now, remove it. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: I11505d01834f7ff1fdba46fda0acbb3b56fc9b66
-
Andrew F. Davis authored
This makes definitions more consistent, plus helps alignment. Signed-off-by: Andrew F. Davis <afd@ti.com> Change-Id: I38fcdd76207586613d9934c9dc83d7a347e9e0fc
-
- 11 Feb, 2019 6 commits
-
-
Andrew F. Davis authored
ATF should be the only host needing to control a processor that it has started. ATF will need this control to stop the core later. Do not relinquish control of a core after starting the core. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
Now that we have non-blocking TI-SCI functions we can initiate the shutdown sequence from the PSCI handler without needing the ti_sci_proc_shutdown helper function, which is removed. This gives us the greater control and flexibility that will be needed when cluster power down sequences are added. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
Most TI-SCI functions request an ACK and wait until it is received. For some power sequence tasks we cannot wait but instead queue messages asynchronously. Three messages have been identified that will need to be used in this way. Add non-waiting versions of these functions. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
Currently almost all TI-SCI messages request and check for an ACK from the system firmware. Move this into a common place to remove the same from each function. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
When a device is requested with TI-SCI its control can be made exclusive to the requesting host. This was currently the default but is not what is needed most of the time. Add _exclusive versions of the request functions and remove the exclusive flag from the default version. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
The raw get and set state functions for both devices and clocks are only meant for use internal to the TI-SCI driver, the same functionality is available from the other API that call into these. Remove them from the external interface and make them static scope to the driver. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 22 Jan, 2019 1 commit
-
-
Andrew F. Davis authored
Valid addresses for GICR base are always a set calculable distance from the GICD and is based on the number of cores a given instance of GICv3 IP can support. The formula for the number of address bits is given by the ARM GIC-500 TRM section 3.2 as 2^(18+log2(cores)) with the MSB set to one for GICR instances. Holes in the GIC address space are also guaranteed to safely return 0 on reads. This allows us to support runtime detection of the GICR base address by starting from GIC base address plus BIT(18) and walking until the GICR ID register (IIDR) is detected. We stop searching after BIT(20) to prevent searching out into space if something goes wrong. This can be extended out if we ever have a device with 16 or more cores. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 21 Jan, 2019 7 commits
-
-
Andreas Dannenberg authored
To accommodate scenarios where we want to use a UART baud rate other than the default 115,200 allow the associated compiler definition to be set via the K3_USART_BAUD build option by updating the platform make file. Since the platform make file now also contains the default value (still 115,200), go ahead and remove the redundant definition from the platform header file. Suggested-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
-
Andrew F. Davis authored
Send and receive currently must be be serialized, any message already in the receive queue when a new message is to be sent will cause a mismatch with the expected response from this new message. Clear out all messages from the response queue before sending a new request. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Nishanth Menon <nm@ti.com>
-
Andrew F. Davis authored
It can be needed to discard all messages in a receive queue. This can be used during some error recovery situations. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Nishanth Menon <nm@ti.com>
-
Andrew F. Davis authored
To ensure WFI is reached before the PSC is trigger to power-down a processor, the shutdonw API must be used. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Nishanth Menon <nm@ti.com>
-
Andrew F. Davis authored
This is a pseudo-API command consisting of a wait processor status command and a set device state command queued back-to-back without waiting for the System Firmware to ACK either message. This is needed as the K3 power down specification states the System Firmware must wait for a processor to be in WFI/WFE before powering it down. The current implementation of System Firmware does not provide such a command. Also given that with PSCI the core to be shutdown is the core that is processing the shutdown request, the core cannot itself wait for its own WFI/WFE status. To workaround this limitation, we submit a wait processor status command followed by the actual shutdown command. The shutdown command will not be processed until the wait command has finished. In this way we can continue to WFI before the wait command status has been met or timed-out and the shutdown command is processed. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Nishanth Menon <nm@ti.com>
-
Andrew F. Davis authored
This TI-SCI API can be used wait for a set of processor status flags to be set or cleared. The flags are processor type specific. This command will not return ACK until the specified status is met. NACK will be returned after the timeout elapses or on error. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Nishanth Menon <nm@ti.com>
-
Andrew F. Davis authored
The logic is correct here, but the error messages are reversed, switch them. Signed-off-by: Andrew F. Davis <afd@ti.com> Acked-by: Nishanth Menon <nm@ti.com>
-
- 04 Jan, 2019 1 commit
-
-
Antonio Nino Diaz authored
Enforce full include path for includes. Deprecate old paths. The following folders inside include/lib have been left unchanged: - include/lib/cpus/${ARCH} - include/lib/el3_runtime/${ARCH} The reason for this change is that having a global namespace for includes isn't a good idea. It defeats one of the advantages of having folders and it introduces problems that are sometimes subtle (because you may not know the header you are actually including if there are two of them). For example, this patch had to be created because two headers were called the same way: e0ea0928 ("Fix gpio includes of mt8173 platform to avoid collision."). More recently, this patch has had similar problems: 46f9b2c3 ("drivers: add tzc380 support"). This problem was introduced in commit 4ecca339 ("Move include and source files to logical locations"). At that time, there weren't too many headers so it wasn't a real issue. However, time has shown that this creates problems. Platforms that want to preserve the way they include headers may add the removed paths to PLAT_INCLUDES, but this is discouraged. Change-Id: I39dc53ed98f9e297a5966e723d1936d6ccf2fc8f Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 07 Dec, 2018 1 commit
-
-
Julius Werner authored
This patch makes the build system link the console framework code by default, like it already does with other common libraries (e.g. cache helpers). This should not make a difference in practice since TF is linked with --gc-sections, so the linker will garbage collect all functions and data that are not referenced by any other code. Thus, if a platform doesn't want to include console code for size reasons and doesn't make any references to console functions, the code will not be included in the final binary. To avoid compatibility issues with older platform ports, only make this change for the MULTI_CONSOLE_API. Change-Id: I153a9dbe680d57aadb860d1c829759ba701130d3 Signed-off-by: Julius Werner <jwerner@chromium.org>
-
- 08 Nov, 2018 1 commit
-
-
Antonio Nino Diaz authored
All identifiers, regardless of use, that start with two underscores are reserved. This means they can't be used in header guards. The style that this project is now to use the full name of the file in capital letters followed by 'H'. For example, for a file called "uart_example.h", the header guard is UART_EXAMPLE_H. The exceptions are files that are imported from other projects: - CryptoCell driver - dt-bindings folders - zlib headers Change-Id: I50561bf6c88b491ec440d0c8385c74650f3c106e Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 30 Oct, 2018 1 commit
-
-
Andrew F. Davis authored
A recent patch[0] has made setting up page tables into generic code, complete the conversion for TI platforms by removing the use of plat_arm_get_mmap() and using the mmap table directly. [0] 0916c38d ("Convert arm_setup_page_tables into a generic helper") Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 26 Oct, 2018 1 commit
-
-
Roberto Vargas authored
This function is not related to Arm platforms and can be reused by other platforms if needed. Change-Id: Ia9c328ce57ce7e917b825a9e09a42b0abb1a53e8 Co-authored-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com> Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 25 Oct, 2018 1 commit
-
-
Antonio Nino Diaz authored
Even though at this point plat_crash_console_flush is optional, it will stop being optional in a following patch. The console driver of warp7 doesn't support flush, so the implementation is a placeholder. TI had ``plat_crash_console_init`` and ``plat_crash_console_putc``, but they weren't global so they weren't actually used. Also, they were calling the wrong functions. imx8_helpers.S only has placeholders for all of the functions. Change-Id: I8d17bbf37c7dad74e134c61ceb92acb9af497718 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 16 Oct, 2018 1 commit
-
-
Andrew F. Davis authored
Leave the caches on and explicitly flush any data that may be stale when the core is powered down. This prevents non-coherent interconnect access which has negative side- effects on AM65x. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 28 Sep, 2018 1 commit
-
-
Antonio Nino Diaz authored
- Migrate to bl31_early_platform_setup2(). - Remove references to removed build options. Change-Id: Ie9f149e3fdec935f9329402ed3dd8e1c00b8832c Acked-by: Andrew F. Davis <afd@ti.com> Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
-
- 31 Aug, 2018 1 commit
-
-
Andrew F. Davis authored
Use TI-SCI messages to request core power down from system controller firmware. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 22 Aug, 2018 8 commits
-
-
Andrew F. Davis authored
Use TI-SCI messages to request reset from system controller firmware. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
Use TI-SCI messages to request core start from system controller firmware. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
TI-SCI message protocol provides support for controlling of various physical cores available in the SoC. In order to control which host is capable of controlling a physical processor core, there is a processor access control list that needs to be populated as part of the board configuration data. Introduce support for the set of TI-SCI message protocol APIs that provide us with this capability of controlling physical cores. Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Andreas Dannenberg <dannenberg@ti.com>
-
Andrew F. Davis authored
Since system controller now has control over SoC power management, core operation such as reset need to be explicitly requested to reboot the SoC. Add support for this here. Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Andreas Dannenberg <dannenberg@ti.com>
-
Andrew F. Davis authored
TI-SCI message protocol provides support for management of various hardware entities within the SoC. In general, we expect to function at a device level of abstraction, however, for proper operation of hardware blocks, many clocks directly supplying the hardware block needs to be queried or configured. Introduce support for the set of TI-SCI message protocol support that provide us with this capability. Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Andreas Dannenberg <dannenberg@ti.com>
-
Andrew F. Davis authored
TI-SCI message protocol provides support for management of various hardware entitites within the SoC. We introduce the fundamental device management capability support to the driver protocol as part of this change. Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Andreas Dannenberg <dannenberg@ti.com>
-
Andrew F. Davis authored
Texas Instrument's System Control Interface (TI-SCI) Message Protocol is used in Texas Instrument's System on Chip (SoC) such as those in K3 family AM654x SoCs to communicate between various compute processors with a central system controller entity. TI-SCI message protocol provides support for management of various hardware entities within the SoC. Add support driver to allow communication with system controller entity within the SoC. Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Andreas Dannenberg <dannenberg@ti.com>
-
Andrew F. Davis authored
Secure Proxy module manages hardware threads that are meant for communication between the processor entities. Add support for this here. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 26 Jul, 2018 1 commit
-
-
Andrew F. Davis authored
We can enter and exit coherency without any software operations, but HW_ASSISTED_COHERENCY has stronger implications that are causing issues. Until these can be resolved, only use the weaker WARMBOOT_ENABLE_DCACHE_EARLY flag. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 24 Jul, 2018 1 commit
-
-
Daniel Boulby authored
Change arm_setup_page_tables() to take a variable number of memory regions. Remove coherent memory region from BL1, BL2 and BL2U as their coherent memory region doesn't contain anything and therefore has a size of 0. Add check to ensure this doesn't change without us knowing. Change-Id: I790054e3b20b056dda1043a4a67bd7ac2d6a3bc0 Signed-off-by: Daniel Boulby <daniel.boulby@arm.com>
-
- 29 Jun, 2018 2 commits
-
-
Andrew F. Davis authored
To wake a core from wfi interrupts must be enabled, in some cases they may not be and so we can lock up here. Unconditionally enable interrupts before wfi and then restore interrupt state. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Andrew F. Davis authored
Actions may need to be taken by the last core when all clusters have been shutdown. Add a top level root domain node to coordinate this between clusters. Signed-off-by: Andrew F. Davis <afd@ti.com>
-
- 19 Jun, 2018 2 commits
-
-
Benjamin Fair authored
These functions are used for the PSCI implementation and are needed to build BL31, but we cannot implement them until we add several more drivers related to ti-sci so these are only stubs for now. Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Benjamin Fair <b-fair@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com>
-
Nishanth Menon authored
Do proper initialization of GIC V3. This will allow CP15 access to GIC from "normal world" (aka HLOS) via mrc/mcr calls. K3 SoC family uses GICv3 compliant GIC500 without compatibility for legacy GICv2. Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Benjamin Fair <b-fair@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com>
-