Documentation/driver-api/cxl/platform/acpi/cedt.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API / CXL / Platform / ACPI

CEDT - CXL Early Discovery Table

CEDT의 CHBS와 CFMWS가 host bridge UID, fixed memory window, interleave와 memory restriction을 표현하는 방식을 설명합니다.

Source pathDocumentation/driver-api/cxl/platform/acpi/cedt.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

cedt.rst:1-62

CHBS는 host bridge와 register range를 식별하고, CFMWS는 여러 host bridge에 걸친 SPA window와 interleave를 기술합니다. 같은 host bridge 내부의 device interleave는 CFMWS가 아니라 host bridge·endpoint decoder programming으로 정의됩니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 ================================
4 CEDT - CXL Early Discovery Table
5 ================================
6
7 The CXL Early Discovery Table is generated by BIOS to describe the CXL memory
8 regions configured at boot by the BIOS.
9
10 CHBS
11 ====
12 The CXL Host Bridge Structure describes CXL host bridges. Other than describing
13 device register information, it reports the specific host bridge UID for this
14 host bridge. These host bridge ID's will be referenced in other tables.
15
16 Example ::
17
18 Subtable Type : 00 [CXL Host Bridge Structure]
19 Reserved : 00
20 Length : 0020
21 Associated host bridge : 00000007 <- Host bridge _UID
22 Specification version : 00000001
23 Reserved : 00000000
24 Register base : 0000010370400000
25 Register length : 0000000000010000
26
27 CFMWS
28 =====
29 The CXL Fixed Memory Window structure describes a memory region associated
30 with one or more CXL host bridges (as described by the CHBS). It additionally
31 describes any inter-host-bridge interleave configuration that may have been
32 programmed by BIOS.
33
34 Example ::
35
36 Subtable Type : 01 [CXL Fixed Memory Window Structure]
37 Reserved : 00
38 Length : 002C
39 Reserved : 00000000
40 Window base address : 000000C050000000 <- Memory Region
41 Window size : 0000003CA0000000
42 Interleave Members (2^n) : 01 <- Interleave configuration
43 Interleave Arithmetic : 00
44 Reserved : 0000
45 Granularity : 00000000
46 Restrictions : 0006
47 QtgId : 0001
48 First Target : 00000007 <- Host Bridge _UID
49 Next Target : 00000006 <- Host Bridge _UID
50
51 The restriction field dictates what this SPA range may be used for (memory type,
52 voltile vs persistent, etc). One or more bits may be set. ::
53
54 Bit[0]: CXL Type 2 Memory
55 Bit[1]: CXL Type 3 Memory
56 Bit[2]: Volatile Memory
57 Bit[3]: Persistent Memory
58 Bit[4]: Fixed Config (HPA cannot be re-used)
59
60 INTRA-host-bridge interleave (multiple devices on one host bridge) is NOT
61 reported in this structure, and is solely defined via CXL device decoder
62 programming (host bridge and endpoint decoders).
63

3. 한국어 전문 번역

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

CEDT와 CHBS

1-15
.. SPDX-License-Identifier: GPL-2.0

CXL Early Discovery Table(CEDT)은 BIOS가 boot 시 구성한 CXL memory region을 설명하기 위해 BIOS가 생성합니다.

CXL Host Bridge Structure(CHBS)는 CXL host bridge를 설명합니다. device register 정보뿐 아니라 해당 host bridge의 고유 UID를 보고하며, 이 host bridge ID는 다른 table에서 참조됩니다.

CHBS 예시

16-26

CHBS dump 예시에서 `Associated host bridge`는 host bridge의 `_UID`입니다.

         Subtable Type : 00 [CXL Host Bridge Structure]
              Reserved : 00
                Length : 0020
Associated host bridge : 00000007    <- Host bridge _UID
 Specification version : 00000001
              Reserved : 00000000
         Register base : 0000010370400000
       Register length : 0000000000010000

CFMWS

27-52

CXL Fixed Memory Window Structure(CFMWS)는 CHBS가 설명하는 하나 이상의 CXL host bridge와 연결된 memory region을 설명합니다. 또한 BIOS가 programming했을 수 있는 host bridge 간 interleave 구성도 설명합니다.

아래 예시에서 window base와 size는 memory region을, `Interleave Members`와 arithmetic·granularity는 interleave 구성을, target은 참여 host bridge의 `_UID`를 나타냅니다.

           Subtable Type : 01 [CXL Fixed Memory Window Structure]
                Reserved : 00
                  Length : 002C
                Reserved : 00000000
     Window base address : 000000C050000000   <- Memory Region
             Window size : 0000003CA0000000
Interleave Members (2^n) : 01                 <- Interleave configuration
   Interleave Arithmetic : 00
                Reserved : 0000
             Granularity : 00000000
            Restrictions : 0006
                   QtgId : 0001
            First Target : 00000007           <- Host Bridge _UID
             Next Target : 00000006           <- Host Bridge _UID
CFMWS fixed memory window 구조
FieldValueMeaning
Window base address000000C050000000Memory region 시작 HPA
Window size0000003CA0000000Memory region 크기
Interleave Members (2^n)01Interleave member 수의 지수
Interleave Arithmetic00Interleave 계산 방식
Granularity00000000Interleave granularity
Restrictions0006허용 memory type과 속성
QtgId0001QoS Throttling Group ID
First Target00000007첫 번째 host bridge _UID
Next Target00000006다음 host bridge _UID

CFMWS dump의 field를 memory range, interleave와 host bridge target 역할에 맞춰 정리했습니다.

`Restrictions` field는 이 SPA range를 어떤 용도로 사용할 수 있는지 결정합니다. memory type, volatile/persistent 여부 등을 나타내며 하나 이상의 bit를 설정할 수 있습니다.

Restriction bit와 intra-host-bridge interleave

53-62
Bit[0]: CXL Type 2 Memory
Bit[1]: CXL Type 3 Memory
Bit[2]: Volatile Memory
Bit[3]: Persistent Memory
Bit[4]: Fixed Config (HPA cannot be re-used)

INTRA-host-bridge interleave, 즉 하나의 host bridge에 연결된 여러 device 사이의 interleave는 이 structure에 보고되지 않습니다. 이는 CXL device decoder programming, 구체적으로 host bridge와 endpoint decoder를 통해서만 정의됩니다.