Documentation/driver-api/firmware/other_interfaces.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API

Other Firmware Interfaces

DMI·EDD·sysfb API와 ARM SMCCC를 통해 EL3 secure service에 접근하는 Stratix10 service layer를 설명합니다.

Source pathDocumentation/driver-api/firmware/other_interfaces.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

other_interfaces.rst:1-51

이 페이지는 DMI·EDD·generic system framebuffer의 kernel-doc entry와 Intel Stratix10 secure service API를 모읍니다.

Stratix10에서는 EL1 kernel driver request를 queue에 넣고 ARM SMCCC로 EL3 secure monitor에 전달해 FPGA programming 같은 privileged operation을 실행합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Other Firmware Interfaces
2 =========================
3
4 DMI Interfaces
5 --------------
6
7 .. kernel-doc:: drivers/firmware/dmi_scan.c
8 :export:
9
10 EDD Interfaces
11 --------------
12
13 .. kernel-doc:: drivers/firmware/edd.c
14 :internal:
15
16 Generic System Framebuffers Interface
17 -------------------------------------
18
19 .. kernel-doc:: drivers/firmware/sysfb.c
20 :export:
21
22 Intel Stratix10 SoC Service Layer
23 ---------------------------------
24 Some features of the Intel Stratix10 SoC require a level of privilege
25 higher than the kernel is granted. Such secure features include
26 FPGA programming. In terms of the ARMv8 architecture, the kernel runs
27 at Exception Level 1 (EL1), access to the features requires
28 Exception Level 3 (EL3).
29
30 The Intel Stratix10 SoC service layer provides an in kernel API for
31 drivers to request access to the secure features. The requests are queued
32 and processed one by one. ARM’s SMCCC is used to pass the execution
33 of the requests on to a secure monitor (EL3).
34
35 .. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
36 :functions: stratix10_svc_command_code
37
38 .. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
39 :functions: stratix10_svc_client_msg
40
41 .. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
42 :functions: stratix10_svc_command_config_type
43
44 .. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
45 :functions: stratix10_svc_cb_data
46
47 .. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
48 :functions: stratix10_svc_client
49
50 .. kernel-doc:: drivers/firmware/stratix10-svc.c
51 :export:
52

3. 한국어 전문 번역

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

DMI interface

1-9

문서 제목은 `Other Firmware Interfaces`입니다.

DMI interface 문서는 `drivers/firmware/dmi_scan.c`가 export하는 kernel-doc API를 포함합니다.

.. kernel-doc:: drivers/firmware/dmi_scan.c
   :export:

EDD interface

10-15

EDD interface 문서는 `drivers/firmware/edd.c`의 internal kernel-doc API를 포함합니다.

.. kernel-doc:: drivers/firmware/edd.c
   :internal:

Generic system framebuffer interface

16-21

Generic system framebuffer interface 문서는 `drivers/firmware/sysfb.c`가 export하는 kernel-doc API를 포함합니다.

.. kernel-doc:: drivers/firmware/sysfb.c
   :export:
기타 firmware interface source map
InterfaceSource범위
DMIdrivers/firmware/dmi_scan.cexport
EDDdrivers/firmware/edd.cinternal
Generic system framebufferdrivers/firmware/sysfb.cexport
Intel Stratix10 servicedrivers/firmware/stratix10-svc.cexport

각 interface의 source와 kernel-doc 공개 범위를 정리했습니다.

Intel Stratix10 SoC service layer

22-34

Intel Stratix10 SoC의 일부 기능에는 kernel에 부여된 것보다 높은 privilege level이 필요합니다. FPGA programming이 이런 secure feature에 포함됩니다.

ARMv8 architecture에서 kernel은 Exception Level 1(EL1)에서 실행되고, 해당 기능에 접근하려면 Exception Level 3(EL3)이 필요합니다.

Intel Stratix10 SoC service layer는 driver가 secure feature 접근을 request할 수 있는 in-kernel API를 제공합니다. Request는 queue에 들어가 하나씩 처리되며, ARM SMCCC를 사용해 secure monitor(EL3)로 실행을 넘깁니다.

Stratix10 secure service request
Kernel driver at EL1Stratix10 service layer API requestRequest queue에서 순차 처리ARM SMCCC callSecure monitor at EL3FPGA programming 등 secure feature 실행

EL1 driver request가 queue와 SMCCC를 거쳐 EL3 secure monitor에서 실행됩니다.

Stratix10 service API data structure

35-51

`include/linux/firmware/intel/stratix10-svc-client.h`에서 command code, client message, configuration type, callback data와 client structure의 kernel-doc을 가져옵니다.

.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
   :functions: stratix10_svc_command_code
.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
   :functions: stratix10_svc_client_msg
.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
   :functions: stratix10_svc_command_config_type
.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
   :functions: stratix10_svc_cb_data
.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
   :functions: stratix10_svc_client

Service implementation의 exported API 문서는 `drivers/firmware/stratix10-svc.c`에서 가져옵니다.

.. kernel-doc:: drivers/firmware/stratix10-svc.c
   :export: