LoginSignup
0
2

More than 5 years have passed since last update.

デバイスツリー研究会(第2回)

Posted at

第一回に引き続きデバイスツリーソースの中を見てみることにする

見るファイル名はaks-cdu.dtsである。ファイル名順に一番上にあったからである

/*
 * aks-cdu.dts - Device Tree file for AK signal CDU
 *
 * Copyright (C) 2012 AK signal Brno a.s.
 *               2012 Jiri Prchal <jiri.prchal@aksignal.cz>
 *
 * Licensed under GPLv2 or later.
 */

/dts-v1/;

#include "ge863-pro3.dtsi"

/ {
    chosen {
        bootargs = "console=ttyS0,115200 ubi.mtd=4 root=ubi0:rootfs rootfstype=ubifs";
    };

    clocks {
        slow_xtal {
            clock-frequency = <32768>;
        };
    };

    ahb {
        apb {
            usart0: serial@fffb0000 {
                status = "okay";
            };

            usart1: serial@fffb4000 {
                status = "okay";
                linux,rs485-enabled-at-boot-time;
                rs485-rts-delay = <0 0>;
                };

            usart2: serial@fffb8000 {
                status = "okay";
                linux,rs485-enabled-at-boot-time;
                rs485-rts-delay = <0 0>;
            };

            usart3: serial@fffd0000 {
                status = "okay";
                linux,rs485-enabled-at-boot-time;
                rs485-rts-delay = <0 0>;
            };

            macb0: ethernet@fffc4000 {
                phy-mode = "rmii";
                status = "okay";
            };

            usb1: gadget@fffa4000 {
                atmel,vbus-gpio = <&pioC 15 GPIO_ACTIVE_HIGH>;
                status = "okay";
            };
        };

        usb0: ohci@500000 {
            num-ports = <2>;
            status = "okay";
        };

        nand0: nand@40000000 {
            nand-bus-width = <8>;
            nand-ecc-mode = "soft";
            nand-on-flash-bbt;
            status = "okay";

            bootstrap@0 {
                label = "bootstrap";
                reg = <0x0 0x40000>;
            };

            uboot@40000 {
                label = "uboot";
                reg = <0x40000 0x80000>;
            };
            ubootenv@c0000 {
                label = "ubootenv";
                reg = <0xc0000 0x40000>;
            };
            kernel@100000 {
                label = "kernel";
                reg = <0x100000 0x400000>;
            };
            rootfs@500000 {
                label = "rootfs";
                reg = <0x500000 0x7b00000>;
            };
        };
    };

    leds {
        compatible = "gpio-leds";

        red {
            gpios = <&pioC 10 GPIO_ACTIVE_HIGH>;
            linux,default-trigger = "none";
        };

        green {
            gpios = <&pioA 5 GPIO_ACTIVE_LOW>;
            linux,default-trigger = "none";
            default-state = "on";
        };

        yellow {
            gpios = <&pioB 20 GPIO_ACTIVE_LOW>;
            linux,default-trigger = "none";
        };

        blue {
            gpios = <&pioB 21 GPIO_ACTIVE_LOW>;
            linux,default-trigger = "none";
        };
    };
};

考察してみる。最初のコメントはソースを書かれた方の個人名であろう。さらにメールアドレスも書かれている。メールしても良いのだろうか?何のためのメールアドレスなのか意味が分からない。

「#include‥‥」とある。これはC言語でも使わているインクルードであろう。なにやらge863-pro.dtsiというファイルをインクルードしているみたいだ。

さらに進むと文法はC言語とは違うようだ。main関数も無い。「{}」でくくっているのはC言語と同じ使い方なのであろう。

ソースから「ttyS0とかserial、USB」が読み取れたがおそらくそれらに関係するのであろう。詳しいことはまるでちんぷんかんぷんであった

内容を理解するためどうやって進めていこうか考えた結果カーネルソース内のドキュメントフォルダにdevicetreeの説明があるかもしれないので見てみることにする。

次回の第3回目はカーネルソース内にあるdevicetreeのドキュメントを探し出し見てみることにする

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2