요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
* Chipselect/Local Bus
Properties:
- name : Should be localbus
- #address-cells : Should be either two or three. The first cell is the
chipselect number, and the remaining cells are the
offset into the chipselect.
- #size-cells : Either one or two, depending on how large each chipselect
can be.
- ranges : Each range corresponds to a single chipselect, and cover
the entire access window as configured.
Example:
localbus@f0010100 {
compatible = "fsl,mpc8272-localbus",
"fsl,pq2-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <0xf0010100 0x40>;
ranges = <0x0 0x0 0xfe000000 0x02000000
0x1 0x0 0xf4500000 0x00008000
0x2 0x0 0xfd810000 0x00010000>;
flash@0,0 {
compatible = "jedec-flash";
reg = <0x0 0x0 0x2000000>;
bank-width = <4>;
device-width = <1>;
};
board-control@1,0 {
reg = <0x1 0x0 0x20>;
compatible = "fsl,mpc8272ads-bcsr";
};
simple-periph@2,0 {
compatible = "fsl,elbc-gpcm-uio";
reg = <0x2 0x0 0x10000>;
elbc-gpcm-br = <0xfd810800>;
elbc-gpcm-or = <0xffff09f7>;
};
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Chipselect와 Local Bus property
1-12Chipselect/Local Bus node의 이름은 `localbus`여야 합니다. `#address-cells`는 2 또는 3이어야 하며 첫 cell은 chipselect 번호, 나머지 cell은 해당 chipselect 안의 offset입니다.
`#size-cells`는 각 chipselect가 가질 수 있는 최대 크기에 따라 1 또는 2입니다. `ranges`의 각 range는 chipselect 하나에 대응하며 설정된 전체 access window를 포괄합니다.
Local Bus 예제
13-43예제의 `fsl,mpc8272-localbus`, `fsl,pq2-localbus` controller는 세 개의 chipselect range를 제공합니다. Chipselect 0에는 JEDEC flash, 1에는 board-control register, 2에는 GPCM 기반 simple peripheral을 배치합니다.
각 child의 `reg` 첫 cell은 chipselect 번호이고 두 번째 cell은 그 window 안의 offset입니다. Flash는 bank width와 device width를, simple peripheral은 `elbc-gpcm-br`과 `elbc-gpcm-or` 값을 추가로 지정합니다.
localbus@f0010100 {
compatible = "fsl,mpc8272-localbus",
"fsl,pq2-localbus";
#address-cells = <2>;
#size-cells = <1>;
reg = <0xf0010100 0x40>;
ranges = <0x0 0x0 0xfe000000 0x02000000
0x1 0x0 0xf4500000 0x00008000
0x2 0x0 0xfd810000 0x00010000>;
flash@0,0 {
compatible = "jedec-flash";
reg = <0x0 0x0 0x2000000>;
bank-width = <4>;
device-width = <1>;
};
board-control@1,0 {
reg = <0x1 0x0 0x20>;
compatible = "fsl,mpc8272ads-bcsr";
};
simple-periph@2,0 {
compatible = "fsl,elbc-gpcm-uio";
reg = <0x2 0x0 0x10000>;
elbc-gpcm-br = <0xfd810800>;
elbc-gpcm-or = <0xffff09f7>;
};
};
요약과 해설
lbc.txt:1-43Chipselect 번호와 window 내부 offset으로 child address를 구성하고 flash·board control·GPCM peripheral을 배치하는 방법을 정리합니다.