From eLinux.org
< RZ-A
Revision as of 19:37, 22 February 2018 by Cbrandt (talk | contribs) (update to 4.9 BSP)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Hardware Setup

Please refer to RZ-A/Boards/GR-PEACH

Linux v4.9 Renesas BSP

Below are the instructions on how to build and load a XIP Linux image on a GR-PEACH board along with a AXFS (XIP) file image. After kernel boot, you should only be using about 3MB of your 10MB internal RAM.

The kernel version will be Linux-4.9

Build Environment Setup

Install the RZ/A1 RSK BSP

# Clone the BSP from github
$ git clone https://github.com/renesas-rz/rza_linux-4.9_bsp.git
$ cd rza_linux-4.9_bsp

Select GR-PEACH as the Target Board

  • First enter the BSP configuration screen
$ ./build.sh config
  • Then change the Target Board selection (the first item in list) from RSKRZA1 to GR-PEACH
  • Select Save (the last item in the list)
  • Now all your build defaults and J-Link programming examples will be specifically for GR-PEACH

Install Segger Jlink Drivers for Linux

  • Install the "J-Link Software and Documentation Pack" from Segger's website
  • https://www.segger.com/downloads/jlink
  • Hint: You need to click the "Click for downloads" to actually find the download links.


  • The tested build environment was Ubuntu. If using another distribution, some changes might be needed (but I'm not sure what exactly).
  • Lines that start with the symbol '$' are to be copy/pasted into the Linux PC terminal (without the $)
  • Lines that start wit the symbol '=>' are u-boot commands
  • Lines that start wit the symbol '#' are just comments

Build the File System

  • We do this first because we need Buildroot to download the toolchain that we will use to build u-boot and the kernel.
$ ./build.sh buildroot

Build u-boot

$ ./build.sh u-boot

Build the Kernel and Device Tree

$ ./build.sh kernel xipImage
$ ./build.sh kernel dtbs


  • These instructions assume you have replaced the 8MB SPI Flash with the 16MB SPI flash.
  • Note that the RSK board has dual SPI flash where as the GR-PEACH only has a single SPI flash, so the programming commands are a little different.
  • Note we can program u-boot and Device Tree directly to SPI flash using the Segger JLink. However, to program the kernel and file system, we first need to download the images to RAM and then let u-boot do the actual SPI flash programming.
  • The memory map of the SPI flash will be as follows:
Offset Size Image
0x00000 512KB u-boot
0x80000 256KB u-boot environment variables
0xC0000 256KB Device Tree Blob
0x100000 5MB Kernel
0x600000 10MB File System

Program u-boot into QSPI Flash

  • Requires Jlink to be connected to Linux (if running a Virtual Machine)
  • This will program the u-boot binary directly into the QSPI flash
$ ./build.sh jlink u-boot
  • Test that u-boot comes up
  • Note that you will need to have u-boot working in order to program the kernel and file system
- use mbed USB serial port
- baud rate is 115,200 bps
- click the reset button
- type "saveenv" in u-boot to save the "environment settings" to SPI flash (gets rid of BAD CRC warning message after reset)

Program Device Tree for into QSPI Flash

  • This will program the device tree binary directly into the QSPI flash
$ ./build.sh jlink dtb

Program Kernel into QSPI Flash

  • Make sure u-boot is programmed and u-boot is running
  • Download the kernel binary to on-chip RAM using Jlink:
$ ./build.sh jlink xipImage 0x20000000
  • After download, enter these u-boot commands to copy from RAM to SPI flash
=> sf probe 0 ; sf erase 100000 500000 ; sf write 20000000 100000 500000
  • Alternatively, you could use Jlink to program the SPI flash directly (easier...but takes twice as long as u-boot)
$ ./build.sh jlink output/linux-4.9/arch/arm/boot/xipImage 0x18100000

Program File System

  • If your file system is smaller than 9MB, use this method because it's faster:
$ ./build.sh jlink rootfs_axfs 0x20000000
  • After download, enter these u-boot commands to copy from RAM to SPI flash
=> sf probe 0 ; sf erase 600000 900000 ; sf write 20000000 600000 900000
  • If your file system is larger than 9MB, use this method because it will program the SPI Flash directly...but it's going to take a while...
  • The reason is that the RZ/A1H only has 10MB of on chip RAM, and u-boot is using the upper portion of RAM, so we can only download 9MB.
$ ./build.sh jlink rootfs_axfs 0x18600000

Booting the Board

  • In u-boot, type:
 => run xa_boot
  • Linux login
USER: root
PASS: {no password}