summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorManorit Chawdhry <m-chawdhry@ti.com>2026-05-27 12:09:27 +0530
committerManorit Chawdhry <m-chawdhry@ti.com>2026-07-20 16:31:40 +0000
commit29681cdf948e9e5e047cc9c85d18cd98dad24104 (patch)
tree3ba2ffed2cac0bae4784cfa61aa48f33d6009903 /drivers
parent3cdec2d200b74622c1640feba8e336800b3ea1e6 (diff)
downloadarm-trusted-firmware-29681cdf948e9e5e047cc9c85d18cd98dad24104.tar.gz
arm-trusted-firmware-29681cdf948e9e5e047cc9c85d18cd98dad24104.zip
fix(ti): use low priority thread in secure proxy
TF-A does not distinguish between high and low priority threads. However, low priority threads provide a larger queue depth, which can mitigate edge cases during parallel core power-down sequences. In such scenarios, if firmware processing delays prevent the secure proxy queue from getting flushed in time, other cores might begin executing their own messages after lock release, leading to potential contention. Worst case with today's k3_psci code, there are around 2 messages per core shutdown and around 9 messages per cluster shutdown with an J784s4 ( with cluster shutdown doing a blocking call to take the reference for the cluster device ), this brings us to around worst case 12 message ( 6 cores * 2 cpu off calls ) that can be queued to the firmware. With high priority threads having a queue depth of 10 messages, there is a possibility of things having some backpressure. To avoid these corner cases, switch the secure proxy to use a low priority thread which gives a queue depth of 20 messages. Change-Id: I650ec9bd631872aa49561ba3c19fdfe61369dc87 Signed-off-by: Manorit Chawdhry <m-chawdhry@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/ti/ti_sci/ti_sci_transport.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ti/ti_sci/ti_sci_transport.h b/drivers/ti/ti_sci/ti_sci_transport.h
index 13d0fb51a..fd3835cfd 100644
--- a/drivers/ti/ti_sci/ti_sci_transport.h
+++ b/drivers/ti/ti_sci/ti_sci_transport.h
@@ -19,7 +19,7 @@
enum ti_sci_transport_chan_id {
#if !K3_SEC_PROXY_LITE
RX_SECURE_TRANSPORT_CHANNEL_ID = 1,
- TX_SECURE_TRANSPORT_CHANNEL_ID,
+ TX_SECURE_TRANSPORT_CHANNEL_ID = 3,
#else
RX_SECURE_TRANSPORT_CHANNEL_ID = 8,
/*