This is the Wiki for the U-Boot on Renesas R-Car Gen3 SoCs and boards . Refer to the R-Car page for information about Renesas' R-Car SoC family.
As of U-Boot 2018.01, the following boards are supported:
|Board||U-Boot defconfig||Update procedure|
|R8A7795 H3 ULCB||r8a7795_ulcb_defconfig||Flashing firmware|
|R8A7796 M3 ULCB||r8a7796_ulcb_defconfig||Flashing firmware|
|R8A7795 H3 Salvator-X ES2.0+||r8a7795_salvator-x_defconfig||N/A|
|R8A7796 M3-W Salvator-X||r8a7796_salvator-x_defconfig||N/A|
|R8A77965 M3-N Salvator-XS||r8a77965_salvator-x_defconfig||N/A|
! WARNING: R-Car R8A7795 H3 ES1.x is NOT supported!
Building U-Boot manually
Building U-Boot can be done manually by using the U-Boot sources. This process does NOT produce IPL/ATF/BL binaries, only U-Boot binary is produced.
- Running mainline U-Boot is only supported with IPL/ATF/BL revision 2.23 and newer.
- ARM cross-compiler is mandatory to build U-Boot.
Debian and Ubuntu includes an ARM cross-compiler in its standard package feed. You can install it as follows:
apt-get install gcc-aarch64-linux-gnu
Other distributions likely also provide ARM cross-compilers. Consult distro-specific documentation for details.
Obtain U-Boot sources
The preferred method of obtaining U-Boot sources is through git VCS, using git protocol:
git clone git://git.denx.de/u-boot.git
or via HTTP:
git clone http://git.denx.de/u-boot.git
Finally, check out the version of U-Boot that will be used for the build:
cd u-boot git checkout -b my_working_branch v2018.01
U-Boot git hosting also provides snapshots.
Prepare build environment
Before building U-Boot for R-Car Gen3 system, the following environment variables need to be configured:
export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu-
The later variable must match the prefix of the Aarch64 cross-toolchain installed on your system, the example above is valid for Debian and Ubuntu,
To produce u-boot-elf.srec file during U-Boot build, a patch must first be applied:
git am 0001-Makefile-add-u-boot-elf.srec-if-CONFIG_REMAKE_ELF-is.patch
or in case U-Boot snapshot was used:
patch -Np1 -i 0001-Makefile-add-u-boot-elf.srec-if-CONFIG_REMAKE_ELF-is.patch
The U-Boot sources must be configured for a particular supported platform. List of supported platforms and matching U-Boot defconfigs is available at supported boards.
for example to configure U-Boot sources for R8A7795 H3 ULCB board:
Once configured, U-Boot sources can be compiled to produce u-boot.bin and optionally u-boot-elf.srec:
To speed up build process, -jN option can be passed to make to start multiple jobs at the same time, this is beneficial especially on SMP systems. The following example starts up to (number of CPUs in a system + 1) jobs, which is the recommended amount:
make -j`expr \`nproc\` + 1`
Building IPL/ATF/BL and U-Boot using OpenEmbedded
Building all the components of the boot process can also be done using OpenEmbedded . By adding two extra patches on top of meta-renesas layer, it is possible to build mainline U-Boot alongside all the other components. The two patches add U-Boot 2018.01 recipe and switch preferred version of U-Boot to 2018.01% and are available from   and the patched meta-renesas layer is available at  .
Each platform has a slightly different process for updating the content of the flash. The list of supported boards contains links to instructions for updating each supported board.