요약·해설, 영어 원문, 전체 번역을 구분해 실었습니다. API 이름, 코드 심벌, 소스 경로는 원문 표기를 유지합니다.
1. 요약·해설
원문의 핵심 내용을 정리하고 커널 프로그래밍에 필요한 설명을 덧붙였습니다. 아래의 전체 번역과는 별도로 작성한 해설입니다.
2. 영어 원문 전체
번역에 사용한 Linux v6.18.37 원문입니다. 줄 번호는 해당 버전의 소스 파일을 기준으로 합니다.
원문 전체 펼치기
1
.. SPDX-License-Identifier: GPL-2.0
3
==============================================
4
DSDT - Differentiated system Description Table
5
==============================================
7
This table describes what peripherals a machine has.
9
This table's UIDs for CXL devices - specifically host bridges, must be
10
consistent with the contents of the CEDT, otherwise the CXL driver will
11
fail to probe correctly.
13
Example Compute Express Link Host Bridge ::
15
Scope (_SB)
16
{
17
Device (S0D0)
18
{
19
Name (_HID, "ACPI0016" /* Compute Express Link Host Bridge */) // _HID: Hardware ID
20
Name (_CID, Package (0x02) // _CID: Compatible ID
21
{
22
EisaId ("PNP0A08") /* PCI Express Bus */,
23
EisaId ("PNP0A03") /* PCI Bus */
24
})
25
...
26
Name (_UID, 0x05) // _UID: Unique ID
27
...
28
}
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미에 맞춰 전체 내용을 번역했습니다. 코드, 함수명, 코드 심벌, URL은 원문 표기를 유지합니다.
DSDT의 CXL UID 일관성
1-12.. SPDX-License-Identifier: GPL-2.0
DSDT는 machine에 어떤 peripheral이 있는지 설명하는 table입니다.
CXL device, 특히 host bridge에 대한 이 table의 UID는 CEDT 내용과 일치해야 합니다. 일치하지 않으면 CXL driver가 올바르게 probe하지 못합니다.
Compute Express Link Host Bridge 예시
13-28예시는 `_HID`가 `ACPI0016`인 CXL host bridge를 정의하고 PCI Express/PCI compatible ID와 고유 `_UID` 0x05를 부여합니다.
Scope (_SB)
{
Device (S0D0)
{
Name (_HID, "ACPI0016" /* Compute Express Link Host Bridge */) // _HID: Hardware ID
Name (_CID, Package (0x02) // _CID: Compatible ID
{
EisaId ("PNP0A08") /* PCI Express Bus */,
EisaId ("PNP0A03") /* PCI Bus */
})
...
Name (_UID, 0x05) // _UID: Unique ID
...
}
요약과 해설
dsdt.rst:1-28DSDT의 `ACPI0016` host bridge `_UID`는 CEDT가 참조하는 UID와 같아야 합니다. 이 identity 연결이 깨지면 CXL driver probe도 실패합니다.