← Documents Documentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt GitHub 원문 ↗

Linux 6.18.37 · Devicetree Bindings

FSL MPIC Message Registers

FSL MPIC message register block의 version, receive mask, alias와 interrupt binding입니다.

Source pathDocumentation/devicetree/bindings/powerpc/fsl/mpic-msgr.txt
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약과 해설

mpic-msgr.txt:1-63

Message register block별 address·interrupt 목록과 LSB 기준 receive mask, 0부터 시작하는 alias 규칙을 설명합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 * FSL MPIC Message Registers
2
3 This binding specifies what properties must be available in the device tree
4 representation of the message register blocks found in some FSL MPIC
5 implementations.
6
7 Required properties:
8
9 - compatible: Specifies the compatibility list for the message register
10 block. The type shall be <string-list> and the value shall be of the form
11 "fsl,mpic-v<version>-msgr", where <version> is the version number of
12 the MPIC containing the message registers.
13
14 - reg: Specifies the base physical address(s) and size(s) of the
15 message register block's addressable register space. The type shall be
16 <prop-encoded-array>.
17
18 - interrupts: Specifies a list of interrupt-specifiers which are available
19 for receiving interrupts. Interrupt-specifier consists of two cells: first
20 cell is interrupt-number and second cell is level-sense. The type shall be
21 <prop-encoded-array>.
22
23 Optional properties:
24
25 - mpic-msgr-receive-mask: Specifies what registers in the containing block
26 are allowed to receive interrupts. The value is a bit mask where a set
27 bit at bit 'n' indicates that message register 'n' can receive interrupts.
28 Note that "bit 'n'" is numbered from LSB for PPC hardware. The type shall
29 be <u32>. If not present, then all of the message registers in the block
30 are available.
31
32 Aliases:
33
34 An alias should be created for every message register block. They are not
35 required, though. However, a particular implementation of this binding
36 may require aliases to be present. Aliases are of the form
37 'mpic-msgr-block<n>', where <n> is an integer specifying the block's number.
38 Numbers shall start at 0.
39
40 Example:
41
42 aliases {
43 mpic-msgr-block0 = &mpic_msgr_block0;
44 mpic-msgr-block1 = &mpic_msgr_block1;
45 };
46
47 mpic_msgr_block0: mpic-msgr-block@41400 {
48 compatible = "fsl,mpic-v3.1-msgr";
49 reg = <0x41400 0x200>;
50 // Message registers 0 and 2 in this block can receive interrupts on
51 // sources 0xb0 and 0xb2, respectively.
52 interrupts = <0xb0 2 0xb2 2>;
53 mpic-msgr-receive-mask = <0x5>;
54 };
55
56 mpic_msgr_block1: mpic-msgr-block@42400 {
57 compatible = "fsl,mpic-v3.1-msgr";
58 reg = <0x42400 0x200>;
59 // Message registers 0 and 2 in this block can receive interrupts on
60 // sources 0xb4 and 0xb6, respectively.
61 interrupts = <0xb4 2 0xb6 2>;
62 mpic-msgr-receive-mask = <0x5>;
63 };
64

3. 한국어 전문 번역

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

FSL MPIC Message Register

1-6

이 binding은 일부 FSL MPIC 구현에 있는 message register block을 device tree로 표현할 때 제공해야 하는 property를 정의합니다.

필수 property

7-22

필수 string-list `compatible`은 `fsl,mpic-v<version>-msgr` 형식입니다. `<version>`은 message register를 포함한 MPIC의 version 번호입니다.

필수 encoded array `reg`는 message register block의 접근 가능한 register 공간에 대한 base physical address와 size를 지정합니다.

필수 encoded array `interrupts`는 수신에 사용할 수 있는 interrupt specifier 목록입니다. 각 specifier는 interrupt 번호와 level sense의 두 cell로 구성됩니다.

수신 mask

23-31

선택 u32 `mpic-msgr-receive-mask`는 block 안에서 interrupt를 수신할 수 있는 register를 지정합니다. Bit n이 1이면 message register n이 interrupt를 받을 수 있습니다. PPC hardware의 bit n은 LSB부터 번호를 매깁니다. 이 property가 없으면 block의 모든 message register를 사용할 수 있습니다.

Alias

32-39

각 message register block에 alias를 만드는 것이 좋지만 기본 binding에서는 필수가 아닙니다. 다만 특정 구현에서는 alias를 요구할 수 있습니다. Alias는 `mpic-msgr-block<n>` 형식이고 n은 0부터 시작하는 block 번호입니다.

두 message block 예제

40-63

예제는 block 0과 1의 alias를 만들고 각각 0x200-byte register window를 선언합니다. 두 block 모두 message register 0과 2만 수신하도록 mask 0x5를 사용하며 interrupt source는 각각 0xb0·0xb2와 0xb4·0xb6입니다.

aliases {
        mpic-msgr-block0 = &mpic_msgr_block0;
        mpic-msgr-block1 = &mpic_msgr_block1;
};

mpic_msgr_block0: mpic-msgr-block@41400 {
        compatible = "fsl,mpic-v3.1-msgr";
        reg = <0x41400 0x200>;
        // Message registers 0 and 2 in this block can receive interrupts on
        // sources 0xb0 and 0xb2, respectively.
        interrupts = <0xb0 2 0xb2 2>;
        mpic-msgr-receive-mask = <0x5>;
};

mpic_msgr_block1: mpic-msgr-block@42400 {
        compatible = "fsl,mpic-v3.1-msgr";
        reg = <0x42400 0x200>;
        // Message registers 0 and 2 in this block can receive interrupts on
        // sources 0xb4 and 0xb6, respectively.
        interrupts = <0xb4 2 0xb6 2>;
        mpic-msgr-receive-mask = <0x5>;
};