R-Car/Boards/Kingfisher

From eLinux.org
< R-Car
Revision as of 19:50, 12 March 2018 by Ygohda (talk | contribs)
Jump to: navigation, search

Introduction

This is the official Wiki for Kingfisher Infotainment Board.

Hardware

This section contains information about Kingfisher Board hardware.

Board Layout

Kfisher top specs.png

Kfisher bot specs.png

Hardware Features

  • Ethernet AVB phy
    • KSZ9031 phy
  • MOST interface
    • Support both 3-pin and 6-pin MLB interface
    • Pinout compatible with Microchip evaluation boards
  • LVDS camera interface
    • MAX9286 or TI960 deserializers
    • MIPI CSI2 bus
    • 5V, 9V or 12V selectable supply voltage for camera with current limiting
  • High quality 24-bit audio codec PCM3168A
    • 8 input channels (4 stereo jacks for microphone connection)
    • 6 line out channels (RCA connectors)
    • 6 HP outputs (3 stereo jack connectors for direct headphones connection)
    • 44100/48000 Hz sampling frequency
  • Two USB 3.0 ports
  • USB OTG port
  • SD card slot
    • SD card slot(CN47) supports only 3.3 signal voltage(= Default/High speed class only).
      • If you want to use other cards please use the slot(CN6) on the Starter Kit board.
  • Si4689 base AM/FM/DAB radio
    • Digital audio interface to R-Car M2 CPU
    • Additional flash storage for fast radio boot
    • Supply for active DAB antennas with current limit (5 or 12 V)
  • GPS/GLONASS receiver
    • Serial and i2c interface to R-Car
  • 9-axis sensor:
    • 3D digital linear acceleration sensor
    • 3D digital angular rate sensor
    • 3D digital magnetic sensor
  • WiFi/BT module Texas Instruments WL1837
  • HDMI
    • This board equipped with a HDMI transmitter (ADV7513BSWZ) which support HDMI1.4a.
    • The maximum resolution is 1920x1080i and it connected Digital output port (RGB888) on R-Car Starter Kit.
  • Power supply: 12V, 9 Amps
    • The main power supply domain must be connected to an external AC adapter. The voltage is +12V DC.
    • DO NOT USE R-Car Starter kit AC adapter to connect this board or this board AC adapter to connect R-Car Starter kit. If connect wrong AC adapter then it has serious damage to the board.

Where to buy

Kingfisher board and GMSL Camera board(*) can be ordered from following distributors:

Click to buy Kingfisher board from SHIMAFUJI Electric - World Wide

(*) GMSL Camera board info: http://www.shimafuji.co.jp/DL/EN/InfotainmentCarrierBoard/#GMSL01

Official board documentation

How to build

