← Documents Documentation/devicetree/bindings/mips/cavium/bootbus.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

Cavium Octeon Boot Bus

Octeon Boot Bus의 8개 chip-select, ranges와 timing·mode 바인딩입니다.

Source pathDocumentation/devicetree/bindings/mips/cavium/bootbus.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

bootbus.txt:1-126

두 cell 자식 주소, active·disabled range, chip-select 0·6 timing 예제를 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * Boot Bus
2
3 The Octeon Boot Bus is a configurable parallel bus with 8 chip
4 selects. Each chip select is independently configurable.
5
6 Properties:
7 - compatible: "cavium,octeon-3860-bootbus"
8
9 Compatibility with all cn3XXX, cn5XXX and cn6XXX SOCs.
10
11 - reg: The base address of the Boot Bus' register bank.
12
13 - #address-cells: Must be <2>. The first cell is the chip select
14 within the bootbus. The second cell is the offset from the chip select.
15
16 - #size-cells: Must be <1>.
17
18 - ranges: There must be one one triplet of (child-bus-address,
19 parent-bus-address, length) for each active chip select. If the
20 length element for any triplet is zero, the chip select is disabled,
21 making it inactive.
22
23 The configuration parameters for each chip select are stored in child
24 nodes.
25
26 Configuration Properties:
27 - compatible: "cavium,octeon-3860-bootbus-config"
28
29 - cavium,cs-index: A single cell indicating the chip select that
30 corresponds to this configuration.
31
32 - cavium,t-adr: A cell specifying the ADR timing (in nS).
33
34 - cavium,t-ce: A cell specifying the CE timing (in nS).
35
36 - cavium,t-oe: A cell specifying the OE timing (in nS).
37
38 - cavium,t-we: A cell specifying the WE timing (in nS).
39
40 - cavium,t-rd-hld: A cell specifying the RD_HLD timing (in nS).
41
42 - cavium,t-wr-hld: A cell specifying the WR_HLD timing (in nS).
43
44 - cavium,t-pause: A cell specifying the PAUSE timing (in nS).
45
46 - cavium,t-wait: A cell specifying the WAIT timing (in nS).
47
48 - cavium,t-page: A cell specifying the PAGE timing (in nS).
49
50 - cavium,t-rd-dly: A cell specifying the RD_DLY timing (in nS).
51
52 - cavium,pages: A cell specifying the PAGES parameter (0 = 8 bytes, 1
53 = 2 bytes, 2 = 4 bytes, 3 = 8 bytes).
54
55 - cavium,wait-mode: Optional. If present, wait mode (WAITM) is selected.
56
57 - cavium,page-mode: Optional. If present, page mode (PAGEM) is selected.
58
59 - cavium,bus-width: A cell specifying the WIDTH parameter (in bits) of
60 the bus for this chip select.
61
62 - cavium,ale-mode: Optional. If present, ALE mode is selected.
63
64 - cavium,sam-mode: Optional. If present, SAM mode is selected.
65
66 - cavium,or-mode: Optional. If present, OR mode is selected.
67
68 Example:
69 bootbus: bootbus@1180000000000 {
70 compatible = "cavium,octeon-3860-bootbus";
71 reg = <0x11800 0x00000000 0x0 0x200>;
72 /* The chip select number and offset */
73 #address-cells = <2>;
74 /* The size of the chip select region */
75 #size-cells = <1>;
76 ranges = <0 0 0x0 0x1f400000 0xc00000>,
77 <1 0 0x10000 0x30000000 0>,
78 <2 0 0x10000 0x40000000 0>,
79 <3 0 0x10000 0x50000000 0>,
80 <4 0 0x0 0x1d020000 0x10000>,
81 <5 0 0x0 0x1d040000 0x10000>,
82 <6 0 0x0 0x1d050000 0x10000>,
83 <7 0 0x10000 0x90000000 0>;
84
85 cavium,cs-config@0 {
86 compatible = "cavium,octeon-3860-bootbus-config";
87 cavium,cs-index = <0>;
88 cavium,t-adr = <20>;
89 cavium,t-ce = <60>;
90 cavium,t-oe = <60>;
91 cavium,t-we = <45>;
92 cavium,t-rd-hld = <35>;
93 cavium,t-wr-hld = <45>;
94 cavium,t-pause = <0>;
95 cavium,t-wait = <0>;
96 cavium,t-page = <35>;
97 cavium,t-rd-dly = <0>;
98
99 cavium,pages = <0>;
100 cavium,bus-width = <8>;
101 };
102 .
103 .
104 .
105 cavium,cs-config@6 {
106 compatible = "cavium,octeon-3860-bootbus-config";
107 cavium,cs-index = <6>;
108 cavium,t-adr = <5>;
109 cavium,t-ce = <300>;
110 cavium,t-oe = <270>;
111 cavium,t-we = <150>;
112 cavium,t-rd-hld = <100>;
113 cavium,t-wr-hld = <70>;
114 cavium,t-pause = <0>;
115 cavium,t-wait = <0>;
116 cavium,t-page = <320>;
117 cavium,t-rd-dly = <0>;
118
119 cavium,pages = <0>;
120 cavium,wait-mode;
121 cavium,bus-width = <16>;
122 };
123 .
124 .
125 .
126 };
127

3. 한국어 전문 번역

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

Octeon Boot Bus와 주소 구조

1-25

Octeon Boot Bus는 chip-select 8개를 가진 configurable parallel bus이며 각 chip-select를 독립적으로 구성할 수 있습니다. `compatible`은 `cavium,octeon-3860-bootbus`이며 cn3XXX, cn5XXX, cn6XXX SoC 전체와 호환됩니다. `reg`는 Boot Bus register bank의 base address입니다.

