← Documents Documentation/gpu/vc4.rst GitHub 원문 ↗

Linux 6.18.37 · GPU·DRM

drm/vc4 Broadcom VC4 Graphics Driver

VC4 display hardware, KUnit와 3D command validation을 설명합니다.

Source pathDocumentation/gpu/vc4.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

vc4.rst:1-108

VC4 display hardware, KUnit와 3D command validation을 설명합니다.

문서 위치
항목
SourceDocumentation/gpu/vc4.rst
분량108 source lines
관련vc4_crtc.c · vc4_validate.c · vc4_render_cl.c

Source와 관련 구현입니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 =====================================
2 drm/vc4 Broadcom VC4 Graphics Driver
3 =====================================
4
5 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
6 :doc: Broadcom VC4 Graphics Driver
7
8 Display Hardware Handling
9 =========================
10
11 This section covers everything related to the display hardware including
12 the mode setting infrastructure, plane, sprite and cursor handling and
13 display, output probing and related topics.
14
15 Pixel Valve (DRM CRTC)
16 ----------------------
17
18 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
19 :doc: VC4 CRTC module
20
21 HVS
22 ---
23
24 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
25 :doc: VC4 HVS module.
26
27 HVS planes
28 ----------
29
30 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
31 :doc: VC4 plane module
32
33 HDMI encoder
34 ------------
35
36 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
37 :doc: VC4 Falcon HDMI module
38
39 DSI encoder
40 -----------
41
42 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
43 :doc: VC4 DSI0/DSI1 module
44
45 DPI encoder
46 -----------
47
48 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
49 :doc: VC4 DPI module
50
51 VEC (Composite TV out) encoder
52 ------------------------------
53
54 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
55 :doc: VC4 SDTV module
56
57 KUnit Tests
58 ===========
59
60 The VC4 Driver uses KUnit to perform driver-specific unit and
61 integration tests.
62
63 These tests are using a mock driver and can be ran using the
64 command below, on either arm or arm64 architectures,
65
66 .. code-block:: bash
67
68 $ ./tools/testing/kunit/kunit.py run \
69 --kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
70 --cross_compile aarch64-linux-gnu- --arch arm64
71
72 Parts of the driver that are currently covered by tests are:
73 * The HVS to PixelValve dynamic FIFO assignment, for the BCM2835-7
74 and BCM2711.
75
76 Memory Management and 3D Command Submission
77 ===========================================
78
79 This section covers the GEM implementation in the vc4 driver.
80
81 GPU buffer object (BO) management
82 ---------------------------------
83
84 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
85 :doc: VC4 GEM BO management support
86
87 V3D binner command list (BCL) validation
88 ----------------------------------------
89
90 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate.c
91 :doc: Command list validator for VC4.
92
93 V3D render command list (RCL) generation
94 ----------------------------------------
95
96 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_render_cl.c
97 :doc: Render command list generation
98
99 Shader validator for VC4
100 ---------------------------
101 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
102 :doc: Shader validator for VC4.
103
104 V3D Interrupts
105 --------------
106
107 .. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
108 :doc: Interrupt management for the V3D engine
109

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

VC4 display hardware handling

1-61

Broadcom VC4 graphics driver 개요는 `drivers/gpu/drm/vc4/vc4_drv.c`의 kernel-doc에서 가져옵니다. Display section은 mode setting infrastructure, plane·sprite·cursor, output probing을 다룹니다.

Pixel Valve는 DRM CRTC이며 `vc4_crtc.c`가 설명합니다. HVS는 `vc4_hvs.c`, HVS plane은 `vc4_plane.c`의 문서를 포함합니다.

Output encoder는 HDMI `vc4_hdmi.c`, DSI0/DSI1 `vc4_dsi.c`, DPI `vc4_dpi.c`, composite TV-out VEC `vc4_vec.c`로 나뉩니다.

VC4 display block
BlockSource
Pixel Valve / CRTCdrivers/gpu/drm/vc4/vc4_crtc.c
HVSdrivers/gpu/drm/vc4/vc4_hvs.c
HVS planesdrivers/gpu/drm/vc4/vc4_plane.c
HDMIdrivers/gpu/drm/vc4/vc4_hdmi.c
DSIdrivers/gpu/drm/vc4/vc4_dsi.c
DPIdrivers/gpu/drm/vc4/vc4_dpi.c
VEC/SDTVdrivers/gpu/drm/vc4/vc4_vec.c

KMS object와 output source path입니다.

VC4 display path
HVS planes·sprite·cursorHVS compositionPixel Valve / DRM CRTCHDMI·DSI·DPI·VEC encoderDisplay output

