← Documents Documentation/devicetree/bindings/tpm/ibm,vtpm.yaml GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings / TPM

IBM Virtual TPM

IBM POWER vTPM의 Hcall·CRQ와 virtual I/O DMA 속성을 설명합니다.

Source pathDocumentation/devicetree/bindings/tpm/ibm,vtpm.yaml
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

ibm,vtpm.yaml:1-104

IBM POWER vTPM의 Hcall·CRQ와 virtual I/O DMA 속성을 설명합니다. 접을 수 있는 영어 원문 전체와 한국어 전문 번역을 함께 제공하며 compatible, interrupt, bus, register, phandle, 수치와 줄 좌표를 원형대로 보존합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/tpm/ibm,vtpm.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: IBM Virtual Trusted Platform Module (vTPM)
8
9 maintainers:
10 - Nayna Jain <[email protected]>
11
12 description: |
13 Virtual TPM is used on IBM POWER7+ and POWER8 systems running POWERVM.
14 It is supported through the adjunct partition with firmware release 740
15 or higher. With vTPM support, each lpar is able to have its own vTPM
16 without the physical TPM hardware. The TPM functionality is provided by
17 communicating with the vTPM adjunct partition through Hypervisor calls
18 (Hcalls) and Command/Response Queue (CRQ) commands.
19
20 properties:
21 compatible:
22 enum:
23 - IBM,vtpm
24 - IBM,vtpm20
25
26 device_type:
27 description:
28 type of virtual device
29 enum:
30 - IBM,vtpm
31 - IBM,vtpm20
32
33 reg:
34 maxItems: 1
35
36 ibm,#dma-address-cells:
37 description:
38 number of cells that are used to encode the physical address field of
39 dma-window properties
40 $ref: /schemas/types.yaml#/definitions/uint32-array
41
42 ibm,#dma-size-cells:
43 description:
44 number of cells that are used to encode the size field of
45 dma-window properties
46 $ref: /schemas/types.yaml#/definitions/uint32-array
47
48 ibm,my-dma-window:
49 description:
50 DMA window associated with this virtual I/O Adapter
51 $ref: /schemas/types.yaml#/definitions/uint32-array
52 minItems: 5
53 maxItems: 5
54
55 ibm,my-drc-index:
56 description:
57 integer index for the connector between the device and its parent;
58 present only if Dynamic Reconfiguration (DR) Connector is enabled
59 $ref: /schemas/types.yaml#/definitions/uint32
60
61 ibm,loc-code:
62 description:
63 unique and persistent location code associated with this virtual
64 I/O Adapter
65 $ref: /schemas/types.yaml#/definitions/string
66
67 required:
68 - compatible
69 - device_type
70 - reg
71 - interrupts
72 - ibm,#dma-address-cells
73 - ibm,#dma-size-cells
74 - ibm,my-dma-window
75 - ibm,my-drc-index
76 - ibm,loc-code
77 - linux,sml-base
78 - linux,sml-size
79
80 allOf:
81 - $ref: tpm-common.yaml#
82
83 unevaluatedProperties: false
84
85 examples:
86 - |
87 soc {
88 #address-cells = <1>;
89 #size-cells = <0>;
90
91 tpm@30000003 {
92 compatible = "IBM,vtpm";
93 device_type = "IBM,vtpm";
94 reg = <0x30000003>;
95 interrupts = <0xa0003 0x0>;
96 ibm,#dma-address-cells = <0x2>;
97 ibm,#dma-size-cells = <0x2>;
98 ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
99 ibm,my-drc-index = <0x30000003>;
100 ibm,loc-code = "U8286.41A.10082DV-V3-C3";
101 linux,sml-base = <0xc60e 0x0>;
102 linux,sml-size = <0xbce10200>;
103 };
104 };
105

3. 한국어 전문 번역

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

IBM Virtual TPM

1-19

GPL-2.0-only 또는 BSD-2-Clause 라이선스의 이 스키마는 IBM Virtual Trusted Platform Module(vTPM)을 정의합니다. vTPM은 POWERVM을 실행하는 IBM POWER7+와 POWER8 system에서 사용하며 firmware release 740 이상과 adjunct partition을 통해 지원됩니다.