`#address-cells`는 `<2>`입니다. 첫 cell은 bootbus 내부 chip-select, 둘째 cell은 해당 chip-select에서의 offset입니다. `#size-cells`는 `<1>`입니다.

`ranges`에는 active chip-select마다 `(child-bus-address, parent-bus-address, length)` triplet이 하나씩 있어야 합니다. triplet의 length가 0이면 그 chip-select는 disabled되어 inactive가 됩니다. 각 chip-select의 configuration parameter는 child node에 저장합니다.

Octeon Boot Bus
Boot Bus register bankChip select 0
Boot Bus register bankChip select 1
Boot Bus register bankChip select 2..7
Each chip selectIndependent timing and width

하나의 parallel bus가 여덟 chip-select 주소 창과 각각의 configuration child를 제공합니다.

Boot Bus ranges triplet
요소의미
Child bus addressChip-select 번호와 내부 offset
Parent bus address상위 물리 주소
Length주소 창 크기, 0이면 disabled

각 active chip-select의 주소 변환 요소입니다.

Chip-select timing과 mode

26-67

Configuration child의 `compatible`은 `cavium,octeon-3860-bootbus-config`이고 `cavium,cs-index`는 이 설정에 대응하는 chip-select 번호입니다.

`cavium,t-adr`, `cavium,t-ce`, `cavium,t-oe`, `cavium,t-we`, `cavium,t-rd-hld`, `cavium,t-wr-hld`, `cavium,t-pause`, `cavium,t-wait`, `cavium,t-page`, `cavium,t-rd-dly`는 각각 ADR, CE, OE, WE, RD_HLD, WR_HLD, PAUSE, WAIT, PAGE, RD_DLY timing을 nanosecond 단위로 지정합니다.

`cavium,pages`는 PAGES parameter이며 값 0은 8 bytes, 1은 2 bytes, 2는 4 bytes, 3은 8 bytes입니다. 원문에서 0과 3이 모두 8 bytes로 정의된 점을 그대로 보존합니다. 선택 `cavium,wait-mode`는 WAITM, `cavium,page-mode`는 PAGEM을 선택합니다.

`cavium,bus-width`는 해당 chip-select bus의 WIDTH를 bit 단위로 지정합니다. 선택 `cavium,ale-mode`, `cavium,sam-mode`, `cavium,or-mode`는 각각 ALE, SAM, OR mode를 선택합니다.

Boot Bus configuration parameter
분류속성
Address/control timingt-adr, t-ce, t-oe, t-we
Hold timingt-rd-hld, t-wr-hld
Wait/page timingt-pause, t-wait, t-page, t-rd-dly
Page sizepages
Bus widthbus-width
Optional modeswait-mode, page-mode, ale-mode, sam-mode, or-mode

Timing, page, width, mode 속성을 기능별로 정리했습니다.

Chip-select 0·6 예제

68-126

예제는 Boot Bus register bank `0x1180000000000`, 여덟 `ranges` 항목과 chip-select별 구성 노드를 보여 줍니다. length가 0인 chip-select 1·2·3·7은 disabled이고, 0·4·5·6은 active 주소 창을 갖습니다.

chip-select 0은 ADR 20ns, CE/OE 60ns, WE 45ns, RD_HLD 35ns, WR_HLD 45ns, PAGE 35ns, 8-bit bus입니다. chip-select 6은 ADR 5ns, CE 300ns, OE 270ns, WE 150ns, RD_HLD 100ns, WR_HLD 70ns, PAGE 320ns, wait mode, 16-bit bus를 사용합니다. 중간 생략을 나타내는 원문의 단독 `.` 줄도 그대로 보존합니다.

bootbus: bootbus@1180000000000 {
        compatible = "cavium,octeon-3860-bootbus";
        reg = <0x11800 0x00000000 0x0 0x200>;
        /* The chip select number and offset */
        #address-cells = <2>;
        /* The size of the chip select region */
        #size-cells = <1>;
        ranges = <0 0  0x0 0x1f400000  0xc00000>,
                 <1 0  0x10000 0x30000000  0>,
                 <2 0  0x10000 0x40000000  0>,
                 <3 0  0x10000 0x50000000  0>,
                 <4 0  0x0 0x1d020000  0x10000>,
                 <5 0  0x0 0x1d040000  0x10000>,
                 <6 0  0x0 0x1d050000  0x10000>,
                 <7 0  0x10000 0x90000000  0>;

                cavium,cs-config@0 {
                compatible = "cavium,octeon-3860-bootbus-config";
                cavium,cs-index = <0>;
                cavium,t-adr  = <20>;
                cavium,t-ce   = <60>;
                cavium,t-oe   = <60>;
                cavium,t-we   = <45>;
                cavium,t-rd-hld = <35>;
                cavium,t-wr-hld = <45>;
                cavium,t-pause  = <0>;
                cavium,t-wait   = <0>;
                cavium,t-page   = <35>;
                cavium,t-rd-dly = <0>;

                cavium,pages     = <0>;
                cavium,bus-width = <8>;
        };
        .
        .
        .
        cavium,cs-config@6 {
                compatible = "cavium,octeon-3860-bootbus-config";
                cavium,cs-index = <6>;
                cavium,t-adr  = <5>;
                cavium,t-ce   = <300>;
                cavium,t-oe   = <270>;
                cavium,t-we   = <150>;
                cavium,t-rd-hld = <100>;
                cavium,t-wr-hld = <70>;
                cavium,t-pause  = <0>;
                cavium,t-wait   = <0>;
                cavium,t-page   = <320>;
                cavium,t-rd-dly = <0>;

                cavium,pages     = <0>;
                cavium,wait-mode;
                cavium,bus-width = <16>;
        };
        .
        .
        .
};