요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
NXP LPC32xx SoC NAND SLC controller
Required properties:
- compatible: "nxp,lpc3220-slc"
- reg: Address and size of the controller
- nand-on-flash-bbt: Use bad block table on flash
- gpios: GPIO specification for NAND write protect
The following required properties are very controller specific. See the LPC32xx
User Manual:
- nxp,wdr-clks: Delay before Ready signal is tested on write (W_RDY)
- nxp,rdr-clks: Delay before Ready signal is tested on read (R_RDY)
(The following values are specified in Hz, to make them independent of actual
clock speed:)
- nxp,wwidth: Write pulse width (W_WIDTH)
- nxp,whold: Write hold time (W_HOLD)
- nxp,wsetup: Write setup time (W_SETUP)
- nxp,rwidth: Read pulse width (R_WIDTH)
- nxp,rhold: Read hold time (R_HOLD)
- nxp,rsetup: Read setup time (R_SETUP)
Optional subnodes:
- Partitions, see Documentation/devicetree/bindings/mtd/mtd.yaml
Example:
slc: flash@20020000 {
compatible = "nxp,lpc3220-slc";
reg = <0x20020000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
nxp,wdr-clks = <14>;
nxp,wwidth = <40000000>;
nxp,whold = <100000000>;
nxp,wsetup = <100000000>;
nxp,rdr-clks = <14>;
nxp,rwidth = <40000000>;
nxp,rhold = <66666666>;
nxp,rsetup = <100000000>;
nand-on-flash-bbt;
gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
mtd0@00000000 {
label = "phy3250-boot";
reg = <0x00000000 0x00064000>;
read-only;
};
...
};
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
LPC32xx SLC controller
1-2이 문서는 NXP LPC32xx SoC NAND SLC controller 바인딩입니다.
Controller와 on-flash BBT
3-8필수 `compatible`은 `nxp,lpc3220-slc`, `reg`는 controller 주소와 크기입니다. `nand-on-flash-bbt`는 bad-block table을 flash에 저장해 사용하게 하며, `gpios`는 NAND write-protect GPIO specifier입니다.
Controller가 on-flash BBT를 참조하고 GPIO로 write protect를 제어합니다.
Ready delay와 read·write timing
9-24Controller 전용 필수 속성은 LPC32xx User Manual을 따릅니다. `nxp,wdr-clks`는 write 시 Ready signal을 검사하기 전 delay인 `W_RDY`, `nxp,rdr-clks`는 read 시 delay인 `R_RDY`입니다.
나머지 값은 실제 clock 속도와 독립적이도록 Hz 단위입니다. `nxp,wwidth`, `nxp,whold`, `nxp,wsetup`은 각각 write pulse width `W_WIDTH`, hold `W_HOLD`, setup `W_SETUP`입니다. `nxp,rwidth`, `nxp,rhold`, `nxp,rsetup`은 read 측 `R_WIDTH`, `R_HOLD`, `R_SETUP`입니다.
선택 subnode로 partition을 둘 수 있으며 `Documentation/devicetree/bindings/mtd/mtd.yaml`을 참조합니다.
Ready 검사 delay와 read·write pulse timing입니다.
LPC32xx SLC boot partition 예제
25-52예제는 `0x20020000`의 SLC controller, Ready delay 14, read·write timing, on-flash BBT와 active-low GPO_P3 19 write protect를 설정합니다. Read-only `phy3250-boot` partition의 크기는 `0x00064000`입니다.
slc: flash@20020000 {
compatible = "nxp,lpc3220-slc";
reg = <0x20020000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
nxp,wdr-clks = <14>;
nxp,wwidth = <40000000>;
nxp,whold = <100000000>;
nxp,wsetup = <100000000>;
nxp,rdr-clks = <14>;
nxp,rwidth = <40000000>;
nxp,rhold = <66666666>;
nxp,rsetup = <100000000>;
nand-on-flash-bbt;
gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
mtd0@00000000 {
label = "phy3250-boot";
reg = <0x00000000 0x00064000>;
read-only;
};
...
};
요약과 해설
lpc32xx-slc.txt:1-52여덟 timing 속성과 phy3250 boot partition을 설명합니다.