@@ -76,13 +76,48 @@ VCN (Video Core Next)
76
76
decode. It's exposed to userspace for user mode drivers (VA-API,
77
77
OpenMAX, etc.)
78
78
79
+ Graphics and Compute Microcontrollers
80
+ -------------------------------------
81
+
82
+ CP (Command Processor)
83
+ The name for the hardware block that encompasses the front end of the
84
+ GFX/Compute pipeline. Consists mainly of a bunch of microcontrollers
85
+ (PFP, ME, CE, MEC). The firmware that runs on these microcontrollers
86
+ provides the driver interface to interact with the GFX/Compute engine.
87
+
88
+ MEC (MicroEngine Compute)
89
+ This is the microcontroller that controls the compute queues on the
90
+ GFX/compute engine.
91
+
92
+ MES (MicroEngine Scheduler)
93
+ This is a new engine for managing queues. This is currently unused.
94
+
95
+ RLC (RunList Controller)
96
+ This is another microcontroller in the GFX/Compute engine. It handles
97
+ power management related functionality within the GFX/Compute engine.
98
+ The name is a vestige of old hardware where it was originally added
99
+ and doesn't really have much relation to what the engine does now.
100
+
79
101
Driver Structure
80
102
================
81
103
82
104
In general, the driver has a list of all of the IPs on a particular
83
105
SoC and for things like init/fini/suspend/resume, more or less just
84
106
walks the list and handles each IP.
85
107
108
+ Some useful constructs:
109
+
110
+ KIQ (Kernel Interface Queue)
111
+ This is a control queue used by the kernel driver to manage other gfx
112
+ and compute queues on the GFX/compute engine. You can use it to
113
+ map/unmap additional queues, etc.
114
+
115
+ IB (Indirect Buffer)
116
+ A command buffer for a particular engine. Rather than writing
117
+ commands directly to the queue, you can write the commands into a
118
+ piece of memory and then put a pointer to the memory into the queue.
119
+ The hardware will then follow the pointer and execute the commands in
120
+ the memory, then returning to the rest of the commands in the ring.
86
121
87
122
.. _amdgpu_memory_domains :
88
123
0 commit comments