← Documents Documentation/devicetree/bindings/mailbox/ti,message-manager.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

TI Message Manager

TI K2G Message Manager의 queue ID·proxy ID와 RX interrupt mapping입니다.

Source pathDocumentation/devicetree/bindings/mailbox/ti,message-manager.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

ti,message-manager.txt:1-50

단방향 queue proxy와 PMMC의 RX·TX 경로 선택을 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 Texas Instruments' Message Manager Driver
2 ========================================
3
4 The Texas Instruments' Message Manager is a mailbox controller that has
5 configurable queues selectable at SoC(System on Chip) integration. The Message
6 manager is broken up into queues in different address regions that are called
7 "proxies" - each instance is unidirectional and is instantiated at SoC
8 integration level to indicate receive or transmit path.
9
10 Message Manager Device Node:
11 ===========================
12 Required properties:
13 --------------------
14 - compatible: Shall be: "ti,k2g-message-manager"
15 - reg-names queue_proxy_region - Map the queue proxy region.
16 queue_state_debug_region - Map the queue state debug
17 region.
18 - reg: Contains the register map per reg-names.
19 - #mbox-cells Shall be 2. Contains the queue ID and proxy ID in that
20 order referring to the transfer path.
21 - interrupt-names: Contains interrupt names matching the rx transfer path
22 for a given SoC. Receive interrupts shall be of the
23 format: "rx_<QID>".
24 For ti,k2g-message-manager, this shall contain:
25 "rx_005", "rx_057"
26 - interrupts: Contains the interrupt information corresponding to
27 interrupt-names property.
28
29 Example(K2G):
30 ------------
31
32 msgmgr: msgmgr@2a00000 {
33 compatible = "ti,k2g-message-manager";
34 #mbox-cells = <2>;
35 reg-names = "queue_proxy_region", "queue_state_debug_region";
36 reg = <0x02a00000 0x400000>, <0x028c3400 0x400>;
37 interrupt-names = "rx_005", "rx_057";
38 interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
39 <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
40 };
41
42 pmmc: pmmc {
43 [...]
44 mbox-names = "rx", "tx";
45 # RX queue ID is 5, proxy ID is 2
46 # TX queue ID is 0, proxy ID is 0
47 mboxes= <&msgmgr 5 2>,
48 <&msgmgr 0 0>;
49 [...]
50 };
51

3. 한국어 전문 번역

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

TI Message Manager queue와 proxy

1-28

TI Message Manager는 SoC integration 시 선택할 수 있는 configurable queue를 가진 mailbox controller입니다. Manager는 서로 다른 address region의 queue인 `proxy`들로 나뉘며, 각 instance는 단방향이고 SoC integration 단계에서 receive 또는 transmit path로 생성됩니다.

필수 `compatible`은 `ti,k2g-message-manager`입니다. `reg-names`의 `queue_proxy_region`은 queue proxy region을, `queue_state_debug_region`은 queue state debug region을 가리키며 `reg`는 이 순서에 맞는 register map을 담습니다.

`#mbox-cells`는 2이며 transfer path를 가리키는 queue ID와 proxy ID를 그 순서로 담습니다. `interrupt-names`는 SoC의 RX transfer path와 일치해야 하고 `rx_<QID>` 형식을 사용합니다. K2G에서는 `rx_005`와 `rx_057`을 포함해야 합니다. `interrupts`는 각 `interrupt-names`에 대응하는 interrupt 정보를 담습니다.

TI Message Manager 경로 식별
항목형식의미
mbox cell 1queue ID전송 경로 queue
mbox cell 2proxy IDQueue 접근 proxy
RX interrupt namerx_<QID>Receive queue interrupt
Instance 방향RX 또는 TXSoC integration에서 결정

두 cell과 RX interrupt 이름이 같은 queue ID를 중심으로 연결됩니다.

K2G controller와 PMMC client

29-50

K2G 예제는 queue proxy region `0x02a00000`과 queue state debug region `0x028c3400`을 매핑하고 RX queue 5와 57에 GIC SPI 324와 327을 연결합니다. PMMC client는 `rx`, `tx` 이름을 사용하며 RX는 queue ID 5와 proxy ID 2, TX는 queue ID 0과 proxy ID 0을 선택합니다.

msgmgr: msgmgr@2a00000 {
        compatible = "ti,k2g-message-manager";
        #mbox-cells = <2>;
        reg-names = "queue_proxy_region", "queue_state_debug_region";
        reg = <0x02a00000 0x400000>, <0x028c3400 0x400>;
        interrupt-names = "rx_005", "rx_057";
        interrupts = <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
                     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
};

pmmc: pmmc {
        [...]
        mbox-names = "rx", "tx";
        # RX queue ID is 5, proxy ID is 2
        # TX queue ID is 0, proxy ID is 0
        mboxes= <&msgmgr 5 2>,
                <&msgmgr 0 0>;
        [...]
};