| 76500cea | 28-Oct-2025 |
Abhash Kumar Jha <a-kumar2@ti.com> |
feat(k3): handle suspend in case of LPM_BOARDCFG_MANAGED
The J7 platforms support LPM_BOARDCFG_MANAGED[1] capability where the low power mode configuration is done statically for the DM via the pm-b
feat(k3): handle suspend in case of LPM_BOARDCFG_MANAGED
The J7 platforms support LPM_BOARDCFG_MANAGED[1] capability where the low power mode configuration is done statically for the DM via the pm-boardcfg. The specific suspend modes (eg: LPM_SOC_OFF, LPM_MCU_ONLY) are not sent as a separate firmware capability like they are in the case of LPM_DM_MANAGED.
Hence, split the firmware capability check to first look for the DM_MANAGED or BOARDCFG_MANAGED capability and register the pwr_domain_suspend psci callback accordingly.
Introduce LPM_BOARDCFG_MANAGED cap to handle suspend for J7 platforms as well.
Link: [1] https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/general/core.html#tisci-msg-query-fw-caps
Change-Id: Iaa0ab478cbe0db6652f61e9d733c0fddb4bab234 Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
show more ...
|
| ea83fd87 | 11-Feb-2025 |
Richard Genoud <richard.genoud@bootlin.com> |
feat(ti): add message to encrypt tfa during suspend
On some K3 plaforms, BL31 runs from an internal SRAM. During low power modes like SOC_OFF, IO_ONLY_PLUS_DDR etc, the power to the SRAM is cut off
feat(ti): add message to encrypt tfa during suspend
On some K3 plaforms, BL31 runs from an internal SRAM. During low power modes like SOC_OFF, IO_ONLY_PLUS_DDR etc, the power to the SRAM is cut off and only the DDR is active in self-refresh state.
Hence at suspend, BL31 with its context should be encrypted by TIFS and saved in DDR. Encryption is needed so that the BL31 is not tampered with while in DRAM.
We only need the encryption function here because the decryption message will be send by the R5 SPL at resume.
Also introduce the LPM_ENCRYPT_IMAGE[1] capability which signals that FW has the support to encrypt the image using the TISCI_MSG_LPM_ENCRYPT[2] tisci message.
The encrypt_tfa message requires that the LPM_SAVE_ADDR[3] message is sent during boot. This is taken care of by the bootloader.
Link: [1] https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/general/core.html#tisci-msg-query-fw-caps Link: [2] https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/pm/lpm.html#lpm-msg-lpm-encrypt Link: [3] https://software-dl.ti.com/tisci/esd/latest/2_tisci_msgs/pm/lpm.html#lpm-msg-lpm-save-addr
Change-Id: I266472da87dd0821493019b2d9853f8886f33811 Signed-off-by: Richard Genoud <richard.genoud@bootlin.com> Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
show more ...
|
| 9b1350de | 06-Jan-2026 |
Abhash Kumar Jha <a-kumar2@ti.com> |
feat(k3): choose PLAT_CLUSTER_DEVICE_START_ID depending on the SoC
The CLUSTER_DEVICE_START_ID denotes the device id of the A-core cluster. It is utilized when powering off the entire cluster.
The
feat(k3): choose PLAT_CLUSTER_DEVICE_START_ID depending on the SoC
The CLUSTER_DEVICE_START_ID denotes the device id of the A-core cluster. It is utilized when powering off the entire cluster.
The "generic" boards include J7200, J721E, J721S2 and AM65X platforms.
PLAT_CLUSTER_DEVICE_START_ID should be 4 instead of 198 on J7200[1], J721E[2] and J721S2[3]. It is 198 only for AM65X[4].
This breaks PSCI APIs around cluster control and is exposed when suspend-to-ram is enabled.
Query the JTAG_ID to get the SoC part number and choose the CLUSTER_DEVICE_START_ID_AM65X when AM65X SoC is detected, else use the PLAT_CLUSTER_DEVICE_START_ID that is defined in the respective "board_def" file.
Link: [1] https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j7200/devices.html Link: [2] https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721e/devices.html Link: [3] https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j721s2/devices.html Link: [4] https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/am65x_sr2/devices.html
Change-Id: Idcd47c94e06996e8c1d68b49f13d4d693e95b17d Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
show more ...
|
| bfac44b5 | 24-Mar-2025 |
Dhruva Gole <d-gole@ti.com> |
refactor(ti): move out k3/common to ti/common
This will allow us to support more platforms that share commonalities like the k3_gicv3, console, helpers, etc. With this new common folder location, we
refactor(ti): move out k3/common to ti/common
This will allow us to support more platforms that share commonalities like the k3_gicv3, console, helpers, etc. With this new common folder location, we can move the previously created ti_bl31_setup file into the new location so it can be shared across multiple TI SoCs when need comes. With this, also update all copyright dates.
Change-Id: Ie4365e32cd3b4b5870fe2cd03843400506e46265 Signed-off-by: Dhruva Gole <d-gole@ti.com>
show more ...
|
| f70572ee | 21-Mar-2025 |
Dhruva Gole <d-gole@ti.com> |
refactor(ti): add top level ti_sci transport layer
The TI SCI transport header will allow us to abstract all transport related calls from the actual medium of transport which can vary from device to
refactor(ti): add top level ti_sci transport layer
The TI SCI transport header will allow us to abstract all transport related calls from the actual medium of transport which can vary from device to device. For eg. it is sec proxy for current TI K3 devices, but in future it maybe mailbox like in the TI AM62L. With this change, we no longer need to include anything from the IPC folder, so drop it from plat_common.mk
Change-Id: Ic99209688cf69f20e694e31e553ce4ec74254669 Signed-off-by: Dhruva Gole <d-gole@ti.com>
show more ...
|
| a53d1377 | 29-Jan-2024 |
Manorit Chawdhry <m-chawdhry@ti.com> |
Revert "fix(ti): do not take system power reference in bl31_platform_setup()"
The workaround that we required to get over the timing issue with our Device Manager is fixed in [0], revert the workaro
Revert "fix(ti): do not take system power reference in bl31_platform_setup()"
The workaround that we required to get over the timing issue with our Device Manager is fixed in [0], revert the workaround as it is no longer required.
[0]: https://git.ti.com/cgit/processor-firmware/ti-linux-firmware/commit?id=9ad862b528112f7bc26d80668fbb9b38521cddf9
This reverts commit 9977948112d732935362a3fe8518e3b2e4b7f6b7. It also adds a check to make this backward compatible.
Change-Id: Icf10f9df9558de1ae7ba6f5f586485111aac4f8d Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
show more ...
|
| 73d772d8 | 29-Jan-2024 |
Manorit Chawdhry <m-chawdhry@ti.com> |
refactor(ti): remove ti_sci_init function
ti_sci_get_revision handles getting the firmware version and ti_sci_init is just a wrapper around it with no added benefit.
Refactor the ti_sci_get_revisio
refactor(ti): remove ti_sci_init function
ti_sci_get_revision handles getting the firmware version and ti_sci_init is just a wrapper around it with no added benefit.
Refactor the ti_sci_get_revision to give the version information and remove ti_sci_init wrapper.
Change-Id: I39184af5b00bedc8b9220533f1ddac3b6672d2f1 Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
show more ...
|
| ce1008fe | 26-Jun-2023 |
Andrew Davis <afd@ti.com> |
feat(ti): query firmware for suspend capability
Instead of hardcoding this at build time we can ask the firmware if suspend is supported and if not disable accordingly. Then remove compile- time ifd
feat(ti): query firmware for suspend capability
Instead of hardcoding this at build time we can ask the firmware if suspend is supported and if not disable accordingly. Then remove compile- time ifdefs.
Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: Ib966c04c0bdb79a82e8d890cec5e65d883acd6e3
show more ...
|
| 312eec3e | 13-Mar-2023 |
Andrew Davis <afd@ti.com> |
feat(ti): synchronize access to secure proxy threads
When communicating with the system controller over secure proxy we clear a thread, write our message, then wait for a response. This must not be
feat(ti): synchronize access to secure proxy threads
When communicating with the system controller over secure proxy we clear a thread, write our message, then wait for a response. This must not be interrupted by a different transfer on the same thread. Take a lock during this sequence to prevent contention.
Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: I7789f017fde7180ab6b4ac07458464b967c8e580
show more ...
|
| 6688fd7a | 16-May-2022 |
Andrew Davis <afd@ti.com> |
refactor(ti): refactor ti_sci_{setup,do}_xfer to allow zero size response
This allows us to use the common xfer setup path even for no-wait messages. Then factor that out of each no-wait function.
refactor(ti): refactor ti_sci_{setup,do}_xfer to allow zero size response
This allows us to use the common xfer setup path even for no-wait messages. Then factor that out of each no-wait function.
Signed-off-by: Andrew Davis <afd@ti.com> Change-Id: Ib17d3facd293f3fc91dda56b2906121b43250261
show more ...
|