Build image

  1. Create a directory and switch to it
    Warning! Yocto builds require a lot of disk space (up to 100 GB). Make sure you have got enough before starting the build.
    mkdir build || exit
    cd build
    WORK=`pwd`
    echo $WORK
    
  2. Clone basic Yocto layers:
    cd $WORK
    git clone git://git.yoctoproject.org/poky
    git clone git://git.linaro.org/openembedded/meta-linaro.git
    git clone git://git.openembedded.org/meta-openembedded
    git clone git://github.com/renesas-rcar/meta-renesas
    git clone git://github.com/CogentEmbedded/meta-rcar.git
    
  3. Switch to proper branches/commits
    1. For BSP v2.23.1
      cd $WORK/poky
      git checkout -b tmp yocto-2.1.3
      cd $WORK/meta-openembedded
      git checkout -b tmp 55c8a76da5dc099a7bc3838495c672140cedb78e
      cd $WORK/meta-linaro
      git checkout -b tmp 2f51d38048599d9878f149d6d15539fb97603f8f
      cd $WORK/meta-renesas
      git checkout -b tmp 7acbf5e2f99c59478adbc73c6a40d314589a3009
      cd $WORK/meta-rcar
      git checkout -b v2.23.1 remotes/origin/v2.23.1
      
    2. For Yocto v3.4.0
      cd $WORK/poky
      git checkout -b tmp 16e22f3e37788afb83044f5089d24187d70094bd
      cd $WORK/meta-openembedded
      git checkout -b tmp 6e3fc5b8d904d06e3aa77e9ec9968ab37a798188
      cd $WORK/meta-linaro
      git checkout -b tmp 30f0f5e158ba29c4b1ccfdd66f0368726e4179e0
      cd $WORK/meta-renesas
      git checkout -b tmp 0f4c656f1e8304ce13f43b07907fac5d9b281e4f
      cd $WORK/meta-rcar
      git checkout -b v3.4.0 remotes/origin/v3.4.0
      

    Another versions are not tested for compatibility. Legacy BSP instruction can be found here R-Car Kingfisher legacy

  4. This step is only for Yocto v2.23.1. Apply Linaro-GCC patch file:
    cd $WORK/meta-renesas
    export PATCH_DIR=meta-rcar-gen3/docs/sample/patch/patch-for-linaro-gcc
    patch -p1 < ${PATCH_DIR}/0001-rcar-gen3-add-readme-for-building-with-Linaro-Gcc.patch
    unset PATCH_DIR
    
  5. Unzip downloaded proprietary driver modules to $WORK/proprietary folder.
    You should see the following files:
    1. For Yocto v2.23.1
      $ ls -1 $WORK/proprietary
      R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20170828.zip
      R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20170828.zip
      
    2. For Yocto v3.4.0
      $ ls -1 $WORK/proprietary/*.zip
      R-Car_Gen3_Series_Evaluation_Software_Package_for_Linux-20180130.zip
      R-Car_Gen3_Series_Evaluation_Software_Package_of_Linux_Drivers-20180130.zip
      
  6. Populate meta-renesas with proprietary software packages.
    export PKGS_DIR=$WORK/proprietary
    cd $WORK/meta-renesas
    sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
    unset PKGS_DIR
    
  7. Setup build environment
    cd $WORK
    source poky/oe-init-build-env
    
  8. Prepare default configuration files.
    1. For Yocto v2.23.1
      [m3ulcb]
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/m3ulcb/linaro-gcc/mmp/*.conf ./conf/
      [h3ulcb]
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/linaro-gcc/mmp/*.conf ./conf/
      
      cd $WORK/build
      cp conf/local-wayland.conf conf/local.conf
      
    2. For Yocto v3.4.0
      [m3ulcb]
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/m3ulcb/poky-gcc/mmp/*.conf ./conf/
      [h3ulcb]
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/poky-gcc/mmp/*.conf ./conf/
      
      cd $WORK/build
      cp conf/local-wayland.conf conf/local.conf
      
  9. Edit $WORK/build/conf/local.conf to enable/disable graphics and multimedia proprietary drivers support
  10. Edit local.conf with evaluation packages requirements:
    1. For Yocto v2.23.1 and later (to enable EVA_ prefix during packages install)
      DISTRO_FEATURES_append = " use_eva_pkg"
      
  11. Add layer meta-rcar
    bitbake-layers add-layer ../meta-rcar/meta-rcar-gen3-adas
    
  12. Start the build
    bitbake core-image-weston
    
  13. Building image can take up to a few hours depending on your host system performance.
    After the build has been completed successfully, you should see the output similar to:
    NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded.
    

    and the command prompt should return.

  14. Bitbake has generated all the necessary files in ./tmp/deploy/images directory.
    You can verify its content:
    $ ls -1 `find ./tmp/deploy/images/m3ulcb/ -maxdepth 1 -type l -print`
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.cpio.gz
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.ext4
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.manifest
    ./tmp/deploy/images/m3ulcb/core-image-weston-m3ulcb.tar.bz2
    ./tmp/deploy/images/m3ulcb/Image
    ./tmp/deploy/images/m3ulcb/Image-m3ulcb.bin
    ./tmp/deploy/images/m3ulcb/Image-r8a7796-m3ulcb-kf.dtb
    ./tmp/deploy/images/m3ulcb/modules-m3ulcb.tgz
    ./tmp/deploy/images/m3ulcb/u-boot.bin
    ./tmp/deploy/images/m3ulcb/u-boot-elf-m3ulcb.srec
    ./tmp/deploy/images/m3ulcb/u-boot-elf.srec
    ./tmp/deploy/images/m3ulcb/u-boot-m3ulcb.bin
    

    Image is a Kernel image, *.dtb is a blob file, core-image-weston-m3ulcb.tar.bz2 is the rootfs, modules-m3ulcb.tgz are kernel modules.

  15. You can now proceed with running Yocto images

After all these steps you can start working with boards and apps.

Build with MOST

MOST and GPS share the same R-CAR SoC pins and GPS is used by default.
In order to use MOST one need to perform h/w modifications on KF board:

move resistor from R661 -> R660
move resistor from R663 -> R662

And enable MOST in BSP by adding option to local.conf:

KF_ENABLE_MOST = 1

Build with SD3 (CN47)

SD3 and WIFI share the same R-CAR SoC resource and WIFI is used by default.
In order to use SD on CN47 instead WIFI add following option to local.conf:

KF_ENABLE_SD3 = 1

Build SDK

After building image run this command to build SDK

bitbake core-image-weston -c populate_sdk

After build success the SDK installation script must appears in ./tmp/deploy/sdk directory:

 tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-2.1.3.sh

To install SDK run this command and follow instructions on the screen:

./tmp/deploy/sdk/poky-glibc-x86_64-core-image-weston-aarch64-toolchain-2.1.3.sh

Build scripts examples

  1. Build preparation
    1. For Yocto v2.23.1
      #!/bin/sh
      
      mkdir build || exit
      cd build
      WORK=`pwd`
      echo $WORK
      
      git clone git://git.yoctoproject.org/poky
      git clone git://git.linaro.org/openembedded/meta-linaro.git
      git clone git://git.openembedded.org/meta-openembedded
      git clone git://github.com/renesas-rcar/meta-renesas.git
      git clone git://github.com/CogentEmbedded/meta-rcar.git
      
      cd $WORK/poky
      git checkout -b tmp yocto-2.1.3
      cd $WORK/meta-linaro
      git checkout -b tmp 2f51d38048599d9878f149d6d15539fb97603f8f
      cd $WORK/meta-openembedded
      git checkout -b tmp 55c8a76da5dc099a7bc3838495c672140cedb78e
      cd $WORK/meta-renesas
      git checkout -b tmp 7acbf5e2f99c59478adbc73c6a40d314589a3009
      cd $WORK/meta-rcar
      git checkout -b v2.23.1 remotes/origin/v2.23.1
      
      cd $WORK/meta-renesas
      export PATCH_DIR=meta-rcar-gen3/docs/sample/patch/patch-for-linaro-gcc
      patch -p1 < ${PATCH_DIR}/0001-rcar-gen3-add-readme-for-building-with-Linaro-Gcc.patch
      unset PATCH_DIR
      
      cd $WORK/
      PKGS_DIR=$WORK/../proprietary
      cd $WORK/meta-renesas
      #sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f $PKGS_DIR
      sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
      
    2. For Yocto v3.4
      #!/bin/sh
      
      mkdir build || exit
      cd build
      WORK=`pwd`
      echo $WORK
      
      git clone git://git.yoctoproject.org/poky
      git clone git://git.linaro.org/openembedded/meta-linaro.git
      git clone git://git.openembedded.org/meta-openembedded
      git clone git://github.com/renesas-rcar/meta-renesas
      git clone git://github.com/CogentEmbedded/meta-rcar.git
      
      cd $WORK/poky
      git checkout -b tmp 16e22f3e37788afb83044f5089d24187d70094bd
      cd $WORK/meta-linaro
      git checkout -b tmp 30f0f5e158ba29c4b1ccfdd66f0368726e4179e0
      cd $WORK/meta-openembedded
      git checkout -b tmp 6e3fc5b8d904d06e3aa77e9ec9968ab37a798188
      cd $WORK/meta-renesas
      git checkout -b tmp 0f4c656f1e8304ce13f43b07907fac5d9b281e4f
      cd $WORK/meta-rcar
      git checkout -b v3.4.0 remotes/origin/v3.4.0
      
      cd $WORK/
      PKGS_DIR=$WORK/../proprietary
      cd $WORK/meta-renesas
      #sh meta-rcar-gen3/docs/sample/copyscript/copy_proprietary_softwares.sh -f $PKGS_DIR
      sh meta-rcar-gen3/docs/sample/copyscript/copy_evaproprietary_softwares.sh -f $PKGS_DIR
      
  2. Building yocto
    1. For Yocto v2.23.1
      #!/bin/sh
      
      cd build
      WORK=`pwd`
      echo $WORK
      
      cd $WORK
      source poky/oe-init-build-env
      
      #cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/linaro-gcc/bsp/*.conf ./conf/.
      #cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/linaro-gcc/gfx-only/*.conf ./conf/.
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/linaro-gcc/mmp/*.conf ./conf/.
      
      cd $WORK/build
      cp conf/local-wayland.conf conf/local.conf
      echo "DISTRO_FEATURES_append = \" use_eva_pkg\"" >> $WORK/build/conf/local.conf
      # uncomment for ADAS HAD board only:
      #echo "MACHINE_FEATURES_append = \" h3ulcb-had\"" >> $WORK/build/conf/local.conf
      
      bitbake-layers add-layer ../meta-rcar/meta-rcar-gen3-adas
      
      bitbake core-image-weston
      bitbake core-image-weston -c populate_sdk
      
    1. For Yocto v3.4
      #!/bin/sh
      
      cd build
      WORK=`pwd`
      echo $WORK
      
      cd $WORK
      source poky/oe-init-build-env
      
      #cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/poky-gcc/bsp/*.conf ./conf/.
      #cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/poky-gcc/gfx-only/*.conf ./conf/.
      cp $WORK/meta-renesas/meta-rcar-gen3/docs/sample/conf/h3ulcb/poky-gcc/mmp/*.conf ./conf/.
      
      cd $WORK/build
      cp conf/local-wayland.conf conf/local.conf
      echo "DISTRO_FEATURES_append = \" use_eva_pkg\"" >> $WORK/build/conf/local.conf
      # uncomment for ADAS HAD board only:
      #echo "MACHINE_FEATURES_append = \" h3ulcb-had\"" >> $WORK/build/conf/local.conf
      
      bitbake-layers add-layer ../meta-rcar/meta-rcar-gen3-adas
      
      bitbake core-image-weston
      bitbake core-image-weston -c populate_sdk
      

How to update of Sample Loader and MiniMonitor

WiFi

To check wifi and scan available WAPs run:

 $ ifconfig wlan0 up
 $ iwlist wlan0 scan


How to update of Sample Loader and MiniMonitor

New version:

 Sample Loader: V3.02
 MiniMonitor: V3.02

Down load:

File:UpdateFile v302.zip

Why update?:

ComEx Mechanical Specification: Durability: 30 mating cycles.
This new version(V3.02) can update the firmware(*) while keeping Starter Kit(SK) and Kingfisher(KF) connected.
 (*)firmware: bootparam_sa0.srec, bl2-h3ulcb/m3ulcb.srec, cert_header_sa6.srec, bl31-h3ulcb/m3ulcb.srec, tee-h3ulcb/m3ulcb.srec, u-boot-elf.srec 


How to update:

  1. Power off the KF and remove SK from KF
  2. Turn off SW5
    Remove SK from KF
    
  3. Set SW of SK as follows:
  4. SW1:OFF
    SW6:OFF/OFF/OFF/OFF
    SW2:OFF/OFF/OFF/OFF
    
  5. Power on the SK (This means that you need to prepare a 5V AC-adapter for SK)
  6. Press SW8
    SCIF Download mode starts
    
  7. Send the following file from console(Ex: minicom):
  8. type "ctrl+A S" and select upload method "ascii", then choose file for uploading the following file.
    Case of M3SK:
    	BoardID_Writer_SCIF_64bit_ID=0x10(StarterKit-Pro_Rev1.0).mot
    Case of H3SK:
    	BoardID_Writer_SCIF_64bit_ID=0x58(StarterKit-Premier_Rev1.0OB).mot
    
    NOTE: Under Linux, if you got problem transferring this file, it may because of special character in its name.
    
    Solution is to open a new terminal then manually launch the transfer with the following command with double quote around filename (Ex: serial link on ttyUSB0 for M3SK):
    # /usr/bin/ascii-xfr -dsv "BoardID_Writer_SCIF_64bit_ID=0x10(StarterKit-Pro_Rev1.0).mot" > /dev/ttyUSB0
    

    You can confirm the following log (Ex: M3SK):

    +---------------------------------+
    |  Board ID Writer V01 2017.06.23 |
    +---------------------------------+
     Product Code : R-Car M3 ES1.0
    
     Now Board ID : Unknown Board Rev7 (0xFF)
     New Board ID : Starter Kit Rev0 (0x10)
     Wrote Board ID : Starter Kit Rev0 (0x10)
    
    Writer Program End.
    
  9. Power off the SK
  10. Press SW8
    
  11. Set SW as follows:
  12. M3SK = SW6:OFF/ON/OFF/OFF
    H3SK = SW6:OFF/OFF/OFF/OFF
    
  13. Power on the SK
  14. Press SW8
    SCIF Download mode starts
    
  15. Send the following file from console:
  16. type "ctrl+A S" and select upload method "ascii", then choose file for uploading the following file.
    Case of M3SK:
    	AArch32_Gen3_H3_M3_Scif_MiniMon_V3.02.mot
    Case of H3SK:
    	AArch64_Gen3_H3_M3_Scif_MiniMon_V3.02.mot
    

    You can confirm the following log (Ex: M3SK):

    R-Car Gen3 Scif Download MiniMonitor V3.02 2017.07.04
     Work Memory     : SystemRAM
     Board Judge     : Used Board-ID	<-- Attention!!
     DDR_Init        : boardcnf[3] Starter Kit (M3SIP)
     Board Name      : Starter Kit Pro
     Product Code    : R-Car M3 ES1.0
    
    >
    
  17. Flash AArch64_Gen3_H3_M3_SPI_LOADER_V3.02.mot. In console execute xls command (load program to hyper flash) and provide the following inputs:
  18. xls
    1
    y
    y
    y
    1
    type "ctrl+A S" and select upload method "ascii", then choose file for uploading "AArch64_Gen3_H3_M3_SPI_LOADER_V3.02.mot", after upload finished press y key
    
  19. Flash AArch64_Gen3_Spi_MiniMon_V3.02_E6330000.mot. In console execute xls command (load program to hyper flash) and provide the following inputs:
  20. xls
    1
    y
    y
    y
    3
    e6330000
    type "ctrl+A S" and select upload method "ascii", then choose file for uploading "AArch64_Gen3_Spi_MiniMon_V3.02_E6330000.mot", after upload finished press y key
    
  21. Power off the SK
  22. Press SW8
    
  23. Verify Sample Loader and MiniMonitor version
  24. SW1:OFF
    M3SK
     SW6[1]=OFF, SW6[2]=OFF, SW6[3]=OFF, SW6[4]=ON
    H3SK
     ws1.0: SW6[all]=OFF
     ws1.1/ws2.0: SW6[1]=ON, SW6[2]=ON, SW6[3]=OFF, SW6[4]=ON
    
    Press SW8
    

    You can confirm the following log (Ex: H3SK):

    R-Car Gen3 Sample Loader V3.02 2017.07.04		<-- !! V3.02 !!
     For Salvator , Kriek , and StarterKit.
     Board Judge     : Used Board-ID
     DDR_Init        : boardcnf[7] Salvator / Starter Kit (H3SIP_VER2.0)
     INITIAL SETTING : Starter Kit Premier / R-Car H3 ES2.0
     CPU             : AArch64 CA57
     DRAM            : LPDDR4 DDR3200
     DEVICE          : QSPI Flash(S25FS128) at 40MHz DMA
     BOOT            : Normal Boot
     BACKUP          : DDR Cold Boot
     jump to 0xE6330000
    
    R-Car Gen3 MiniMonitor V3.02 2017.07.04		<-- !! V3.02 !!
     Work Memory     : SystemRAM
     Board Name      : Starter Kit Premier
     Product Code    : R-Car H3 ES2.0
    
    >
    
  25. Set SW(Kernel boot mode) as follows:
  26. SW1:ON
    M3SK = SW6[all]:ON
    H3SK
     ws1.0 = SW6:OFF/OFF/OFF/ON
     ws1.1 = SW6:ON/OFF/ON/ON
     ws2.0 = SW6[all]:ON
    
  27. You can update the firmware with SK connected to KF.
  28. How to update:
    http://elinux.org/R-Car/Boards/M3SK#Flashing_firmware
    http://elinux.org/R-Car/Boards/H3SK#Flashing_firmware

FAQ

  1. Failed to DRAM initialize (-1).
    If you face the following error please update(*) IPL and u-boot to the latest versopm.
    NOTICE:  BL2: R-Car Gen3 Initial Program Loader(CA57) Rev.1.0.12
    NOTICE:  BL2: PRR is R-Car M3 ES1.0
    NOTICE:  BL2: Boot device is HyperFlash(80MHz)
    NOTICE:  BL2: LCM state is CM
    NOTICE:  BL2: AVS setting succeeded. DVFS_SetVID=0x52
    NOTICE:  BL2: DDR3200(rev.0.20)[COLD_BOOT]..1
    NOTICE:  BL2: Failed to DRAM initialize (-1).
    ERROR:   
    ERROR:   BL2: System WDT overflow, occured address is 0xe630d3cc
    

    (*)How to update
    http://elinux.org/R-Car/Boards/Kingfisher#How_to_update_of_Sample_Loader_and_MiniMonitor
    http://elinux.org/R-Car/Boards/M3SK#Flashing_firmware
    http://elinux.org/R-Car/Boards/H3SK#Flashing_firmware

  2. Known Issues

    1. USB3.0(CN2) cannot use with M3 SK.
    2. Refer to: http://elinux.org/R-Car/Boards/M3SK#Known_Issues

    3. H/W limitations
      - Board type name: "SBEV-RCAR-KF-M03" and "SBEV-RCAR-KF-S03"
       1. No access to Bluetooth AUDIO(U52) via I2S I/F
       2. MOST RESET(CN22) SD card not working on 1.8V operation
      
      - Board type name: "SBEV-RCAR-KF-M03", "SBEV-RCAR-KF-S03" and "SBEV-RCAR-KF-M03"
       1. Cannot use Debugger using CN3 on SK.
      
    4. Power supply
      SBEV-RCAR-KF-M03 and SBEV-RCAR-KF -S03 boards may not turn on even if you turn on SW6.
      In that case please turn on SW6 again.
    5. (SW limitation)Raspberry Pi camera
      v2(Sony IMX219) camera does not support. (v1(ov5647)is suuported)