freedreno/afuc: README updates for a7xx

Mention the introduction of LPAC/BR/BV, and explain the shared control
reg space.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26691>
This commit is contained in:
Connor Abbott
2023-12-14 16:26:14 +01:00
committed by Marge Bot
parent 5ca347e727
commit ae9604c29e

View File

@@ -37,6 +37,14 @@ it internally).
With Adreno 6xx, the separate PFP and ME are replaced with a single
SQE microcontroller using the same instruction set as 5xx.
Starting with Adreno 660, another processor called LPAC (Low Priority
Asynchronous Compute) is introduced which is a slightly cut-down copy of the
SQE used to execute background compute tasks. Unlike on 5xx, the firmware is
bundled together with the main SQE firmware, and the SQE is responsible for
booting LPAC. On 7xx, to implement concurrent binning the SQE is split into two
processors called BR and BV. Again, the firmware for all three is bundled
together and BR is responsible for booting both BV and LPAC.
.. _afuc-overview:
Instruction Set Overview
@@ -233,7 +241,10 @@ the CP, for example to indicate where to read from memory or (normal)
registers. ``0x100`` to ``0x17f`` are a private scratch space used by the
firmware however it wants, for example as an ad-hoc stack to spill registers
when calling a function or to store the scratch used in ``CP_SCRATCH_TO_*``
packets.
packets. Starting with the introduction of LPAC, ``0x200`` to ``0x27f`` are a
shared scratch space used to communicate between processors and on a7xx they
can also be written on event completion to implement so-called "on-chip
timestamps".
In cases where no offset is needed, ``$00`` is frequently used as the offset.