Commit 19cd8c8b authored by Yann Dirson's avatar Yann Dirson Committed by Alex Deucher

Documentation/gpu: include description of some of the GC microcontrollers

This is Alex' description from the "Looking for clarifications around gfx/kcq/kiq"
thread, edited to fit as ReST.

Original text: https://www.spinics.net/lists/amd-gfx/msg71383.htmlOriginally-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Signed-off-by: default avatarYann Dirson <ydirson@free.fr>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Reviewed-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d59f1774
...@@ -76,6 +76,28 @@ VCN (Video Core Next) ...@@ -76,6 +76,28 @@ VCN (Video Core Next)
decode. It's exposed to userspace for user mode drivers (VA-API, decode. It's exposed to userspace for user mode drivers (VA-API,
OpenMAX, etc.) OpenMAX, etc.)
Graphics and Compute Microcontrollers
-------------------------------------
CP (Command Processor)
The name for the hardware block that encompasses the front end of the
GFX/Compute pipeline. Consists mainly of a bunch of microcontrollers
(PFP, ME, CE, MEC). The firmware that runs on these microcontrollers
provides the driver interface to interact with the GFX/Compute engine.
MEC (MicroEngine Compute)
This is the microcontroller that controls the compute queues on the
GFX/compute engine.
MES (MicroEngine Scheduler)
This is a new engine for managing queues. This is currently unused.
RLC (RunList Controller)
This is another microcontroller in the GFX/Compute engine. It handles
power management related functionality within the GFX/Compute engine.
The name is a vestige of old hardware where it was originally added
and doesn't really have much relation to what the engine does now.
Driver Structure Driver Structure
================ ================
...@@ -83,6 +105,19 @@ In general, the driver has a list of all of the IPs on a particular ...@@ -83,6 +105,19 @@ In general, the driver has a list of all of the IPs on a particular
SoC and for things like init/fini/suspend/resume, more or less just SoC and for things like init/fini/suspend/resume, more or less just
walks the list and handles each IP. walks the list and handles each IP.
Some useful constructs:
KIQ (Kernel Interface Queue)
This is a control queue used by the kernel driver to manage other gfx
and compute queues on the GFX/compute engine. You can use it to
map/unmap additional queues, etc.
IB (Indirect Buffer)
A command buffer for a particular engine. Rather than writing
commands directly to the queue, you can write the commands into a
piece of memory and then put a pointer to the memory into the queue.
The hardware will then follow the pointer and execute the commands in
the memory, then returning to the rest of the commands in the ring.
.. _amdgpu_memory_domains: .. _amdgpu_memory_domains:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment