R-Car/Boards/Salvator-XS

= Introduction =

This is the Wiki for the Renesas Salvator-XS (Salvator-X 2nd version) board, which is available in different versions, depending on the actual SiP mounted: Refer to the R-Car page for information about Renesas' R-Car SoC family.
 * RTP0RC7795SIPB0012S (with R-Car H3 ES2.0),
 * RTP0RC7796SIPB0012S (with R-Car M3-W),
 * RTP0RC7796SIPB0012SA5A (with R-Car M3-W+, aka R-Car M3-W ES3.0),
 * RTP0RC77965SIPB012S (with R-Car M3-N).

= Serial Console =

Use a micro-USB cable to connect to "Debug Serial 0". Serial settings are 115200 8N1.

Unfortunately the CP2102 USB-to-UART bridges on Salvator-XS boards have the same serial strings (0001 resp. 00002 for Debug Serial 0 resp. 1), complicating identifying consoles on multiple boards. If you have multiple boards connected to the same host and you want stable serial ports, there are two options:
 * 1) Refer to the ports using the symbolic links under /dev/serial/by-path/, instead of the /dev/ttyUSB* names,
 * 2) Program the ports' serial strings to your liking (e.g. salvator-xs-1884-debug0) using the tool at https://github.com/DiUS/cp210x-cfg, and refer to the ports using the symbolic links under /dev/serial/by-id/, instead of the /dev/ttyUSB* names.

= Booting Linux =

* Kernel config: defconfig * Kernel image: arch/arm64/boot/Image * DTB: arch/arm64/boot/dts/renesas/r8a77951-salvator-xs.dtb (for R-Car H3) * DTB: arch/arm64/boot/dts/renesas/r8a77960-salvator-xs.dtb (for R-Car M3-W) * DTB: arch/arm64/boot/dts/renesas/r8a77961-salvator-xs.dtb (for R-Car M3-W+) * DTB: arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dtb (for R-Car M3-N)

U-Boot boot command: tftpboot 0x50000000 Image tftpboot 0x58000000 r8a77951-salvator-xs.dtb (for R-Car H3) tftpboot 0x58000000 r8a77960-salvator-xs.dtb (for R-Car M3-W) tftpboot 0x58000000 r8a77961-salvator-xs.dtb (for R-Car M3-W+) tftpboot 0x58000000 r8a77965-salvator-xs.dtb (for R-Car M3-N) booti 0x50000000 - 0x58000000

Kernel v5.5 and older used different DTB names: * DTB: arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dtb (for R-Car H3) * DTB: arch/arm64/boot/dts/renesas/r8a7796-salvator-xs.dtb (for R-Car M3-W) * DTB: arch/arm64/boot/dts/renesas/r8a77965-salvator-xs.dtb (for R-Car M3-N)

= Suspend-to-RAM =

PSCI System Suspend
The system can be suspended by triggering a PSCI System Suspend: echo mem > /sys/power/state

Caveats: echo on > /sys/bus/i2c/drivers/bd9571mwv/*/bd9571mwv-regulator*/backup_mode i2cset -f -y 7 0x30 0x20 0x0F
 * Before you can use the above, you must configure the PMIC for DDR Backup Mode first, using the command below, followed by switching SW23 off:
 * On kernels up to and including v4.18, the "backup_mode" sysfs file doesn't exist. Hence you must use i2cset instead, and repeat this operation after each wake-up:
 * PSCI System Suspend supports wake-up by PMIC only. Switch SW23 on to resume the system.

Suspend-to-Idle
If you want to suspend the system, and wake up through other wake-up sources, you must use Suspend-to-Idle instead of PSCI System Suspend.

The system can be suspended ("frozen") using: echo freeze > /sys/power/state

Alternatively (since v4.10), you can configure the system to use Suspend-to-Idle by default: echo s2idle > /sys/power/mem_sleep

After that, you can suspend the system using the standard: echo mem > /sys/power/state

Wake-Up Sources
Suspend-to-Idle supports the following wake-up sources:

ethtool -s eth0 wol g # Enable wake on MagicPacket ethtool -s eth0 wol d # Disable Wake-up by sending a MagicPacket from another system using: wakeonlan  | |  # or  must be in /etc/ethers
 * gpio-keys: Not enabled in the upstream kernel due to sharing of GPIOs between switches and LEDs, but see Remote Control below.
 * ravb (Ethernet): Configure using one of:
 * sh-sci (Serial): Disabled by default
 * usb: Disabled by default

= Remote Control =