Plane composition에서 physical encoder까지의 구조입니다.

=====================================
 drm/vc4 Broadcom VC4 Graphics Driver
=====================================

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_drv.c
   :doc: Broadcom VC4 Graphics Driver

Display Hardware Handling
=========================

This section covers everything related to the display hardware including
the mode setting infrastructure, plane, sprite and cursor handling and
display, output probing and related topics.

Pixel Valve (DRM CRTC)
----------------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_crtc.c
   :doc: VC4 CRTC module

HVS
---

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hvs.c
   :doc: VC4 HVS module.

HVS planes
----------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_plane.c
   :doc: VC4 plane module

HDMI encoder
------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_hdmi.c
   :doc: VC4 Falcon HDMI module

DSI encoder
-----------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dsi.c
   :doc: VC4 DSI0/DSI1 module

DPI encoder
-----------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_dpi.c
   :doc: VC4 DPI module

VEC (Composite TV out) encoder
------------------------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_vec.c
   :doc: VC4 SDTV module

KUnit Tests
===========

The VC4 Driver uses KUnit to perform driver-specific unit and
integration tests.

VC4 KUnit test

62-80

VC4 driver는 driver-specific unit·integration test에 KUnit을 사용합니다. Mock driver 기반이며 arm 또는 arm64 architecture에서 실행할 수 있습니다.

원문 command는 `./tools/testing/kunit/kunit.py run`에 `--kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig`, `--cross_compile aarch64-linux-gnu-`, `--arch arm64`를 전달합니다.

현재 test coverage에는 BCM2835-7과 BCM2711의 HVS→PixelValve dynamic FIFO assignment가 포함됩니다.

VC4 KUnit 설정
항목
KUnit configdrivers/gpu/drm/vc4/tests/.kunitconfig
Cross compileraarch64-linux-gnu-
Architecturearm64
CoveredBCM2835-7·BCM2711 HVS→PixelValve FIFO

원문 실행 옵션과 coverage입니다.

VC4 test 실행
VC4 KUnit config 선택arm/arm64 cross compileMock driver 초기화Dynamic FIFO assignment testKUnit result 수집

Mock driver의 unit·integration test 경로입니다.


These tests are using a mock driver and can be ran using the
command below, on either arm or arm64 architectures,

.. code-block:: bash

        $ ./tools/testing/kunit/kunit.py run \
                --kunitconfig=drivers/gpu/drm/vc4/tests/.kunitconfig \
                --cross_compile aarch64-linux-gnu- --arch arm64

Parts of the driver that are currently covered by tests are:
 * The HVS to PixelValve dynamic FIFO assignment, for the BCM2835-7
   and BCM2711.

Memory Management and 3D Command Submission
===========================================

This section covers the GEM implementation in the vc4 driver.

VC4 memory와 3D command submission

81-108

이 section은 VC4 driver의 GEM implementation과 3D command submission 검증을 다룹니다.

BO management는 `vc4_bo.c`의 `VC4 GEM BO management support`에서 설명합니다. V3D binner command list(BCL)는 `vc4_validate.c`의 validator가 검사합니다.

V3D render command list(RCL)는 `vc4_render_cl.c`에서 생성하고 shader는 `vc4_validate_shaders.c`가 검증합니다. V3D interrupt는 `vc4_irq.c`가 처리합니다.

VC4 3D source map
기능Source
GEM BOdrivers/gpu/drm/vc4/vc4_bo.c
BCL validationdrivers/gpu/drm/vc4/vc4_validate.c
RCL generationdrivers/gpu/drm/vc4/vc4_render_cl.c
Shader validationdrivers/gpu/drm/vc4/vc4_validate_shaders.c
V3D IRQdrivers/gpu/drm/vc4/vc4_irq.c

Command preparation·validation·completion 단계입니다.

VC4 3D submission
GEM BO와 command data 준비BCL command-list validationShader validationRCL generationV3D executionIRQ completion

Userspace command를 검증·생성해 V3D에서 실행합니다.

GPU buffer object (BO) management
---------------------------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_bo.c
   :doc: VC4 GEM BO management support

V3D binner command list (BCL) validation
----------------------------------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate.c
   :doc: Command list validator for VC4.

V3D render command list (RCL) generation
----------------------------------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_render_cl.c
   :doc: Render command list generation

Shader validator for VC4
---------------------------
.. kernel-doc:: drivers/gpu/drm/vc4/vc4_validate_shaders.c
   :doc: Shader validator for VC4.

V3D Interrupts
--------------

.. kernel-doc:: drivers/gpu/drm/vc4/vc4_irq.c
   :doc: Interrupt management for the V3D engine