vTPM 지원을 사용하면 각 LPAR가 physical TPM hardware 없이 자체 vTPM을 가질 수 있습니다. TPM 기능은 Hypervisor call(Hcall)과 Command/Response Queue(CRQ) command를 통해 vTPM adjunct partition과 통신하여 제공됩니다. Maintainer는 Nayna Jain입니다.

TPM 1.x·2.0 virtual device

20-35

`compatible`과 `device_type`은 각각 `IBM,vtpm` 또는 `IBM,vtpm20`을 허용해 virtual TPM 세대를 나타냅니다. `reg`는 최대 한 항목입니다.

properties:
  compatible:
    enum:
      - IBM,vtpm
      - IBM,vtpm20

  device_type:
    description:
      type of virtual device
    enum:
      - IBM,vtpm
      - IBM,vtpm20

  reg:
    maxItems: 1

DMA window·DR connector·location

36-66

`ibm,#dma-address-cells`와 `ibm,#dma-size-cells`는 DMA window 속성의 physical address field와 size field를 encode하는 cell 수를 나타냅니다. `ibm,my-dma-window`는 이 virtual I/O adapter의 DMA window이며 정확히 5개 uint32 항목입니다.

`ibm,my-drc-index`는 device와 parent 사이 connector의 integer index로 Dynamic Reconfiguration(DR) Connector가 enable된 경우에만 존재합니다. `ibm,loc-code`는 virtual I/O adapter에 연결된 고유하고 영속적인 location code string입니다.

ibm,#dma-address-cells:
  description:
    number of cells that are used to encode the physical address field of
    dma-window properties
  $ref: /schemas/types.yaml#/definitions/uint32-array

ibm,#dma-size-cells:
  description:
    number of cells that are used to encode the size field of
    dma-window properties
  $ref: /schemas/types.yaml#/definitions/uint32-array

ibm,my-dma-window:
  description:
    DMA window associated with this virtual I/O Adapter
  $ref: /schemas/types.yaml#/definitions/uint32-array
  minItems: 5
  maxItems: 5

ibm,my-drc-index:
  description:
    integer index for the connector between the device and its parent;
    present only if Dynamic Reconfiguration (DR) Connector is enabled
  $ref: /schemas/types.yaml#/definitions/uint32

ibm,loc-code:
  description:
    unique and persistent location code associated with this virtual
    I/O Adapter
  $ref: /schemas/types.yaml#/definitions/string

필수 VIO·TPM event log 속성

67-84

`compatible`, `device_type`, `reg`, `interrupts`, 두 DMA cell 수, `ibm,my-dma-window`, `ibm,my-drc-index`, `ibm,loc-code`, `linux,sml-base`, `linux,sml-size`가 필수입니다. 공통 TPM 속성은 `tpm-common.yaml`에서 상속하며 평가되지 않은 추가 속성은 허용하지 않습니다.

required:
  - compatible
  - device_type
  - reg
  - interrupts
  - ibm,#dma-address-cells
  - ibm,#dma-size-cells
  - ibm,my-dma-window
  - ibm,my-drc-index
  - ibm,loc-code
  - linux,sml-base
  - linux,sml-size

allOf:
  - $ref: tpm-common.yaml#

unevaluatedProperties: false

POWER virtual I/O adapter 예제

85-104

예제 `tpm@30000003`은 TPM 1.x용 `IBM,vtpm`, register 0x30000003, interrupt tuple `<0xa0003 0x0>`을 사용합니다. DMA address·size는 각각 두 cell이며 0x10000000-byte DMA window, DRC index 0x30000003, location code를 지정합니다. TPM event log는 `linux,sml-base`와 `linux,sml-size`로 기술합니다.

examples:
  - |
    soc {
        #address-cells = <1>;
        #size-cells = <0>;

        tpm@30000003 {
            compatible = "IBM,vtpm";
            device_type = "IBM,vtpm";
            reg = <0x30000003>;
            interrupts = <0xa0003 0x0>;
            ibm,#dma-address-cells = <0x2>;
            ibm,#dma-size-cells = <0x2>;
            ibm,my-dma-window = <0x10000003 0x0 0x0 0x0 0x10000000>;
            ibm,my-drc-index = <0x30000003>;
            ibm,loc-code = "U8286.41A.10082DV-V3-C3";
            linux,sml-base = <0xc60e 0x0>;
            linux,sml-size = <0xbce10200>;
        };
    };