]> git.baikalelectronics.ru Git - arm-tf.git/commit
ti: k3: common: sec_proxy: Fill non-message data fields with 0x0
authorNishanth Menon <nm@ti.com>
Thu, 10 Dec 2020 23:37:04 +0000 (17:37 -0600)
committerNishanth Menon <nm@ti.com>
Wed, 23 Dec 2020 12:33:39 +0000 (06:33 -0600)
commitf577388a3292c60d6b4483c7cda267375de77f52
treee55cddbc9e1a06206feeb06e8b95331fbae4e040
parent6a22d9ea3c7fa28d053d3ba264b49b7396a86f9e
ti: k3: common: sec_proxy: Fill non-message data fields with 0x0

Sec proxy data buffer is 60 bytes with the last of the registers
indicating transmission completion. This however poses a bit
of a challenge.

The backing memory for sec_proxy is regular memory, and all sec proxy
does is to trigger a burst of all 60 bytes of data over to the target
thread backing ring accelerator. It doesn't do a memory scrub when
it moves data out in the burst. When we transmit multiple messages,
remnants of previous message is also transmitted which results in
some random data being set in TISCI fields of messages that have been
expanded forward.

The entire concept of backward compatibility hinges on the fact that
the unused message fields remain 0x0 allowing for 0x0 value to be
specially considered when backward compatibility of message extension
is done.

So, instead of just writing the completion register, we continue
to fill the message buffer up with 0x0 (note: for partial message
involving completion, we already do this).

This allows us to scale and introduce ABI changes back into TF-A only
as needed.

Signed-off-by: Nishanth Menon <nm@ti.com>
Change-Id: Ie22cb2a319f4aa80aef23ffc7e059207e5d4c640
plat/ti/k3/common/drivers/sec_proxy/sec_proxy.c