第7章 Linuxカーネル仕様

本章では、工場出荷状態のArmadillo-EVA 1500のLinuxカーネルの仕様について説明します。

7.1. Device Tree

工場出荷状態では、SPIフラッシュメモリのfdtパーティションに DTB(Device Tree Blob) が書き込まれています。DTB は DTS(Device Tree Source) を DTC(Device Tree Compiler) でバイナリ形式に変換したファイルです。

DTSは、Linux カーネルソースアーカイブ(linux-3.4-ae1500-[VERSION].tar.gz)に含まれる arch/arm/boot/dts/r8a7791-armadilloeva1500.dts です。

工場出荷状態の eMMC に書き込まれている Linuxカーネルイメージは、Device Tree を使用したマシンのセットアップのみをサポートしています。従来のマシンタイプIDおよびATAGを使用したマシンのセットアップを行うことはできませんので、オリジナルのブートローダーを作成する場合は注意してください。

7.2. デフォルトコンフィギュレーション

工場出荷状態の eMMC に書き込まれているLinuxカーネルイメージは、デフォルトコンフィギュレーションを適用してビルドされています。 Armadillo-EVA 1500用のデフォルトコンフィギュレーションが記載されているファイルは、Linux カーネルソースアーカイブ(linux-3.4-ae1500-[VERSION].tar.gz)に含まれる arch/arm/configs/armadilloeva1500_defconfig です。

armadilloeva1500_defconfigで有効になっている主要な設定を表7.1「Linuxカーネル主要設定」に示します。

表7.1 Linuxカーネル主要設定

コンフィグ説明
NO_HZTickless System (Dynamic Ticks)
HIGH_RES_TIMERSHigh Resolution Timer Support
SMPSymmetric Multi-Processing
PREEMPTPreemptible Kernel (Low-Latency Desktop)
AEABIUse the ARM EABI to compile the kernel
VFPVFP-format floating point maths
NEONAdvanced SIMD (NEON) Extension support
BINFMT_ELFKernel support for ELF binaries

7.3. デフォルト起動オプション

工場出荷状態のArmadillo-EVA 1500のLinuxカーネルの起動オプションについて説明します。デフォルト状態では、次のように設定されています。

表7.2 Linuxカーネルのデフォルト起動オプション

起動オプション説明
console=ttySC3,115200起動ログなどが出力されるイニシャルコンソールにttySC3(CON14)を、ボーレートに 115200bps を指定します。
mem=1024MLinuxカーネルが利用可能なメモリを1024MByteに制限します。[a]
noinitrdinitrd(initial ramdisk)を使用しません。
rootwaitルートファイルシステムがアクセス可能になるまで待機します。
root=/dev/mmcblk0p1ルートファイルシステムにeMMCの第1パーティションを指定します。

[a] Linuxカーネルからは1024MByteを越えるメモリにアクセスすることができません。そのため、必ず"mem=1024M"オプションを指定する必要があります。


7.4. Linuxドライバ一覧

Armadillo-EVA 1500で利用することができるデバイスドライバについて説明します。 各ドライバで利用しているソースコードの内主要なファイルのパスや、コンフィギュレーションに必要な情報、およびデバイスファイルなどについて記載します。

7.4.1. Armadillo-EVA 1500

Armadillo-EVA 1500 の初期化手順やハードウェアの構成情報などが定義されています。 新規にデバイスを追加する場合などに変更を加えます。

関連するソースコード

arch/arm/mach-shmobile/board-armadilloeva1500.c
arch/arm/mach-shmobile/setup-r8a7791.c
arch/arm/mach-shmobile/setup-rcar-gen2.c
arch/arm/mach-shmobile/smp-r8a7791.c
arch/arm/mach-shmobile/platsmp-apmu.c
arch/arm/mach-shmobile/platsmp-rst.c
arch/arm/mach-shmobile/pm-r8a7791.c
arch/arm/mach-shmobile/clock-r8a7791.c

カーネルコンフィギュレーション
    System Type  --->
        *** SH-Mobile System Type ***
    [*] R-Car M2 (R8A77910)                                          <CONFIG_ARCH_R8A7791>
        *** SH-Mobile Board Type ***
    [*] Armadillo-EVA 1500 board                            <CONFIG_MACH_ARMADILLOEVA1500>

7.4.2. ピンコントロール

Armadillo-EVA 1500 のプロセッサである R8A77430HA01BG のピンマルチプレクステーブルなどが定義されています。

関連するソースコード

drivers/pinctrl/sh-pfc/pfc-r8a7791.c
drivers/pinctrl/sh-pfc/sh-pfc.c
drivers/pinctrl/sh-pfc/core.c
drivers/pinctrl/sh-pfc/gpio.c
drivers/pinctrl/sh-pfc/pinctrl.c

カーネルコンフィギュレーション
    Device Drivers  --->
        Pin controllers  --->
        -*- SuperH PFC GPIO support                                   <CONFIG_GPIO_SH_PFC>

