← Documents Documentation/admin-guide/media/starfive_camss_graph.dot GitHub 원문 ↗

Linux 6.18.37 · Admin guide

StarFive CAMSS 미디어 그래프

StarFive CAMSS에서 IMX219 센서 입력이 Cadence CSI-2 브리지를 거쳐 RAW 직접 캡처와 ISP 처리 후 YUV 캡처로 갈라지는 미디어 토폴로지를 해설합니다.

Source pathDocumentation/admin-guide/media/starfive_camss_graph.dot
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

starfive_camss_graph.dot:1-12

StarFive CAMSS에서 IMX219 센서 입력이 Cadence CSI-2 브리지를 거쳐 RAW 직접 캡처와 ISP 처리 후 YUV 캡처로 갈라지는 미디어 토폴로지를 해설합니다.

StarFive CAMSS 경로 요약
IMX219CSI-2 bridgecapture_raw 또는 stf_ispcapture_yuv

CSI-2 브리지에서 RAW 직접 캡처와 ISP YUV 처리 경로로 분기합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 digraph board {
2 rankdir=TB
3 n00000001 [label="{{<port0> 0} | stf_isp\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
4 n00000001:port1 -> n00000008 [style=dashed]
5 n00000004 [label="capture_raw\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
6 n00000008 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
7 n0000000e [label="{{<port0> 0} | cdns_csi2rx.19800000.csi-bridge\n | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
8 n0000000e:port1 -> n00000001:port0 [style=dashed]
9 n0000000e:port1 -> n00000004 [style=dashed]
10 n00000018 [label="{{} | imx219 6-0010\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
11 n00000018:port0 -> n0000000e:port0 [style=bold]
12 }
13

3. 한국어 전문 번역

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

IMX219에서 RAW 직접 캡처와 ISP YUV 출력으로 갈라지는 경로

1-12

이 Graphviz DOT 원문은 StarFive Camera Subsystem(CAMSS)의 V4L2 미디어 토폴로지를 나타냅니다. `imx219 6-0010` 센서의 출력 port0이 Cadence CSI-2 수신 브리지 `cdns_csi2rx.19800000.csi-bridge`의 입력 port0으로 연결됩니다.

CSI-2 브리지의 출력 port1은 두 경로를 제공합니다. 하나는 `capture_raw` `/dev/video0`으로 직접 전달되는 RAW 캡처 경로이고, 다른 하나는 `stf_isp` `/dev/v4l-subdev0`의 입력 port0으로 들어가는 ISP 처리 경로입니다. ISP 출력 port1은 `capture_yuv` `/dev/video1`로 이어집니다.

센서에서 CSI-2 브리지로 들어가는 링크 1개는 `style=bold`이고, 브리지에서 RAW·ISP로 가는 두 링크와 ISP에서 YUV로 가는 링크는 모두 `style=dashed`입니다. 브리지는 출력 port1-4를 선언하지만 이 12줄 그래프에서 실제 링크가 있는 출력은 port1뿐이며 port2-4는 연결되지 않습니다.

StarFive CAMSS의 RAW·YUV 분기
imx219 6-0010 /dev/v4l-subdev1CSI-2 bridge port0port1capture_raw /dev/video0
imx219 6-0010 /dev/v4l-subdev1CSI-2 bridge port0port1stf_isp /dev/v4l-subdev0 port0port1capture_yuv /dev/video1

동일한 센서 입력이 CSI-2 브리지에서 직접 RAW 캡처와 ISP 처리 후 YUV 캡처 경로로 나뉩니다.

미디어 엔티티와 패드
엔티티장치 경로패드역할
imx219 6-0010/dev/v4l-subdev1출력 port0카메라 센서
cdns_csi2rx.19800000.csi-bridge원문에 `/dev` 경로 없음입력 port0, 출력 port1-4Cadence CSI-2 수신 브리지
stf_isp/dev/v4l-subdev0입력 port0, 출력 port1StarFive ISP 처리
capture_raw/dev/video0비디오 노드브리지에서 직접 받는 RAW 캡처
capture_yuv/dev/video1비디오 노드ISP 처리 후 YUV 캡처

세 서브디바이스와 두 비디오 캡처 노드의 경로·패드·역할입니다.

링크 방향과 스타일
출발목적지스타일경로 의미
imx219 port0CSI-2 bridge port0`style=bold`센서 입력
CSI-2 bridge port1capture_raw `/dev/video0``style=dashed`RAW 직접 캡처
CSI-2 bridge port1stf_isp port0`style=dashed`ISP 처리 입력
stf_isp port1capture_yuv `/dev/video1``style=dashed`YUV 캡처 출력

원문의 네 링크를 출발·목적지와 선 모양별로 보존합니다.

그래프 구조 수량
구성수량세부
전체 노드5초록색 Mrecord 3 + 노란색 box 2
전체 링크4굵은 선 1 + 점선 3
브리지 출력 패드4port1-4 중 port1만 링크 사용
캡처 노드2RAW `/dev/video0` + YUV `/dev/video1`

12줄 DOT 원문에서 전용 감사가 검증하는 구조입니다.

원문 줄 좌표
원문 줄구성해설
1-2그래프·배치 선언`digraph board`와 `rankdir=TB`를 정의합니다.
3-4StarFive ISP와 YUV 링크ISP port1에서 `capture_yuv`로 가는 점선 링크입니다.
5-6RAW·YUV 캡처 노드`/dev/video0`과 `/dev/video1`을 선언합니다.
7-9CSI-2 브리지와 두 분기port1이 ISP와 RAW 캡처로 각각 연결됩니다.
10-11IMX219 센서와 입력 링크센서 port0이 브리지 port0에 굵은 선으로 연결됩니다.
12닫는 중괄호`board` 그래프 정의를 끝냅니다.

짧은 그래프의 선언과 링크 위치를 줄 단위로 구분합니다.

아래 코드는 Linux v6.18.37 원문 1-12줄 전체입니다. 표시 안정성을 위해 탭만 여덟 칸으로 정규화했으며 노드 ID, 엔티티명, 장치 경로, 패드 번호, 링크 방향과 스타일은 그대로 보존했습니다.

digraph board {
        rankdir=TB
        n00000001 [label="{{<port0> 0} | stf_isp\n/dev/v4l-subdev0 | {<port1> 1}}", shape=Mrecord, style=filled, fillcolor=green]
        n00000001:port1 -> n00000008 [style=dashed]
        n00000004 [label="capture_raw\n/dev/video0", shape=box, style=filled, fillcolor=yellow]
        n00000008 [label="capture_yuv\n/dev/video1", shape=box, style=filled, fillcolor=yellow]
        n0000000e [label="{{<port0> 0} | cdns_csi2rx.19800000.csi-bridge\n | {<port1> 1 | <port2> 2 | <port3> 3 | <port4> 4}}", shape=Mrecord, style=filled, fillcolor=green]
        n0000000e:port1 -> n00000001:port0 [style=dashed]
        n0000000e:port1 -> n00000004 [style=dashed]
        n00000018 [label="{{} | imx219 6-0010\n/dev/v4l-subdev1 | {<port0> 0}}", shape=Mrecord, style=filled, fillcolor=green]
        n00000018:port0 -> n0000000e:port0 [style=bold]
}