← Documents Documentation/ABI/testing/sysfs-bus-coreboot GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

Coreboot CBMEM sysfs bus ABI

Coreboot BIOS가 만든 data structures를 virtual devices로 노출하는 bus와 CBMEM ID directories, physical address·size, non-mmap read/write memory file의 permissions를 설명합니다.

Source pathDocumentation/ABI/testing/sysfs-bus-coreboot
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

Coreboot bus와 CBMEM entries

sysfs-bus-coreboot:1-18

coreboot bus는 BIOS-created structures용 virtual devices를 제공하고, downwards-growing CBMEM의 각 tagged entry를 ID 기반 cbmem-<id> directory로 노출합니다.

CBMEM physical address와 size

sysfs-bus-coreboot:20-32

address는 entry data가 시작하는 physical memory address, size는 data length이며 둘 다 hexadecimal입니다.

CBMEM read/write memory file

sysfs-bus-coreboot:34-45

mem은 entry data를 read/write하지만 page alignment가 보장되지 않아 mmap을 지원하지 않으며, physical memory 일부를 노출하므로 mode 0600과 root read privilege를 사용합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 What: /sys/bus/coreboot
2 Date: August 2022
3 Contact: Jack Rosenthal <[email protected]>
4 Description:
5 The coreboot bus provides a variety of virtual devices used to
6 access data structures created by the Coreboot BIOS.
7
8 What: /sys/bus/coreboot/devices/cbmem-<id>
9 Date: August 2022
10 Contact: Jack Rosenthal <[email protected]>
11 Description:
12 CBMEM is a downwards-growing memory region created by Coreboot,
13 and contains tagged data structures to be shared with payloads
14 in the boot process and the OS. Each CBMEM entry is given a
15 directory in /sys/bus/coreboot/devices based on its id.
16 A list of ids known to Coreboot can be found in the coreboot
17 source tree at
18 ``src/commonlib/bsd/include/commonlib/bsd/cbmem_id.h``.
19
20 What: /sys/bus/coreboot/devices/cbmem-<id>/address
21 Date: August 2022
22 Contact: Jack Rosenthal <[email protected]>
23 Description:
24 This is the physical memory address that the CBMEM entry's data
25 begins at, in hexadecimal (e.g., ``0x76ffe000``).
26
27 What: /sys/bus/coreboot/devices/cbmem-<id>/size
28 Date: August 2022
29 Contact: Jack Rosenthal <[email protected]>
30 Description:
31 This is the size of the CBMEM entry's data, in hexadecimal
32 (e.g., ``0x1234``).
33
34 What: /sys/bus/coreboot/devices/cbmem-<id>/mem
35 Date: August 2022
36 Contact: Jack Rosenthal <[email protected]>
37 Description:
38 A file exposing read/write access to the entry's data. Note
39 that this file does not support mmap(), as coreboot
40 does not guarantee that the data will be page-aligned.
41
42 The mode of this file is 0600. While there shouldn't be
43 anything security-sensitive contained in CBMEM, read access
44 requires root privileges given this is exposing a small subset
45 of physical memory.
46

3. 한국어 전문 번역

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

Coreboot bus와 CBMEM device directories

1-18
WhatDateContact전문 번역
/sys/bus/coreboot2022년 8월Jack Rosenthal <[email protected]>coreboot bus는 Coreboot BIOS가 만든 data structure에 access할 때 사용하는 여러 virtual device를 제공합니다.
/sys/bus/coreboot/devices/cbmem-<id>2022년 8월Jack Rosenthal <[email protected]>CBMEM은 Coreboot가 만든 downwards-growing memory region이며 boot process의 payload와 OS가 공유할 tagged data structure를 담습니다. 각 CBMEM entry에는 ID를 기준으로 /sys/bus/coreboot/devices 안의 directory가 하나씩 주어집니다.

Coreboot가 알고 있는 ID 목록은 Coreboot source tree의 다음 file에서 찾을 수 있습니다.

src/commonlib/bsd/include/commonlib/bsd/cbmem_id.h
Coreboot CBMEM data sharing
Coreboot BIOSCreate downwards-growing CBMEM regionTagged CBMEM entriesBoot payload and OS sharing
CBMEM entry IDcbmem-<id> directoryaddress, size and mem files

Coreboot가 downwards-growing region에 tagged entries를 만들고 boot payload와 OS가 ID-based sysfs devices로 접근하는 관계다.

CBMEM entry address와 size

20-32
WhatDateContact전문 번역
/sys/bus/coreboot/devices/cbmem-<id>/address2022년 8월Jack Rosenthal <[email protected]>CBMEM entry data가 시작하는 physical memory address를 hexadecimal로 나타냅니다. 예: 0x76ffe000.
/sys/bus/coreboot/devices/cbmem-<id>/size2022년 8월Jack Rosenthal <[email protected]>CBMEM entry data의 size를 hexadecimal로 나타냅니다. 예: 0x1234.

CBMEM entry data access와 permissions

34-45
항목전문 번역
What/sys/bus/coreboot/devices/cbmem-<id>/mem
Date2022년 8월
ContactJack Rosenthal <[email protected]>
DescriptionEntry data에 대한 read/write access를 노출하는 file입니다. Coreboot는 data가 page-aligned라고 보장하지 않으므로 이 file은 mmap()을 지원하지 않습니다.
Permissions이 file의 mode는 0600입니다. CBMEM에 security-sensitive content가 들어 있지 않아야 하지만 physical memory의 작은 subset을 노출하므로 read access에도 root privileges가 필요합니다.
Access지원 여부·조건
read/write지원, mode 0600
readRoot privileges 필요
mmap()미지원: page alignment 미보장