7.4.3. タイマー

Armadillo-EVA 1500では、カーネル内部のクロックソースに R8A77430HA01BG のCMT0(Compare Match Timer 0) を利用しています。

関連するソースコード

drivers/clocksource/sh_cmt.c

カーネルコンフィギュレーション
    System Type  --->
        *** SH-Mobile System Configuration ***
        Timer and clock configuration  --->
        [*] CMT timer driver                                          <CONFIG_SH_TIMER_CMT>

7.4.4. SPIフラッシュメモリ

Armadillo-EVA 1500では、SPIフラッシュメモリを制御するソフトウェアとして MTD(Memory Technology Device) を利用しています。 MTDのキャラクタデバイスまたはブロックデバイスを経由して、ユーザーランドからアクセスすることができます。

関連するソースコード

drivers/mtd/mtdcore.c
drivers/mtd/mtdchar.c
drivers/mtd/mtdblock.c
drivers/mtd/devices/m25p80.c

デバイスファイル
デバイスファイルデバイスタイプ対応するパーティション名
/dev/mtd0キャラクタipl
/dev/mtdblock0ブロック
/dev/mtd1キャラクタbootloader
/dev/mtdblock1ブロック
/dev/mtd2キャラクタfdt
/dev/mtdblock2ブロック
/dev/mtd3キャラクタfirmware
/dev/mtdblock3ブロック
カーネルコンフィギュレーション
    Device Drivers  --->
    <*> Memory Technology Device (MTD) support  --->                           <CONFIG_MTD>
        [*] Command line partition table parsing                 <CONFIG_MTD_CMDLINE_PARTS>
        [*] Read-only switching user interface support                   <CONFIG_MTD_RO_IF>
            *** User Modules And Translation Layers ***
        <*> Direct char device access to MTD devices                      <CONFIG_MTD_CHAR>
        -*- Common interface to block layer for MTD 'trnslation...     <CONFIG_MTD_BLKDEVS>
        <*> Caching block device access to MTD devices                   <CONFIG_MTD_BLOCK>
            Self-contained MTD device drivers  --->
            <*> Support most SPI Flash chips (AT26DF, M25P, W25X, ...)  <CONFIG_MTD_M25P80>

7.4.5. UART

Armadillo-EVA 1500のシリアルは、R8A77430HA01BG の SCIFB (Serial Communications Interface with FIFO B) を利用しています。

Armadillo-EVA 1500の標準状態で利用可能なポートは、SCIFB1(CON14) および SCIFB0(CON16) です。

フォーマット

データビット長: 7 or 8ビット
ストップビット長: 1 or 2ビット
パリティ: 偶数 or 奇数 or なし
フロー制御: CTS/RTS or XON/XOFF or なし
最大ボーレート: 1Mbps

関連するソースコード

drivers/tty/serial/serial_core.c
drivers/tty/serial/sh-sci.c

デバイスファイル
シリアルインターフェースデバイスファイル
SCIFB1/dev/ttySC3
SCIFB0/dev/ttySC2
カーネルコンフィギュレーション
    System Type  --->
        *** SH-Mobile Board Type ***
            [*] USE SCIFB-0                                <CONFIG_SERIAL_SH_SCI_USE_SCIFB0>
            [*] USE SCIFB-1                                <CONFIG_SERIAL_SH_SCI_USE_SCIFB1>
    Device Drivers  --->
        Character devices  --->
            Serial drivers  --->
                *** Non-8250 serial port support ***
                <*> SuperH SCI(F) serial port support                <CONFIG_SERIAL_SH_SCI>
                (18)   Maximum number of SCI(F) serial ports       <SERIAL_SH_SCI_NR_UARTS>
                [*]   Support for console on SuperH SCI(F)          <SERIAL_SH_SCI_CONSOLE>
                [ ]   DMA support                                       <SERIAL_SH_SCI_DMA>

7.4.6. Ethernet

Armadillo-EVA 1500のEthernet(LAN)は、R8A77430HA01BG の Ether(Ethernet MAC Controller)を利用しています。

機能

通信速度: 100Mbps(100BASE-TX), 10Mbps(10BASE-T)
通信モード: Full-Duplex(全二重), Half-Duplex(半二重)
Auto Negotiationサポート
Auto MDIXサポート

関連するソースコード

drivers/net/ethernet/renesas/sh_eth.c

ネットワークデバイス

eth0

カーネルコンフィギュレーション
    Device Drivers  --->
    [*] Network device support  --->                                    <CONFIG_NETDEVICES>
        -*-   Network core driver support                                 <CONFIG_NET_CORE>
        -*-     Generic Media Independent Interface device support             <CONFIG_MII>
        [*]   Ethernet driver support  --->                               <CONFIG_ETHERNET>
            <*>   Renesas SuperH Ethernet support                           <CONFIG_SH_ETH>
        -*-   PHY Device support and infrastructure  --->                   <CONFIG_PHYLIB>
            <*>   Drivers for SMSC PHYs                                   <CONFIG_SMSC_PHY>
            -*-   Support for bitbanged MDIO buses                    <CONFIG_MDIO_BITBANG>

