|
|
| + | {{TOC right}} |
| + | This page contains information on building and running Yocto on [[R-Car/Boards/SILK | Renesas R-Car E2 SILK]] and [[R-Car/Boards/Porter|Renesas R-Car M2 Porter]] boards. |
| | | |
| + | == Yocto versions == |
| + | [http://git.yoctoproject.org/cgit/cgit.cgi/poky/tag/?id=yocto-1.6.1 Poky-1.6.1] is supported. Specific commit of meta-openembedded is required. |
| + | |
| + | == Preliminary steps == |
| + | <ol> |
| + | <li>Download proprietary graphics and multimedia drivers from Renesas. Evaluation version is available at http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp<br/> |
| + | Graphic drivers are required for X11 and Wayland. Multimedia drivers are optional.<br/> |
| + | <br/> |
| + | </li> |
| + | |
| + | <li> Install required packages |
| + | ===== Ubuntu and Debian ===== |
| + | <pre> |
| + | sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ |
| + | build-essential chrpath socat libsdl1.2-dev xterm |
| + | </pre> |
| + | ===== Fedora ===== |
| + | <pre> |
| + | sudo yum install gawk make wget tar bzip2 gzip python unzip perl patch \ |
| + | diffutils diffstat git cpp gcc gcc-c++ glibc-devel texinfo chrpath \ |
| + | ccache perl-Data-Dumper perl-Text-ParseWords perl-Thread-Queue socat \ |
| + | SDL-devel xterm |
| + | </pre> |
| + | Refer to [http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html#packages Yocto Project Quick Start] for more information. |
| + | </li> |
| + | </ol> |
| + | |
| + | == Building the BSP for Renesas R-Car SILK and Porter == |
| + | <ol> |
| + | <li>Create a directory and switch to it <br/> |
| + | Warning! Yocto builds require a lot of disk space (up to 100 GB). Make sure you have got enough before starting the build. |
| + | <pre> |
| + | export WORK=<path-to-your-build-directory> |
| + | mkdir $WORK |
| + | cd $WORK |
| + | </pre> |
| + | </li> |
| + | <li>Clone basic Yocto layers: |
| + | <pre> |
| + | cd $WORK |
| + | git clone git://git.yoctoproject.org/poky |
| + | git clone git://git.openembedded.org/meta-openembedded |
| + | git clone git://git.linaro.org/openembedded/meta-linaro.git |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Switch to proper branches/commits |
| + | <pre> |
| + | cd $WORK/poky |
| + | git checkout -b tmp yocto-1.6.1 |
| + | cd $WORK/meta-openembedded |
| + | git checkout -b tmp dca466c074c9a35bc0133e7e0d65cca0731e2acf |
| + | cd $WORK/meta-linaro |
| + | git checkout -b tmp 8a0601723c06fdb75e62aa0f0cf15fc9d7d90167 |
| + | </pre> |
| + | Another versions are not tested for compatibility. |
| + | </li> |
| + | |
| + | <li> |
| + | Clone Renesas BSP layer and switch to the proper branch: |
| + | <pre> |
| + | cd $WORK |
| + | git clone git://git.yoctoproject.org/meta-renesas/ |
| + | cd meta-renesas |
| + | git checkout -b tmp 1c029141738865c4500f47549807411f4da469a8 |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Clone Renesas LCB layer and switch to the proper branch: |
| + | <pre> |
| + | cd $WORK |
| + | git clone https://github.com/cogentembedded/meta-renesas-lcb.git |
| + | cd meta-renesas-lcb |
| + | git checkout -b tmp origin/v160 |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Download proprietary driver modules from http://www.renesas.com/secret/r_car_download/rcar_demoboard.jsp and unzip them to $WORK/proprietary folder.<br/> |
| + | You should see the following files: |
| + | <pre> |
| + | [builduser@builduser meta-renesas-lcb]$ ls -lh $WORK/proprietary |
| + | total 4.2M |
| + | -rw-r--r--. 1 builduser builduser 3.0M Jan 9 15:26 R-Car_Series_Evaluation_Software_Package_for_Linux-20150109.tar.gz |
| + | -rw-r--r--. 1 builduser builduser 1.2M Jan 9 12:49 R-Car_Series_Evaluation_Software_Package_of_Linux_Drivers-20150109.tar.gz |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Populate meta-renesas-lcb with graphics drivers.<br/> |
| + | For [[R-Car/Boards/SILK|SILK]] board run: |
| + | <pre> |
| + | cd $WORK/meta-renesas-lcb |
| + | ./copy_gfx_software_silk.sh ../proprietary |
| + | </pre> |
| + | For [[R-Car/Boards/Porter|Porter]] board run: |
| + | <pre> |
| + | cd $WORK/meta-renesas-lcb |
| + | ./copy_gfx_software_porter.sh ../proprietary |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Populate meta-renesas-lcb with multimedia drivers. |
| + | <pre> |
| + | cd $WORK/meta-renesas-lcb |
| + | ./copy_mm_software_lcb.sh ../proprietary |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Setup build environment |
| + | <pre> |
| + | cd $WORK |
| + | source poky/oe-init-build-env |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Prepare default configuration files. <br/> |
| + | For [[R-Car/Boards/SILK|SILK]] board run: |
| + | <pre> |
| + | cd $WORK/build |
| + | cp ../meta-renesas-lcb/lcb-configs/bblayers.conf ./conf |
| + | cp ../meta-renesas-lcb/lcb-configs/local-silk.conf ./conf/local.conf |
| + | </pre> |
| + | For [[R-Car/Boards/Porter|Porter]] board run: |
| + | <pre> |
| + | cd $WORK/build |
| + | cp ../meta-renesas-lcb/lcb-configs/bblayers.conf ./conf |
| + | cp ../meta-renesas-lcb/lcb-configs/local-porter.conf ./conf/local.conf |
| + | </pre> |
| + | Edit '''local.conf''' to select graphic environment (X11 or wayland/weston) and enable/disable graphics and multimedia proprietary drivers support. |
| + | </li> |
| + | |
| + | <li> |
| + | Start the build <br /> |
| + | For weston/wayland: |
| + | <pre> |
| + | bitbake core-image-weston |
| + | </pre> |
| + | For X11: |
| + | <pre> |
| + | bitbake core-image-x11 |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Building image can take upto a few hours depending on your host system performance.<br> |
| + | After the build has been completed successfuly, you should see the output similar to: |
| + | <pre class="bash"> |
| + | NOTE: Tasks Summary: Attempted 4704 tasks of which 31 didn't need to be rerun and all succeeded. |
| + | </pre> |
| + | and the command prompt should return. |
| + | </li> |
| + | |
| + | <li> |
| + | Bitbake has generated all the necessary files in ./tmp/deploy/images directory. <br/> |
| + | You can verify its content: |
| + | <pre class="bash"> |
| + | [builduser]$ ls -lh `find ./tmp/deploy/images/silk/ -maxdepth 1 -type l -print` |
| + | lrwxrwxrwx. 1 builduser builduser 50 Dec 9 02:47 ./tmp/deploy/images/silk/core-image-x11-silk.manifest -> core-image-x11-silk-20141208223655.builduserfs.manifest |
| + | lrwxrwxrwx. 1 builduser builduser 49 Dec 9 02:47 ./tmp/deploy/images/silk/core-image-x11-silk.tar.bz2 -> core-image-x11-silk-20141208223655.builduserfs.tar.bz2 |
| + | lrwxrwxrwx. 1 builduser builduser 84 Dec 9 02:43 ./tmp/deploy/images/silk/modules-silk.tgz -> modules--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655.tgz |
| + | lrwxrwxrwx. 1 builduser builduser 52 Dec 9 02:46 ./tmp/deploy/images/silk/u-boot.bin -> u-boot-silk-v2013.01.01+gitAUTOINC+74b16badc2-r0.bin |
| + | lrwxrwxrwx. 1 builduser builduser 52 Dec 9 02:46 ./tmp/deploy/images/silk/u-boot-silk.bin -> u-boot-silk-v2013.01.01+gitAUTOINC+74b16badc2-r0.bin |
| + | lrwxrwxrwx. 1 builduser builduser 83 Dec 9 02:43 ./tmp/deploy/images/silk/uImage -> uImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655.bin |
| + | lrwxrwxrwx. 1 builduser builduser 83 Dec 9 02:43 ./tmp/deploy/images/silk/uImage+dtb -> uImage+dtb--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655 |
| + | lrwxrwxrwx. 1 builduser builduser 91 Dec 9 02:43 ./tmp/deploy/images/silk/uImage-r8a7794-silk.dtb -> uImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-r8a7794-silk-20141208223655.dtb |
| + | lrwxrwxrwx. 1 builduser builduser 83 Dec 9 02:43 ./tmp/deploy/images/silk/uImage-silk.bin -> uImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655.bin |
| + | lrwxrwxrwx. 1 builduser builduser 79 Dec 9 02:43 ./tmp/deploy/images/silk/zImage -> zImage--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655 |
| + | lrwxrwxrwx. 1 builduser builduser 83 Dec 9 02:43 ./tmp/deploy/images/silk/zImage+dtb -> zImage+dtb--3.10+git2eba9c2b1f02bec3295b27f8415575da00d5ffce-r0-silk-20141208223655 |
| + | </pre> |
| + | '''modules-silk.tgz''' is compressed Kernel image, '''core-image-x11-silk.tar.bz2''' is the rootfs, '''modules-silk.tgz''' are kernel modules. |
| + | </li> |
| + | <li> |
| + | You can now [[R-Car/Boards/SILK#Booting over TFTP from U-Boot|boot R-Car E2 SILK board over TFTP and NFS]] |
| + | </li> |
| + | </ol> |
| + | |
| + | == Running Yocto image == |
| + | Linux kernel can be booted from microSD card or from TFTP. Root FS can be mounted from micro SD card or via NFS. |
| + | |
| + | === Loading kernel via TFTP and rootfs via NFS === |
| + | Follow these steps to setup working TFTP and NFS server: |
| + | <ol> |
| + | <li> |
| + | Setup a TFTP server. |
| + | ==== Ubuntu ==== |
| + | Install '''tftpd-hpa''' package along with tftp tools: |
| + | <pre> |
| + | sudo apt-get install tftp tftpd-hpa |
| + | </pre> |
| + | |
| + | ==== Fedora ==== |
| + | <ol> |
| + | <li> |
| + | Install necessary packages: |
| + | <pre> |
| + | sudo yum install tftp-server tftp |
| + | </pre> |
| + | tftp-server is a part of xinetd. See [http://docs.fedoraproject.org/en-US/Fedora/20/html/Installation_Guide/ch13s05s03.html Fedora manual] for more information. |
| + | </li> |
| + | <li> |
| + | Enable TFTP server: |
| + | <pre> |
| + | sudo vi /etc/xinetd.d/tftp |
| + | </pre> |
| + | Set <pre>disable = no</pre> Save file and exit. |
| + | </li> |
| + | <li> |
| + | Start xinetd: |
| + | <pre> |
| + | sudo systemctl start xinetd.service |
| + | sudo systemctl enable xinetd.service |
| + | </pre> |
| + | </li> |
| + | </ol> |
| + | |
| + | </li> |
| + | |
| + | <li> |
| + | Copy '''uImage''' and '''uImage-r8a7794-silk.dtb''' from $WORK/build/tmp/deploy/images/silk/ to TFTP server root. |
| + | ==== Ubuntu ==== |
| + | <pre> |
| + | cp $WORK/build/tmp/deploy/images/silk/uImage /srv/tftp/ |
| + | cp $WORK/build/tmp/deploy/images/silk/uImage-r8a7794-silk.dtb /srv/tftp/ |
| + | </pre> |
| + | |
| + | ==== Fedora ==== |
| + | <pre> |
| + | cp $WORK/build/tmp/deploy/images/silk/uImage /var/lib/tftpboot/ |
| + | cp $WORK/build/tmp/deploy/images/silk/uImage-r8a7794-silk.dtb /var/lib/tftpboot/ |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Verify that TFTP server is working. |
| + | <pre> |
| + | tftp localhost -c get uImage && ls uImage |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Setup NFS server. |
| + | ==== Debian/Ubuntu ==== |
| + | <ol> |
| + | <li> |
| + | Install necessary packages: |
| + | <pre> |
| + | sudo apt-get install nfs-kernel-server nfs-common |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Start NFS server: |
| + | <pre> |
| + | sudo /etc/init.d/nfs-kernel-server start |
| + | </pre> |
| + | </li> |
| + | </ol> |
| + | |
| + | ==== Fedora ==== |
| + | <ol> |
| + | <li> |
| + | Install necessary packages: |
| + | <pre> |
| + | sudo yum install nfs-utils |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Enable and start nfs server: |
| + | <pre> |
| + | sudo systemctl enable rpcbind.service |
| + | sudo systemctl enable nfs-server.service |
| + | sudo systemctl enable nfs-lock.service |
| + | sudo systemctl enable nfs-idmap.service |
| + | sudo systemctl start rpcbind.service |
| + | sudo systemctl start nfs-server.service |
| + | sudo systemctl start nfs-lock.service |
| + | sudo systemctl start nfs-idmap.service |
| + | </pre> |
| + | </li> |
| + | </ol> |
| + | </li> |
| + | |
| + | <li> |
| + | Export root FS to NFS. (Change IMAGE and MACHINE to fit your build). |
| + | <ol> |
| + | <li> |
| + | Unpack rootfs to a dedicated directory: |
| + | <pre> |
| + | IMAGE=weston|x11|sato|directfb |
| + | MACHINE=silk|porter |
| + | NFS_ROOT=/nfs/${MACHINE} |
| + | sudo mkdir -p "${NFS_ROOT}" |
| + | sudo rm -rf "${NFS_ROOT}"/* |
| + | sudo tar -xjf "${WORK}/build/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}.tar.bz2" -C "${NFS_ROOT}" |
| + | sync |
| + | </pre> |
| + | </li> |
| + | <li> |
| + | Edit '''/etc/exports''': |
| + | <pre> |
| + | sudo vi /etc/exports |
| + | </pre> |
| + | add |
| + | <pre> |
| + | /nfs/silk *(rw,no_subtree_check,sync,no_root_squash,no_all_squash) |
| + | /nfs/porter *(rw,no_subtree_check,sync,no_root_squash,no_all_squash) |
| + | </pre> |
| + | Save the file and exit. |
| + | </li> |
| + | <li> |
| + | Force NFS server to re-read /etc/exports |
| + | <pre>sudo exportfs -a</pre> |
| + | </li> |
| + | </ol> |
| + | </li> |
| + | <li> |
| + | Verify that NFS is working. |
| + | <pre> |
| + | [builduser@buildmachine ~]$ showmount -e localhost |
| + | Export list for localhost: |
| + | /nfs/silk * |
| + | /nfs/porter * |
| + | </pre> |
| + | </li> |
| + | |
| + | <li><span id="Boot into U-Boot command prompt">Boot into U-Boot command prompt</span> |
| + | ===== For [[R-Car/Boards/SILK|SILK board]] ===== |
| + | <ol> |
| + | <li> |
| + | Make sure SW9 is on pin 1 side. <br/> |
| + | [[File:SILKSwitch.png|100px|Switch pin layout]] |
| + | </li> |
| + | <li> |
| + | Connect to serial console over microUSB using minicom or picocom. |
| + | </li> |
| + | <li> |
| + | Switch the board on or reset it. Press any key to stop U-Boot automatic countdown. |
| + | </li> |
| + | </ol> |
| + | Refer to [[R-Car/Boards/SILK#Power on the board and go to U-Boot prompt|SILK board page]] for more information. |
| + | ===== For [[R-Car/Boards/Porter|Porter board]] ===== |
| + | <ol> |
| + | <li> |
| + | TBD |
| + | </li> |
| + | </ol> |
| + | |
| + | </li> |
| + | |
| + | <li> |
| + | Configure Ethernet, TFTP, and kernel command line in U-Boot: |
| + | <!--setenv ethaddr xx:xx:xx:xx:xx:xx |
| + | Replace xx:xx:xx:xx:xx:xx with the MAC address of your board. It should be on the sticker on top of the Ethernet port.<br/> |
| + | --> |
| + | <pre> |
| + | setenv ipaddr <board-ip> |
| + | setenv serverip <your-computer-ip> |
| + | setenv bootcmd 'tftp 0x40007fc0 uImage; tftp 0x40f00000 uImage-r8a7794-silk.dtb; bootm 0x40007fc0 - 0x40f00000' |
| + | setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw root=/dev/nfs nfsroot=<your-computer-ip>:<nfs-path>,nfsvers=3 ip=<board-ip>:<your-computer-ip>::255.255.255.0:silk vmalloc=384M' |
| + | saveenv |
| + | </pre> |
| + | Replace <board-ip> with the proper IP address for the board. Replace <your-computer-ip> with the IP address of your computer, where tftp and nfs servers are installed. Replace <nfs-path> with the exported path of the root FS. <br/> For example: |
| + | <pre> |
| + | setenv ipaddr 192.168.1.3 |
| + | setenv serverip 192.168.1.2 |
| + | setenv bootcmd 'tftp 0x40007fc0 uImage; tftp 0x40f00000 uImage-r8a7794-silk.dtb; bootm 0x40007fc0 - 0x40f00000' |
| + | setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw root=/dev/nfs nfsroot=192.168.1.2:/nfs/silk,nfsvers=3 ip=192.168.1.3:192.168.1.2::255.255.255.0:silk vmalloc=384M' |
| + | saveenv |
| + | </pre> |
| + | The last command writes the configuration to SPI flash. |
| + | <pre> |
| + | => saveenv |
| + | Saving Environment to SPI Flash... |
| + | SF: Detected S25FL512S with page size 256 KiB, total 64 MiB |
| + | Erasing SPI flash...Writing to SPI flash...done |
| + | </pre> |
| + | You can also use |
| + | <pre> |
| + | dhcp |
| + | </pre> |
| + | command to obtain information from DHCP server.<br/> |
| + | '''Note:''' You can always see the environment with ''printenv'' command. Refer to [http://www.denx.de/wiki/U-Boot/Documentation U-Boot manual] for details. |
| + | </li> |
| + | |
| + | <li> |
| + | Verify the connection over Ethernet from U-Boot: |
| + | <pre> |
| + | ping <your-computer-ip> |
| + | </pre> |
| + | You should see: |
| + | <pre> |
| + | => ping 192.168.1.2 |
| + | sh_eth Waiting for PHY auto negotiation to complete... done |
| + | sh_eth: 100Base/Full |
| + | Using sh_eth device |
| + | host 192.168.1.2 is alive |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Reset the board by pushing [[R-Car/Boards/SILK:Hardware#Switches and Buttons|SW5 "Reset"]]. |
| + | </li> |
| + | |
| + | <li> |
| + | The board should boot the kernel: |
| + | <pre> |
| + | SILK SPI_LOADER V0.07c 2014.10.20 |
| + | DEVICE S25FL512 |
| + | |
| + | |
| + | U-Boot 2013.01.01-g74b16ba-dirty (Dec 23 2014 - 15:31:50) |
| + | |
| + | CPU: Renesas Electronics R8A7794 rev 1.0 |
| + | Board: Silk Board |
| + | |
| + | DRAM: 1 GiB |
| + | MMC: sh_mmcif: 0, sh-sdhi: 1 |
| + | SF: Detected S25FL512S with page size 256 KiB, total 64 MiB |
| + | In: serial |
| + | Out: serial |
| + | Err: serial |
| + | Net: sh_eth |
| + | Hit any key to stop autoboot: 0 |
| + | sh_eth Waiting for PHY auto negotiation to complete... done |
| + | sh_eth: 100Base/Full |
| + | Using sh_eth device |
| + | TFTP from server 192.168.1.2; our IP address is 192.168.1.3 |
| + | Filename 'uImage'. |
| + | Load address: 0x40007fc0 |
| + | Loading: ################################################################# |
| + | ################################################################# |
| + | ################################################################# |
| + | ############################################## |
| + | 3.5 MiB/s |
| + | done |
| + | Bytes transferred = 3525472 (35cb60 hex) |
| + | sh_eth:1 is connected to sh_eth. Reconnecting to sh_eth |
| + | sh_eth Waiting for PHY auto negotiation to complete... done |
| + | sh_eth: 100Base/Full |
| + | Using sh_eth device |
| + | TFTP from server 192.168.1.2; our IP address is 192.168.1.3 |
| + | Filename 'uImage-r8a7794-silk.dtb'. |
| + | Load address: 0x40f00000 |
| + | Loading: ## |
| + | 3 MiB/s |
| + | done |
| + | Bytes transferred = 24859 (611b hex) |
| + | ## Booting kernel from Legacy Image at 40007fc0 ... |
| + | Image Name: Linux-3.10.31-ltsi |
| + | Image Type: ARM Linux Kernel Image (uncompressed) |
| + | Data Size: 3525408 Bytes = 3.4 MiB |
| + | Load Address: 40008000 |
| + | Entry Point: 40008000 |
| + | Verifying Checksum ... OK |
| + | ## Flattened Device Tree blob at 40f00000 |
| + | Booting using the fdt blob at 0x40f00000 |
| + | XIP Kernel Image ... OK |
| + | OK |
| + | Loading Device Tree to 40ef6000, end 40eff11a ... OK |
| + | |
| + | Starting kernel ... |
| + | </pre> |
| + | </li> |
| + | </ol> |
| + | |
| + | === Loading kernel and rootfs from microSD card === |
| + | Both kernel and root FS can be loaded from a microSD card. The approach requires only a console cable. No Ethernet connection is needed. |
| + | <ol> |
| + | <li> |
| + | Find a reliable microSD card with an adapter to fit your computer. 4 GB should be enough for the task. |
| + | </li> |
| + | |
| + | <li> |
| + | Plug the SD card into you computer. Locate the proper device for it, typically '''/dev/mmcblk0'''. Use |
| + | <pre> |
| + | dmesg | tail |
| + | </pre> |
| + | to print latest messages if in doubt.<br/> |
| + | <span style="color:#ff0000">'''WARNING!''' Be very careful. Do not select you root partition or any other device with important information. It may be destroyed!</span><br/> |
| + | Double-check that device name is correct by mounting and examining it's content. |
| + | </li> |
| + | |
| + | <li> |
| + | Make sure the SD card doesn't contain any important files.<br/> |
| + | <span style="color:#ff0000">'''WARNING!''' Next step may erase the SD card completely. All files my be lost.</span> |
| + | </li> |
| + | |
| + | <li> |
| + | Format the card with one partition with EXT3 file system.<br/> |
| + | ''TBD Update this page with a script which formats the card'' |
| + | </li> |
| + | |
| + | <li> |
| + | Copy root fs to the sd card: |
| + | <pre> |
| + | SD=<path-to-your-device-partition> |
| + | SD_ROOT=/tmp/sd-tool |
| + | sudo umount "${SD}" |
| + | sudo mkdir -p "${SD_ROOT}" |
| + | sudo mount "${SD}" "${SD_ROOT}" |
| + | sudo rm -rf "${SD_ROOT}"/* |
| + | sudo tar -xjf "${BUILDDIR}/tmp/deploy/images/${MACHINE}/core-image-${IMAGE}-${MACHINE}.tar.bz2" -C "${SD_ROOT}" |
| + | sudo umount "${SD}" |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Insert the SD card into microSD slot on the board. |
| + | </li> |
| + | |
| + | <li> Boot the board into U-Boot command prompt. Refer to section [[R-Car/Boards/Yocto#Boot into U-Boot command prompt|Boot into U-Boot command prompt]] |
| + | </li> |
| + | |
| + | <li> |
| + | Configure kernel command line in U-Boot: |
| + | <pre> |
| + | setenv bootcmd 'ext4load mmc 1:1 0x40007fc0 /boot/uImage+dtb; bootm 0x40007fc0' |
| + | setenv bootargs 'console=ttySC10,38400 ignore_loglevel rw rootfstype=ext3 root=/dev/mmcblk0p1 rootwait vmalloc=384M' |
| + | saveenv |
| + | </pre> |
| + | The last command writes the configuration to SPI flash. |
| + | <pre> |
| + | => saveenv |
| + | Saving Environment to SPI Flash... |
| + | SF: Detected S25FL512S with page size 256 KiB, total 64 MiB |
| + | Erasing SPI flash...Writing to SPI flash...done |
| + | </pre> |
| + | </li> |
| + | |
| + | <li> |
| + | Reset the board by pushing [[R-Car/Boards/SILK:Hardware#Switches and Buttons|SW5 "Reset"]]. |
| + | </li> |
| + | |
| + | <li> |
| + | The board should boot the kernel: |
| + | <pre> |
| + | SILK SPI_LOADER V0.07c 2014.10.20 |
| + | DEVICE S25FL512 |
| + | |
| + | |
| + | U-Boot 2013.01.01-g74b16ba-dirty (Dec 23 2014 - 15:31:50) |
| + | |
| + | CPU: Renesas Electronics R8A7794 rev 1.0 |
| + | Board: Silk Board |
| + | |
| + | DRAM: 1 GiB |
| + | MMC: sh_mmcif: 0, sh-sdhi: 1 |
| + | SF: Detected S25FL512S with page size 256 KiB, total 64 MiB |
| + | In: serial |
| + | Out: serial |
| + | Err: serial |
| + | Net: sh_eth |
| + | Hit any key to stop autoboot: 0 |
| + | 3534603 bytes read in 498 ms (6.8 MiB/s) |
| + | ## Booting kernel from Legacy Image at 40007fc0 ... |
| + | Image Name: 'Linux-3.10.31-ltsi' |
| + | Image Type: ARM Linux Kernel Image (uncompressed) |
| + | Data Size: 3534539 Bytes = 3.4 MiB |
| + | Load Address: 40008000 |
| + | Entry Point: 40008000 |
| + | Verifying Checksum ... OK |
| + | XIP Kernel Image ... OK |
| + | OK |
| + | |
| + | Starting kernel ... |
| + | </pre> |
| + | </li> |
| + | |
| + | </ol> |
| + | |
| + | == Known issues and limitations == |
| + | TBD |