← Documents Documentation/PCI/controller/rcar-pcie-firmware.rst GitHub 원문 ↗

Linux 6.18.37 · PCI

R-Car V4H PCIe firmware

Datasheet text를 R-Car Gen4 PCIe binary firmware로 변환·검증·설치하는 절차입니다.

Source pathDocumentation/PCI/controller/rcar-pcie-firmware.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

rcar-pcie-firmware.rst:1-32

무료 배포할 수 없는 PCIe firmware를 datasheet text에서 binary로 복원하고 checksum 확인 후 `/lib/firmware`에 둡니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 =================================================
4 Firmware of PCIe controller for Renesas R-Car V4H
5 =================================================
6
7 Renesas R-Car V4H (r8a779g0) has a PCIe controller, requiring a specific
8 firmware download during startup.
9
10 However, Renesas currently cannot distribute the firmware free of charge.
11
12 The firmware file "104_PCIe_fw_addr_data_ver1.05.txt" (note that the file name
13 might be different between different datasheet revisions) can be found in the
14 datasheet encoded as text, and as such, the file's content must be converted
15 back to binary form. This can be achieved using the following example script:
16
17 .. code-block:: sh
18
19 $ awk '/^\s*0x[0-9A-Fa-f]{4}\s+0x[0-9A-Fa-f]{4}/ { print substr($2,5,2) substr($2,3,2) }' \
20 104_PCIe_fw_addr_data_ver1.05.txt | \
21 xxd -p -r > rcar_gen4_pcie.bin
22
23 Once the text content has been converted into a binary firmware file, verify
24 its checksum as follows:
25
26 .. code-block:: sh
27
28 $ sha1sum rcar_gen4_pcie.bin
29 1d0bd4b189b4eb009f5d564b1f93a79112994945 rcar_gen4_pcie.bin
30
31 The resulting binary file called "rcar_gen4_pcie.bin" should be placed in the
32 "/lib/firmware" directory before the driver runs.
33

3. 한국어 전문 번역

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

Firmware 원본과 binary 변환

1-15

Renesas R-Car V4H(`r8a779g0`)의 PCIe controller는 시작할 때 전용 firmware를 download해야 합니다. 현재 Renesas는 이 firmware를 무료로 배포할 수 없습니다.

Firmware file `104_PCIe_fw_addr_data_ver1.05.txt`는 datasheet에 text로 encoding되어 있습니다. Datasheet revision에 따라 filename이 다를 수 있으며, 내용을 다시 binary 형태로 변환해야 합니다.

.. SPDX-License-Identifier: GPL-2.0

=================================================
Firmware of PCIe controller for Renesas R-Car V4H
=================================================

Renesas R-Car V4H (r8a779g0) has a PCIe controller, requiring a specific
firmware download during startup.

However, Renesas currently cannot distribute the firmware free of charge.

The firmware file "104_PCIe_fw_addr_data_ver1.05.txt" (note that the file name
might be different between different datasheet revisions) can be found in the
datasheet encoded as text, and as such, the file's content must be converted
back to binary form. This can be achieved using the following example script:

변환·checksum·설치

16-32

다음 예제는 address/data text line에서 byte 순서를 바꿔 추출한 뒤 `xxd`로 binary `rcar_gen4_pcie.bin`을 만듭니다.

$ awk '/^\s*0x[0-9A-Fa-f]{4}\s+0x[0-9A-Fa-f]{4}/ { print substr($2,5,2) substr($2,3,2) }' \
+    104_PCIe_fw_addr_data_ver1.05.txt | \
+        xxd -p -r > rcar_gen4_pcie.bin

변환한 binary firmware의 SHA-1 checksum은 아래 값과 일치해야 합니다.

$ sha1sum rcar_gen4_pcie.bin
1d0bd4b189b4eb009f5d564b1f93a79112994945  rcar_gen4_pcie.bin

Driver가 실행되기 전에 결과 file `rcar_gen4_pcie.bin`을 `/lib/firmware` directory에 배치합니다.


.. code-block:: sh

        $ awk '/^\s*0x[0-9A-Fa-f]{4}\s+0x[0-9A-Fa-f]{4}/ { print substr($2,5,2) substr($2,3,2) }' \
                104_PCIe_fw_addr_data_ver1.05.txt | \
                        xxd -p -r > rcar_gen4_pcie.bin

Once the text content has been converted into a binary firmware file, verify
its checksum as follows:

.. code-block:: sh

        $ sha1sum rcar_gen4_pcie.bin
        1d0bd4b189b4eb009f5d564b1f93a79112994945  rcar_gen4_pcie.bin

The resulting binary file called "rcar_gen4_pcie.bin" should be placed in the
"/lib/firmware" directory before the driver runs.