7.4.7. MMCホスト

Armadillo-EVA 1500の MMC ホストは、R8A77430HA01BG の MMC(Multi Media Card Interface) を利用しています。Armadillo-EVA 1500 には、SAMSUNG製 eMMC(KLM8G1GEAC)が搭載されています。

機能

バス幅: 8bit
スピードモード: High Speed モード対応
活線挿抜非対応

デバイスファイル

/dev/mmcblk0

関連するソースコード

drivers/mmc/host/sh_mmcif.c
drivers/mmc/card/block.c
drivers/mmc/card/queue.c

カーネルコンフィギュレーション
    Device Drivers  --->
    <*> MMC/SD/SDIO card support  --->                                         <CONFIG_MMC>
              *** MMC/SD/SDIO Card Drivers ***
        <*>   MMC block device driver                                    <CONFIG_MMC_BLOCK>
        (8)     Number of minors per block device                 <CONFIG_MMC_BLOCK_MINORS>
        [*]     Use bounce buffer for simple hosts                <CONFIG_MMC_BLOCK_BOUNCE>
              *** MMC/SD/SDIO Host Controller Drivers ***
        <*>   SuperH Internal MMCIF support                           <CONFIG_MMC_SH_MMCIF>

7.4.8. SDホスト

Armadillo-EVA 1500 の SD ホストは、R8A77430HA01BG の SDHI(SD card Host Interface)を利用しています。

Armadillo-EVA 1500 の標準状態で利用可能なポートは、SDHI0(CON6) および SDHI1(CON4 または CON5) です。

機能

カードタイプ: SD / SDHC / SDXC / SDIO
バス幅: 1bit or 4bit
スピードモード: Default Speed, High Speed, Ultra High Speed Phase I(UHS-I)[14]
カードディテクトサポート
ライトプロテクトサポート

デバイスファイル

メモリカードの場合は、カードを認識した順番で/dev/mmcblkN (Nは'1'または'2')となります。
I/Oカードの場合は、ファンクションに応じたデバイスファイルとなります。

関連するソースコード

drivers/mmc/host/sh_mobile_sdhi.c
drivers/mmc/host/tmio_mmc_dma.c
drivers/mmc/host/tmio_mmc_pio.c

カーネルコンフィギュレーション
    Device Drivers  --->
    <*> MMC/SD/SDIO card support  --->                                         <CONFIG_MMC>
              *** MMC/SD/SDIO Host Controller Drivers ***
        <*>   SH-Mobile SDHI SD/SDIO controller support                   <CONFIG_MMC_SDHI>

7.4.9. USB 3.0ホスト

Armadillo-EVA 1500 の USB 3.0 ホストは、R8A77430HA01BG の USB3.0 Host Controller を利用しています。

Armadillo-EVA 1500の標準状態では、USB 3.0 Type-Aコネクタ(CON10) を USB 3.0 ホストとして利用することができます。カーネルをコンフィギュレーションし、USB 3.0 ホストドライバを無効化することで USB 2.0 ホストとして利用することもできます。

機能

Universal Serial Bus 3.0 Specification Revision 1.0 準拠
転送レート: USB 3.0 Super Speed(5Gbps), High-Speed(480Mbps), Full-Speed(12Mbps), Low-Speed(1.5Mbps)

デバイスファイル

メモリデバイスの場合は、デバイスを認識した順番で/dev/sdN (Nは'a'からの連番)となります。
I/Oデバイスの場合は、ファンクションに応じたデバイスファイルとなります。

関連するソースコード

drivers/usb/host/xhci-rcar.c
drivers/usb/host/xhci.c
drivers/usb/host/xhci-mem.c
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci-hub.c
drivers/usb/host/xhci-dbg.c
drivers/usb/host/xhci-pci.c

ファームウェア

firmware/UU3DRD1FW_2005L.dlmem

カーネルコンフィギュレーション
    Device Drivers  --->
    Generic Driver Options  --->
        <*> Userspace firmware loading support                           <CONFIG_FW_LOADER>
        [*]   Include in-kernel firmware blobs in kernel binary <CONFIG_FIRMWARE_IN_KERNEL>
        (UU3DRD1FW_2005L.dlmem) External firmware blobs to build into the kernel binary
                                                                    <CONFIG_EXTRA_FIRMWARE>
        (firmware) Firmware blobs root directory                <CONFIG_EXTRA_FIRMWARE_DIR>
    [*] USB support  --->                                              <CONFIG_USB_SUPPORT>
        <*>   Support for Host-side USB                                        <CONFIG_USB>
                *** Miscellaneous USB options ***
        [*]     USB device filesystem                                 <CONFIG_USB_DEVICEFS>
        [*]     USB device class-devices                          <CONFIG_USB_DEVICE_CLASS>
              *** USB Host Controller Drivers ***
        <*>   xHCI HCD (USB 3.0) support (EXPERIMENTAL)               <CONFIG_USB_XHCI_HCD>

