요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
Cadence IP BRA support
----------------------
Format requirements
~~~~~~~~~~~~~~~~~~~
The Cadence IP relies on PDI0 for TX and PDI1 for RX. The data needs
to be formatted with the following conventions:
(1) all Data is stored in bits 15..0 of the 32-bit PDI FIFOs.
(2) the start of packet is BIT(31).
(3) the end of packet is BIT(30).
(4) A packet ID is stored in bits 19..16. This packet ID is
determined by software and is typically a rolling counter.
(5) Padding shall be inserted as needed so that the Header CRC,
Header response, Footer CRC, Footer response are always in
Byte0. Padding is inserted by software for writes, and on reads
software shall discard the padding added by the hardware.
Example format
~~~~~~~~~~~~~~
The following table represents the sequence provided to PDI0 for a
write command followed by a read command.
::
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 0 | WR HDR[1] | WR HDR[0] |
+ | | | WR HDR[3] | WR HDR[2] |
+ | | | WR HDR[5] | WR HDR[4] |
+ | | | pad | WR HDR CRC |
+ | | | WR Data[1] | WR Data[0] |
+ | | | WR Data[3] | WR Data[2] |
+ | | | WR Data[n-2] | WR Data[n-3] |
+ | | | pad | WR Data[n-1] |
+ 0 | 1 | | pad | WR Data CRC |
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 1 | RD HDR[1] | RD HDR[0] |
+ | | | RD HDR[3] | RD HDR[2] |
+ | | | RD HDR[5] | RD HDR[4] |
+ 0 | 1 | | pad | RD HDR CRC |
+---+---+--------+---------------+---------------+
The table below represents the data received on PDI1 for the same
write command followed by a read command.
::
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 0 | pad | WR Hdr Rsp |
+ 0 | 1 | | pad | WR Ftr Rsp |
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 0 | pad | Rd Hdr Rsp |
+ | | | RD Data[1] | RD Data[0] |
+ | | | RD Data[3] | RD Data[2] |
+ | | | RD HDR[n-2] | RD Data[n-3] |
+ | | | pad | RD Data[n-1] |
+ | | | pad | RD Data CRC |
+ 0 | 1 | | pad | RD Ftr Rsp |
+---+---+--------+---------------+---------------+
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Cadence PDI packet format
1-23Cadence IP의 Bulk Register Access(BRA)는 TX에 PDI0, RX에 PDI1을 사용합니다.
모든 data는 32-bit PDI FIFO word의 bit 15..0에 저장합니다. Packet 시작은 `BIT(31)`, 끝은 `BIT(30)`으로 표시합니다.
Software가 정하는 packet ID는 bit 19..16에 저장하며 보통 rolling counter를 사용합니다.
Header CRC, header response, footer CRC, footer response가 항상 Byte0에 오도록 padding을 삽입해야 합니다. Write에서는 software가 padding을 넣고, read에서는 hardware가 추가한 padding을 software가 버립니다.
Cadence IP BRA support
----------------------
Format requirements
~~~~~~~~~~~~~~~~~~~
The Cadence IP relies on PDI0 for TX and PDI1 for RX. The data needs
to be formatted with the following conventions:
(1) all Data is stored in bits 15..0 of the 32-bit PDI FIFOs.
(2) the start of packet is BIT(31).
(3) the end of packet is BIT(30).
(4) A packet ID is stored in bits 19..16. This packet ID is
determined by software and is typically a rolling counter.
(5) Padding shall be inserted as needed so that the Header CRC,
Header response, Footer CRC, Footer response are always in
Byte0. Padding is inserted by software for writes, and on reads
software shall discard the padding added by the hardware.
PDI0 write·read command sequence
24-49PDI0에 먼저 packet ID 0의 write command를 제공하고 이어서 packet ID 1의 read command를 제공합니다.
Write packet은 header 6 byte, header CRC, data byte, data CRC 순서입니다. 각 16-bit payload 위치를 채우기 위해 필요한 곳에 pad를 넣고 마지막 data CRC word에서 EOP를 표시합니다.
Read command packet은 6-byte header와 header CRC로 구성되며 header CRC word에서 EOP를 표시합니다.
원문의 ASCII 표를 packet phase와 16-bit FIFO payload byte pair로 구조화했습니다.
Example format
~~~~~~~~~~~~~~
The following table represents the sequence provided to PDI0 for a
write command followed by a read command.
::
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 0 | WR HDR[1] | WR HDR[0] |
+ | | | WR HDR[3] | WR HDR[2] |
+ | | | WR HDR[5] | WR HDR[4] |
+ | | | pad | WR HDR CRC |
+ | | | WR Data[1] | WR Data[0] |
+ | | | WR Data[3] | WR Data[2] |
+ | | | WR Data[n-2] | WR Data[n-3] |
+ | | | pad | WR Data[n-1] |
+ 0 | 1 | | pad | WR Data CRC |
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 1 | RD HDR[1] | RD HDR[0] |
+ | | | RD HDR[3] | RD HDR[2] |
+ | | | RD HDR[5] | RD HDR[4] |
+ 0 | 1 | | pad | RD HDR CRC |
+---+---+--------+---------------+---------------+
PDI1 response sequence
50-66동일한 write·read command에 대해 PDI1은 먼저 write header response와 write footer response를 반환합니다. 두 response는 각각 pad와 함께 Byte0에 놓이며 footer response에서 EOP를 표시합니다.
이어지는 read response는 header response, read data byte pair, data CRC, footer response 순서입니다. 필요한 high byte 위치에는 pad가 들어가고 footer response에서 EOP를 표시합니다.
원문 PDI1 ASCII 표는 read response의 packet ID를 `ID = 0`으로, 한 data row를 `RD HDR[n-2]`로 표기합니다. 아래 구조화 표와 접힌 원문 모두 이 표기를 그대로 보존합니다.
원문의 label과 대소문자를 변경하지 않고 16-bit response word 순서로 재구성했습니다.
The table below represents the data received on PDI1 for the same
write command followed by a read command.
::
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 0 | pad | WR Hdr Rsp |
+ 0 | 1 | | pad | WR Ftr Rsp |
+---+---+--------+---------------+---------------+
+ 1 | 0 | ID = 0 | pad | Rd Hdr Rsp |
+ | | | RD Data[1] | RD Data[0] |
+ | | | RD Data[3] | RD Data[2] |
+ | | | RD HDR[n-2] | RD Data[n-3] |
+ | | | pad | RD Data[n-1] |
+ | | | pad | RD Data CRC |
+ 0 | 1 | | pad | RD Ftr Rsp |
+---+---+--------+---------------+---------------+
요약과 해설
bra_cadence.rst:1-66Cadence BRA는 TX PDI0와 RX PDI1의 32-bit FIFO에서 low 16 bit를 payload로 사용하고 SOP·EOP·packet ID를 상위 bit에 표시합니다. CRC와 response를 Byte0에 정렬하는 padding 규칙과 write·read command/response word 순서를 구조화 표로 정리합니다.