123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- Renesas R-Car
- =============
- "R-Car" is the nickname for Renesas' system-on-chip (SoC) family for
- car information systems designed for the next-generation of automotive
- computing for the age of autonomous vehicles.
- The scalable R-Car hardware platform and flexible software platform
- cover the full product range, from the premium class to the entry
- level. Plug-ins are available for multiple open-source software tools.
- Renesas R-Car Gen3 evaluation boards:
- -------------------------------------
- +------------+-----------------+-----------------------------+
- | | Standard | Low Cost Boards (LCB) |
- +============+=================+=============================+
- | R-Car H3 | - Salvator-X | - R-Car Starter Kit Premier |
- | | - Salvator-XS | |
- +------------+-----------------+-----------------------------+
- | R-Car M3-W | - Salvator-X | |
- | | - Salvator-XS | - R-Car Starter Kit Pro |
- +------------+-----------------+-----------------------------+
- | R-Car M3-N | - Salvator-X | |
- | | - Salvator-XS | |
- +------------+-----------------+-----------------------------+
- | R-Car V3M | - Eagle | - Starter Kit |
- +------------+-----------------+-----------------------------+
- | R-Car V3H | - Condor | - Starter Kit |
- +------------+-----------------+-----------------------------+
- | R-Car D3 | - Draak | |
- +------------+-----------------+-----------------------------+
- `boards info <https://elinux.org/R-Car>`__
- The current TF-A port has been tested on the R-Car H3 Salvator-X
- Soc_id r8a7795 revision ES1.1 (uses a Secure Payload Dispatcher)
- ::
- ARM CA57 (ARMv8) 1.5 GHz quad core, with NEON/VFPv4, L1$ I/D
- 48K/32K, L2$ 2MB
- ARM CA53 (ARMv8) 1.2 GHz quad core, with NEON/VFPv4, L1$ I/D 32K/32K,
- L2$ 512K
- Memory controller for LPDDR4-3200 4GB in 2 channels, each 64-bit wide
- Two- and three-dimensional graphics engines,
- Video processing units,
- 3 channels Display Output,
- 6 channels Video Input,
- SD card host interface,
- USB3.0 and USB2.0 interfaces,
- CAN interfaces
- Ethernet AVB
- PCI Express Interfaces
- Memories
- INTERNAL 384KB SYSTEM RAM
- DDR 4 GB LPDDR4
- HYPERFLASH 64 MB HYPER FLASH (512 MBITS, 160 MHZ, 320 MBYTES/S)
- QSPI FLASH 16MB QSPI (128 MBITS,80 MHZ,80 MBYTES/S)1 HEADER QSPI
- MODULE
- EMMC 32 GB EMMC (HS400 240 MBYTES/S)
- MICROSD-CARD SLOT (SDR104 100 MBYTES/S)
- Overview
- --------
- On the rcar-gen3 the BOOTROM starts the cpu at EL3; for this port BL2
- will therefore be entered at this exception level (the Renesas' ATF
- reference tree [1] resets into EL1 before entering BL2 - see its
- bl2.ld.S)
- BL2 initializes DDR (and on some platforms i2c to interface to the
- PMIC) before determining the boot reason (cold or warm).
- During suspend all CPUs are switched off and the DDR is put in backup
- mode (some kind of self-refresh mode). This means that BL2 is always
- entered in a cold boot scenario.
- Once BL2 boots, it determines the boot reason, writes it to shared
- memory (BOOT_KIND_BASE) together with the BL31 parameters
- (PARAMS_BASE) and jumps to BL31.
- To all effects, BL31 is as if it is being entered in reset mode since
- it still needs to initialize the rest of the cores; this is the reason
- behind using direct shared memory access to BOOT_KIND_BASE _and_
- PARAMS_BASE instead of using registers to get to those locations (see
- el3_common_macros.S and bl31_entrypoint.S for the RESET_TO_BL31 use
- case).
- Depending on the boot reason BL31 initializes the rest of the cores:
- in case of suspend, it uses a MBOX memory region to recover the
- program counters.
- [1] https://github.com/renesas-rcar/arm-trusted-firmware
- How to build
- ------------
- The TF-A build options depend on the target board so you will have to
- refer to those specific instructions. What follows is customized to
- the H3 SiP Salvator-X development system used in this port.
- Build Tested:
- ~~~~~~~~~~~~~
- RCAR_OPT="LSI=H3 RCAR_DRAM_SPLIT=1 RCAR_LOSSY_ENABLE=1"
- MBEDTLS_DIR=$mbedtls_src
- $ MBEDTLS_DIR=$mbedtls_src_tree make clean bl2 bl31 rcar_layout_tool \
- PLAT=rcar ${RCAR_OPT} SPD=opteed
- System Tested:
- ~~~~~~~~~~~~~~
- * mbed_tls:
- git@github.com:ARMmbed/mbedtls.git [devel]
- commit 552754a6ee82bab25d1bdf28c8261a4518e65e4d
- Merge: 68dbc94 f34a4c1
- Author: Simon Butcher <simon.butcher@arm.com>
- Date: Thu Aug 30 00:57:28 2018 +0100
- * optee_os:
- https://github.com/BayLibre/optee_os
- Until it gets merged into OP-TEE, the port requires Renesas'
- Trusted Environment with a modification to support power
- management.
- commit 80105192cba9e704ebe8df7ab84095edc2922f84
- Author: Jorge Ramirez-Ortiz <jramirez@baylibre.com>
- Date: Thu Aug 30 16:49:49 2018 +0200
- plat-rcar: cpu-suspend: handle the power level
- Signed-off-by: Jorge Ramirez-Ortiz <jramirez@baylibre.com>
- * u-boot:
- The port has beent tested using mainline uboot.
- commit 4cdeda511f8037015b568396e6dcc3d8fb41e8c0
- Author: Fabio Estevam <festevam@gmail.com>
- Date: Tue Sep 4 10:23:12 2018 -0300
- * linux:
- The port has beent tested using mainline kernel.
- commit 7876320f88802b22d4e2daf7eb027dd14175a0f8
- Author: Linus Torvalds <torvalds@linux-foundation.org>
- Date: Sun Sep 16 11:52:37 2018 -0700
- Linux 4.19-rc4
- TF-A Build Procedure
- ~~~~~~~~~~~~~~~~~~~~
- - Fetch all the above 4 repositories.
- - Prepare the AARCH64 toolchain.
- - Build u-boot using r8a7795_salvator-x_defconfig.
- Result: u-boot-elf.srec
- .. code:: bash
- make CROSS_COMPILE=aarch64-linux-gnu-
- r8a7795_salvator-x_defconfig
- make CROSS_COMPILE=aarch64-linux-gnu-
- - Build atf
- Result: bootparam_sa0.srec, cert_header_sa6.srec, bl2.srec, bl31.srec
- .. code:: bash
- RCAR_OPT="LSI=H3 RCAR_DRAM_SPLIT=1 RCAR_LOSSY_ENABLE=1"
- MBEDTLS_DIR=$mbedtls_src_tree make clean bl2 bl31 rcar \
- PLAT=rcar ${RCAR_OPT} SPD=opteed
- - Build optee-os
- Result: tee.srec
- .. code:: bash
- make -j8 PLATFORM="rcar" CFG_ARM64_core=y
- Install Procedure
- ~~~~~~~~~~~~~~~~~
- - Boot the board in Mini-monitor mode and enable access to the
- Hyperflash.
- - Use the XSL2 Mini-monitor utility to accept all the SREC ascii
- transfers over serial.
- Boot trace
- ----------
- Notice that BL31 traces are not accessible via the console and that in
- order to verbose the BL2 output you will have to compile TF-A with
- LOG_LEVEL=50 and DEBUG=1
- ::
- Initial Program Loader(CA57) Rev.1.0.22
- NOTICE: BL2: PRR is R-Car H3 Ver.1.1
- NOTICE: BL2: Board is Salvator-X Rev.1.0
- NOTICE: BL2: Boot device is HyperFlash(80MHz)
- NOTICE: BL2: LCM state is CM
- NOTICE: AVS setting succeeded. DVFS_SetVID=0x53
- NOTICE: BL2: DDR1600(rev.0.33)NOTICE: [COLD_BOOT]NOTICE: ..0
- NOTICE: BL2: DRAM Split is 4ch
- NOTICE: BL2: QoS is default setting(rev.0.37)
- NOTICE: BL2: Lossy Decomp areas
- NOTICE: Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570
- NOTICE: Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0
- NOTICE: Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0
- NOTICE: BL2: v2.0(release):v2.0-rc0-32-gbcda69a
- NOTICE: BL2: Built : 16:41:23, Oct 2 2018
- NOTICE: BL2: Normal boot
- INFO: BL2: Doing platform setup
- INFO: BL2: Loading image id 3
- NOTICE: BL2: dst=0xe6322000 src=0x8180000 len=512(0x200)
- NOTICE: BL2: dst=0x43f00000 src=0x8180400 len=6144(0x1800)
- WARNING: r-car ignoring the BL31 size from certificate,using
- RCAR_TRUSTED_SRAM_SIZE instead
- INFO: Loading image id=3 at address 0x44000000
- NOTICE: rcar_file_len: len: 0x0003e000
- NOTICE: BL2: dst=0x44000000 src=0x81c0000 len=253952(0x3e000)
- INFO: Image id=3 loaded: 0x44000000 - 0x4403e000
- INFO: BL2: Loading image id 4
- INFO: Loading image id=4 at address 0x44100000
- NOTICE: rcar_file_len: len: 0x00100000
- NOTICE: BL2: dst=0x44100000 src=0x8200000 len=1048576(0x100000)
- INFO: Image id=4 loaded: 0x44100000 - 0x44200000
- INFO: BL2: Loading image id 5
- INFO: Loading image id=5 at address 0x50000000
- NOTICE: rcar_file_len: len: 0x00100000
- NOTICE: BL2: dst=0x50000000 src=0x8640000 len=1048576(0x100000)
- INFO: Image id=5 loaded: 0x50000000 - 0x50100000
- NOTICE: BL2: Booting BL31
- INFO: Entry point address = 0x44000000
- INFO: SPSR = 0x3cd
- VERBOSE: Argument #0 = 0xe6325578
- VERBOSE: Argument #1 = 0x0
- VERBOSE: Argument #2 = 0x0
- VERBOSE: Argument #3 = 0x0
- VERBOSE: Argument #4 = 0x0
- VERBOSE: Argument #5 = 0x0
- VERBOSE: Argument #6 = 0x0
- VERBOSE: Argument #7 = 0x0
- U-Boot 2018.09-rc3-00028-g3711616 (Sep 27 2018 - 18:50:24 +0200)
- CPU: Renesas Electronics R8A7795 rev 1.1
- Model: Renesas Salvator-X board based on r8a7795 ES2.0+
- DRAM: 3.5 GiB
- Flash: 64 MiB
- MMC: sd@ee100000: 0, sd@ee140000: 1, sd@ee160000: 2
- Loading Environment from MMC... OK
- In: serial@e6e88000
- Out: serial@e6e88000
- Err: serial@e6e88000
- Net: eth0: ethernet@e6800000
- Hit any key to stop autoboot: 0
- =>
|