7.4.10. USB 2.0ホスト

Armadillo-EVA 1500 の USB 2.0 ホストは、R8A77430HA01BG の USB2.0 Host (EHCI/OHCI) を利用しています。

Armadillo-EVA 1500の標準状態では、USB Type-Aコネクタ(CON8) を USB 2.0 ホストとして利用することができます。カーネルをコンフィギュレーションし、USB 2.0 ファンクションドライバを有効化することで USB Type-Bコネクタ(CON9)を USB 2.0 ファンクションとして利用することもできます。

機能

Universal Serial Bus Specification Revision 2.0 準拠
Open Host Controller Interface (OHCI) Specification for USB Rev 1.0a 準拠
Enhanced Host Controller Interface (EHCI) Specification for USB Rev 1.0 準拠
転送レート: USB 2.0 High-Speed(480Mbps), Full-Speed(12Mbps), Low-Speed(1.5Mbps)

デバイスファイル

メモリデバイスの場合は、デバイスを認識した順番で/dev/sdN (Nは'a'からの連番)となります。
I/Oデバイスの場合は、ファンクションに応じたデバイスファイルとなります。

関連するソースコード

drivers/usb/host/ehci-rcar.c
drivers/usb/host/ohci-rcar.c
drivers/usb/host/ehci-hcd.c
drivers/usb/host/ohci-hcd.c

カーネルコンフィギュレーション
    Device Drivers  --->
    [*] USB support  --->                                              <CONFIG_USB_SUPPORT>
        <*>   Support for Host-side USB                                        <CONFIG_USB>
                *** Miscellaneous USB options ***
        [*]     USB device filesystem                                 <CONFIG_USB_DEVICEFS>
        [*]     USB device class-devices                          <CONFIG_USB_DEVICE_CLASS>
              *** USB Host Controller Drivers ***
        <*>   EHCI HCD (USB 2.0) support                              <CONFIG_USB_EHCI_HCD>
        [*]     Root Hub Transaction Translators              <CONFIG_USB_EHCI_ROOT_HUB_TT>
        [*]     Improved Transaction Translator scheduling    <CONFIG_USB_EHCI_TT_NEWSCHED>
        <*>   OHCI HCD support                                        <CONFIG_USB_OHCI_HCD>

7.4.11. USB ファンクション

Armadillo-EVA 1500 の USB ファンクションは、R8A77430HA01BG の HS-USB(USB High-Speed Module)および USB-DMAC(USB High-Speed DMAC)を利用しています。

Armadillo-EVA 1500の標準状態では、USBファンクションを利用することができません。USBファンクションを利用するには、カーネルをコンフィギュレーションし、USB 2.0 ファンクションドライバの有効化[15]およびガジェットドライバの選択をおこないます。

Armadillo-EVA 1500とホスト機器を接続する場合は、USB Type-Bコネクタ(CON9) に USBケーブルを接続して利用します。

Linuxカーネルに用意されている代表的なガジェットドライバを次に示します。

表7.3 代表的なガジェットドライバ

ガジェット機能
Ethernet Gadget接続されるとホスト機器間でネットワーク通信させることができます
Serial Gadget接続されるとホスト機器間でシリアル通信させることができます

関連するソースコード

drivers/usb/gadget/r8a66597-udc.c

カーネルコンフィギュレーション
    Device Drivers  --->
    [*] USB support  --->                                              <CONFIG_USB_SUPPORT>
              *** USB Miscellaneous drivers ***
        <*>   USB Gadget Support  --->                                  <CONFIG_USB_GADGET>
            <*>   USB Peripheral Controller (Renesas R8A66597 USB Peripheral Controller)  --->
                (X) Renesas R8A66597 USB Peripheral Controller        <CONFIG_USB_R8A66597>
            [*]       on-chip USBHS type with extended bulk endpoints support
                                                   <CONFIG_USB_R8A66597_TYPE_BULK_PIPES_12>
            <*>   USB Gadget Drivers (Ethernet Gadget (with CDC Ethernet support)
                (X) Ethernet Gadget (with CDC Ethernet support)            <CONFIG_USB_ETH>
                ( ) Serial Gadget (with CDC ACM and CDC OBEX support) <CONFIG_USB_G_SERIAL>
                    :
              *** OTG and related infrastructure ***
        <*>   GPIO based peripheral-only VBUS sensing 'transceiver'  <CONFIG_USB_GPIO_VBUS>

7.4.12. デジタル HD 出力

Armadillo-EVA 1500 のデジタル HD 出力は、 R8A77430HA01BG の DU1(Display Unit 1) を利用しています。ディスプレイへの画像出力をサポートしています。HDMI トランスミッターには、Analog Devices 製 ADV7511W が採用されています。ADV7511W は I2C-GPIO1(I2C ノード: 8-0039) に接続されています。音声出力およびCEC(Consumer Electronics Control)は非サポートです。

Linuxでは、フレームバッファおよび DRM(Direct Rendering Manager) アクセスをサポートしています。

機能

最大解像度[16]: 1920 x 1080 ピクセル
カラーフォーマット[17]: RGB565, ARGB1555, XRGB1555, XRGB8888, ARGB8888, YUYV, UYUV, NV12, NV16, NV21
ダブルバッファ, トリプルバッファサポート

デバイスファイル

フレームバッファデバイス: /dev/fb0
DRMデバイス: /dev/dri/card0

関連するソースコード

drivers/gpu/drm/rcar-du/
drivers/gpu/drm/i2c/adv7511_core.c

カーネルコンフィギュレーション
    Device Drivers  --->
        Graphics support  --->
            <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->
                                                                            <CONFIG_DRM>
            <*> ADV7511 encoder                                     <CONFIG_DRM_ADV7511>
            [ ]   ADV7511 DVI output mode                <CONFIG_DRM_ADV7511_DVI_OUTPUT>
            [*] Enable FBDev CRTC select                         <CONFIG_DRM_FBDEV_CRTC>
            (1)   FBDev CRTC number                          <CONFIG_DRM_FBDEV_CRTC_NUM>
            <*> DRM Support for R-Car Display Unit                  <CONFIG_DRM_RCAR_DU>
            [ ]   R-Car DU LCD Support                             <CONFIG_DRM_RCAR_LCD>

7.4.13. コンポジットビデオ入力

Armadillo-EVA 1500 のコンポジットビデオ入力は、 R8A77430HA01BG の VIN2(Video Input Module 2) を利用しています。ビデオデコーダには Analog Devices 製 ADV7180 が採用されています。ADV7180 は、I2C-GPIO1(I2C ノード: 8-0020) に接続されています。

Linuxでは、V4L2(Video for Linux Two) アクセスをサポートしています。

機能

インターフェース: ITU-R BT.656
VIN入力フォーマット: UYVY
VIN出力フォーマット: YUYV

デバイスファイル

/dev/video0[18]

関連するソースコード

drivers/media/video/vin.c
drivers/media/video/adv7180.c
drivers/media/video/v4l2-dev.c
drivers/media/video/v4l2-ioctl.c
drivers/media/video/v4l2-device.c
drivers/media/video/v4l2-fh.c
drivers/media/video/v4l2-event.c
drivers/media/video/v4l2-ctrls.c
drivers/media/video/v4l2-subdev.c
drivers/media/video/v4l2-int-device.c

カーネルコンフィギュレーション
    Device Drivers  --->
        <*> Multimedia support  --->                              <CONFIG_MEDIA_SUPPORT>
                  *** Multimedia core support ***
            <*>   Video For Linux                                     <CONFIG_VIDEO_DEV>
                  *** Multimedia drivers ***
            [*]   Video capture adapters  --->            <CONFIG_VIDEO_CAPTURE_DRIVERS>
                      Encoders, decoders, sensors and other helper chips  --->
                              *** Video decoders ***
                          <*> Analog Devices ADV7180 decoder      <CONFIG_VIDEO_ADV7180>
                [*]   V4L platform devices  --->           <CONFIG_V4L_PLATFORM_DRIVERS>
                    <*>   SoC camera support                         <CONFIG_SOC_CAMERA>
                    <*>   VIN Unit Interface driver                   <CONFIG_VIDEO_VIN>

7.4.14. アナログオーディオ

Armadillo-EVA 1500のアナログオーディオは、R8A77430HA01BG の SSIU(Serial Sound Interface Unit)、ADG(Audio Clock Generator) および SCU(Sampling Rate Converter Unit)を利用しています。オーディオコーデックには、Cirrus Logic製 CS42L52 が採用されています。WM8978は I2C-GPIO1(I2Cノード: 8-004a) に接続されています。

機能

サンプリング周波数: 8000, 16000, 32000, 48000, 96000
チャンネル数: 1 or 2
フォーマット: Signed/Unsigned 16/18/20/24 bit, Little-endian
再生(Playback), 録音(Capture)サポート
ミキサーサポート

オーディオデバイス

hw:0

関連するソースコード

sound/soc/sh/armadilloeva1500.c
sound/soc/sh/scu_pcm.c
sound/soc/sh/scu_dai.c
sound/soc/codecs/cs42l52.c

カーネルコンフィギュレーション
    Device Drivers  --->
        <*> Sound card support  --->                                         <CONFIG_SOUND>
            <*>   Advanced Linux Sound Architecture  --->                      <CONFIG_SND>
                [*]   Support old ALSA API                     <CONFIG_SND_SUPPORT_OLD_API>
                <*>   ALSA for SoC audio support  --->                     <CONFIG_SND_SOC>
                          SoC Audio support for SuperH  --->
                        <*> SCU sound support on Armadillo-EVA 1500
                                                          <CONFIG_SND_SCU_ARMADILLOEVA1500>
                        -*-   Armadillo-EVA 1500 CS42L52 sound support
                                                      <CONFIG_SND_ARMADILLOEVA1500_CS42L52>

7.4.15. SATA

Armadillo-EVA 1500 の SATA は、R8A77430HA01BG の Serial-ATA を利用しています。

機能

Serial ATA Revision 3.1 準拠
転送レート: 3.0Gbps(Gen2), 1.5Gbps(Gen1)
接続形式: 1チャンネル, Master
NCQ(Native Command Queuing)非サポート
活線挿抜非サポート

デバイスファイル

HDDやSSDなどの場合は、デバイスを認識した順番で/dev/sdN (Nは'a'からの連番)となります。
CDやDVDなどの場合は、デバイスを認識した順番で/dev/srN (Nは'0'からの連番)となります。

関連するソースコード

drivers/ata/sata_rcar.c
drivers/ata/libata-sff.c
drivers/scsi/sd.c
drivers/scsi/sd_dif.c
drivers/scsi/sr.c
drivers/scsi/sr_ioctl.c
drivers/scsi/sr_vendor.c

カーネルコンフィギュレーション
    Device Drivers  --->
        SCSI device support  --->
        <*> SCSI disk support                                           <CONFIG_BLK_DEV_SD>
        <*> SCSI CDROM support                                          <CONFIG_BLK_DEV_SR>
    <*> Serial ATA and Parallel ATA drivers  --->                              <CONFIG_ATA>
               *** Controllers with non-SFF native interface ***
        [*]   ATA SFF support                                              <CONFIG_ATA_SFF>
                *** SFF controllers with custom DMA interface ***
        [*]     ATA BMDMA support                                        <CONFIG_ATA_BMDMA>
                  *** SATA SFF controllers with BMDMA ***
        <*>       Renesas R-Car SATA support                             <CONFIG_SATA_RCAR>

7.4.16. PCI Express

Armadillo-EVA 1500 の PCI Express は、R8A77430HA01BG の PCIEC を利用しています。

機能

PCI Express Base Specification Revision 2.0 (December 20, 2006) サブセットに対応
リンク幅: x1
転送レート: 2.5GT/s, 5.0GT/s
割り込み通知方式: INTx, MSI, MSI-X

関連するソースコード

drivers/pci/host/pci-rcar.c

カーネルコンフィギュレーション
    Bus support  --->
        [*] PCI support                                                        <CONFIG_PCI>
        [*] Message Signaled Interrupts (MSI and MSI-X)                    <CONFIG_PCI_MSI>
            PCI host controller drivers  --->
                [*] Renesas R-Car PCIe controller                         <CONFIG_PCI_RCAR>

7.4.17. 温度センサー

Armadillo-EVA 1500 の温度センサー は、R8A77430HA01BG の THS/TSC(Thermal Sensor) を利用しています。

温度センサーの測定温度が 80°C 以上になった場合、警告 LED(LED9) が点灯します。80°C 未満になった場合は警告 LED が消灯します。また、90°C 以上になった場合は Linux カーネルが /sbin/poweroffコマンドを実行し、システムを停止します。

機能

分解能: 5°C
測定範囲: -40°C 〜 125°C

sysfs Thermalクラスディレクトリ

/sys/class/thermal/thermal_zone0

関連するソースコード

drivers/thermal/rcar_thermal.c
drivers/thermal/thermal_sys.c

カーネルコンフィギュレーション
    Device Drivers  --->
        <*> Generic Thermal sysfs driver  --->                             <CONFIG_THERMAL>
            --- Generic Thermal sysfs driver
            <*>   Renesas R-Car thermal driver                        <CONFIG_RCAR_THERMAL>

7.4.18. リアルタイムクロック

Armadillo-EVA 1500には、セイコーインスツル(SII)製 S-35390Aが搭載されています。 S-35390A は、I2C-GPIO0 (I2Cノード: 7-0030) に接続されています。

機能

アラーム割り込みサポート

デバイスファイル

/dev/rtc0

関連するソースコード

drivers/rtc/rtc-s35390a.c
drivers/rtc/class.c
drivers/rtc/rtc-dev.c
drivers/rtc/rtc-sysfs.c

カーネルコンフィギュレーション
    Device Drivers  --->
    [*] Real Time Clock  --->                                            <CONFIG_RTC_CLASS>
        [*]   Set system time from RTC on startup and resume           <CONFIG_RTC_HCTOSYS>
        (rtc0)  RTC used to set the system time                 <CONFIG_RTC_HCTOSYS_DEVICE>
              *** RTC interfaces ***
        [*]   /sys/class/rtc/rtcN (sysfs)                           <CONFIG_RTC_INTF_SYSFS>
        [*]   /proc/driver/rtc (procfs for rtc0)                     <CONFIG_RTC_INTF_PROC>
        [*]   /dev/rtcN (character devices)                           <CONFIG_RTC_INTF_DEV>
              *** I2C RTC drivers ***
        <*>   Seiko Instruments S-35390A                           <CONFIG_RTC_DRV_S35390A>

7.4.19. LED

Armadillo-EVA 1500に搭載されている制御可能なLEDは、GPIOが接続されています。 Linuxでは、GPIO接続用LEDドライバ(leds-gpio)で制御することができます。

Armadillo-EVA 1500には、LED4〜LED7 が実装されています。

sysfs LEDクラスディレクトリ

/sys/class/leds/LED4
/sys/class/leds/LED5
/sys/class/leds/LED6
/sys/class/leds/LED7

関連するソースコード

drivers/leds/leds-gpio.c
drivers/leds/led-class.c
drivers/leds/led-triggers.c
drivers/leds/ledtrig-timer.c

カーネルコンフィギュレーション
    Device Drivers  --->
    [*] LED Support  --->                                                 <CONFIG_NEW_LEDS>
        <*>   LED Class Support                                         <CONFIG_LEDS_CLASS>
              *** LED drivers ***
        <*>   LED Support for GPIO connected LEDs                        <CONFIG_LEDS_GPIO>
        [*]   LED Trigger support                                    <CONFIG_LEDS_TRIGGERS>
              *** LED Triggers ***
        <*>   LED Timer Trigger                                 <CONFIG_LEDS_TRIGGER_TIMER>

7.4.20. ユーザースイッチ

Armadillo-EVA 1500に搭載されているユーザースイッチは、GPIOが接続されています。 Linuxでは、GPIO接続用キーボードドライバ(gpio_keys)で制御されます。

ユーザースイッチにはそれぞれにキーコードが割り当てられています。

表7.4 キーコード

ユーザースイッチキーコードイベントコード
SW3KEY_34
SW4KEY_45
SW5KEY_56
SW6KEY_67

デバイスファイル

/dev/input/event2[19]

関連するソースコード

drivers/input/keyboard/gpio_keys.c
drivers/input/input.c
drivers/input/evdev.c

カーネルコンフィギュレーション
    Device Drivers  --->
        Input device support  --->
            -*- Generic input layer (needed for keyboard, mouse, ...)        <CONFIG_INPUT>
            <*>   Event interface                                      <CONFIG_INPUT_EVDEV>
                  *** Input Device Drivers ***
            [*]   Keyboards  --->                                   <CONFIG_INPUT_KEYBOARD>
                <*>   GPIO Buttons                                   <CONFIG_KEYBOARD_GPIO>

7.4.21. I2C

Armadillo-EVA 1500 の I2C インターフェースは、GPIO を利用した I2C バスドライバ(i2c-gpio)を利用しています。

Armadillo-EVA 1500 で利用している I2C バスと、接続される I2C デバイスを次に示します。

表7.5 I2Cデバイス

I2CバスI2Cデバイス
アドレスデバイス名
I2C-GPIO00x30 (0x31〜0x37も予約済み), 0x5aS-35390Aリアルタイムクロック, DA9063パワーマネジメントIC
I2C-GPIO10x4aCS42L52オーディオコーデック
I2C-GPIO20x55ST1232 タッチスクリーンコントローラ[a]

[a] LCDインターフェース(CON23)に Armadillo-EVA 1500 LCD拡張ボードを接続した場合


Armadillo-EVA 1500では標準状態では、CONFIG_I2C_CHARDEVが有効となっているためユーザードライバでI2Cデバイスを制御することができます。 ユーザードライバを利用する場合は、LinuxカーネルでI2Cデバイスに対応するデバイスドライバを無効にする必要があります。

デバイスファイル

/dev/i2c-7 (I2C-GPIO0)
/dev/i2c-8 (I2C-GPIO1)
/dev/i2c-9 (I2C-GPIO2)

関連するソースコード

drivers/i2c/busses/i2c-gpio.c
drivers/i2c/i2c-core.c
drivers/i2c/i2c-dev.c

カーネルコンフィギュレーション
    Device Drivers  --->
    <*> I2C support  --->                                                      <CONFIG_I2C>
        <*>   I2C device interface                                     <CONFIG_I2C_CHARDEV>
        [*]   Autoselect pertinent helper modules                  <CONFIG_I2C_HELPER_AUTO>
              I2C Hardware Bus support  --->
            <*> GPIO-based bitbanging I2C                                 <CONFIG_I2C_GPIO>

7.4.22. LCD

Armadillo-EVA 1500 の LCDインターフェースは、R8A77430HA01BG の DU1(Display Unit 1)を利用しています。Linuxでは、フレームバッファおよび DRM(Direct Rendering Manager) アクセスをサポートしています。

Armadillo-EVA 1500 LCD拡張ボードでは、バックライトの輝度調整および、タッチスクリーンに対応しています。Linuxでは、それぞれPWM制御用バックライトドライバ(pwm_bl)、ST1232タッチスクリーンドライバを利用しています。

Armadillo-EVA 1500 の標準状態では、LCD 利用することができません。LCD を利用するには、カーネルをコンフィギュレーションし、LCDの有効化[20]をおこないます。

機能

対応可能LCD: TFTカラー液晶 (最大解像度[21]: 1920 x 1080 ピクセル)
カラーフォーマット[22]: RGB565, ARGB1555, XRGB1555, XRGB8888, ARGB8888, YUYV, UYUV, NV12, NV16, NV21
ダブルバッファ, トリプルバッファサポート
256段階バックライト輝度調整
マルチタッチサポート (ST1232)

デバイスファイル

フレームバッファデバイス: /dev/fb0
DRMデバイス: /dev/dri/card0
タッチスクリーンデバイス: /dev/input/event0[23]
バックライト輝度調整用sysfsファイル: /sys/class/backlight/pwm-backlight/brightness

関連するソースコード

drivers/gpu/drm/rcar-du/
drivers/video/backlight/backlight.c
drivers/video/backlight/pwm_bl.c
drivers/misc/rcar-pwm.c
drivers/input/touchscreen/st1232.c

カーネルコンフィギュレーション
    Device Drivers  --->
        Misc devices  --->
            <*> R-Car PWM driver                                          <CONFIG_RCAR_PWM>
        Input device support  --->
            -*- Generic input layer (needed for keyboard, mouse, ...)        <CONFIG_INPUT>
            <*>   Event interface                                      <CONFIG_INPUT_EVDEV>
                  *** Input Device Drivers ***
            [*]   Touchscreens  --->                             <CONFIG_INPUT_TOUCHSCREEN>
                <*>   Sitronix ST1232 touchscreen controllers   <CONFIG_TOUCHSCREEN_ST1232>
                [ ]     Enable single touch event for ST1232
                                                    <CONFIG_TOUCHSCREEN_ST1232_SINGLETOUCH>
        Graphics support  --->
            <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->
                                                                               <CONFIG_DRM>
            [*] Enable FBDev CRTC select                            <CONFIG_DRM_FBDEV_CRTC>
            (1)   FBDev CRTC number                             <CONFIG_DRM_FBDEV_CRTC_NUM>
            <*> DRM Support for R-Car Display Unit                     <CONFIG_DRM_RCAR_DU>
            [*]   R-Car DU LCD Support                                <CONFIG_DRM_RCAR_LCD>
            (800)   Horizontal screen resolution
            (480)   Vertical screen resolution
            [*] Backlight & LCD device support  --->         <CONFIG_BACKLIGHT_LCD_SUPPORT>
                <*>   Lowlevel Backlight controls           <CONFIG_BACKLIGHT_CLASS_DEVICE>
                <*>     Generic PWM based Backlight Driver           <CONFIG_BACKLIGHT_PWM>

7.4.23. LVDS

Armadillo-EVA 1500 の LVDSは、 R8A77430HA01BG の DU0(Display Unit 0) を利用しています。

Linuxでは、フレームバッファおよび DRM(Direct Rendering Manager) アクセスをサポートしています。デフォルトの解像度は、1024 x 768 ピクセルです。

機能

出力信号: TIA/EIA-644 標準(差動ペアがデータ4組、クロック1組)
最大ドットクロック: 148.5 MHz

デバイスファイル

フレームバッファデバイス: /dev/fb0
DRMデバイス: /dev/dri/card0

関連するソースコード

drivers/gpu/drm/rcar-du/

カーネルコンフィギュレーション
    Device Drivers  --->
        Graphics support  --->
            <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)  --->
                                                                            <CONFIG_DRM>
            [*] Enable FBDev CRTC select                         <CONFIG_DRM_FBDEV_CRTC>
            (1)   FBDev CRTC number                          <CONFIG_DRM_FBDEV_CRTC_NUM>
            <*> DRM Support for R-Car Display Unit                  <CONFIG_DRM_RCAR_DU>
            [*]   R-Car DU LVDS Encoder Support                   <CONFIG_DRM_RCAR_LVDS>


[14] SDHI0 は SDR50 および SDR104(最大SDクロック: 156 MHz) に対応。SDHI1 は SDR50(最大SDクロック: 97.5 MHz) に対応。

[15] USB 2.0 ファンクションドライバを有効化すると、USB 2.0ホストは利用できなくなくなります。

[16] ドットクロックが 100MHz を超えるビデオモードには対応できません

[17] YUV フォーマットは DRM アクセスのみ対応しています

[18] USBカメラなどを接続してV4L2デバイスを追加している場合は、番号が異なる可能性があります

[19] USBデバイスなどを接続してインプットデバイスを追加している場合は、番号が異なる可能性があります

[20] LCDを有効化すると、デジタル HD 出力は利用できなくなくなります。

[21] ドットクロックが 100MHz を超えるビデオモードには対応できません

[22] YUV フォーマットは DRM アクセスのみ対応しています

[23] USBデバイスなどを接続してインプットデバイスを追加している場合は、番号が異なる可能性があります