1*54fd6939SJiyong ParkRenesas RZ/G 2*54fd6939SJiyong Park============ 3*54fd6939SJiyong Park 4*54fd6939SJiyong ParkThe "RZ/G" Family of high-end 64-bit Arm®-based microprocessors (MPUs) 5*54fd6939SJiyong Parkenables the solutions required for the smart society of the future. 6*54fd6939SJiyong ParkThrough a variety of Arm Cortex®-A53 and A57-based devices, engineers can 7*54fd6939SJiyong Parkeasily implement high-resolution human machine interfaces (HMI), embedded 8*54fd6939SJiyong Parkvision, embedded artificial intelligence (e-AI) and real-time control and 9*54fd6939SJiyong Parkindustrial ethernet connectivity. 10*54fd6939SJiyong Park 11*54fd6939SJiyong ParkThe scalable RZ/G hardware platform and flexible software platform 12*54fd6939SJiyong Parkcover the full product range, from the premium class to the entry 13*54fd6939SJiyong Parklevel. Plug-ins are available for multiple open-source software tools. 14*54fd6939SJiyong Park 15*54fd6939SJiyong Park 16*54fd6939SJiyong ParkRenesas RZ/G2 reference platforms: 17*54fd6939SJiyong Park---------------------------------- 18*54fd6939SJiyong Park 19*54fd6939SJiyong Park+--------------+----------------------------------------------------------------------------------+ 20*54fd6939SJiyong Park| Board | Details | 21*54fd6939SJiyong Park+==============+===============+==================================================================+ 22*54fd6939SJiyong Park| hihope-rzg2h | "96 boards" compatible board from Hoperun equipped with Renesas RZ/G2H SoC | 23*54fd6939SJiyong Park| +----------------------------------------------------------------------------------+ 24*54fd6939SJiyong Park| | http://hihope.org/product/musashi | 25*54fd6939SJiyong Park+--------------+----------------------------------------------------------------------------------+ 26*54fd6939SJiyong Park| hihope-rzg2m | "96 boards" compatible board from Hoperun equipped with Renesas RZ/G2M SoC | 27*54fd6939SJiyong Park| +----------------------------------------------------------------------------------+ 28*54fd6939SJiyong Park| | http://hihope.org/product/musashi | 29*54fd6939SJiyong Park+--------------+----------------------------------------------------------------------------------+ 30*54fd6939SJiyong Park| hihope-rzg2n | "96 boards" compatible board from Hoperun equipped with Renesas RZ/G2N SoC | 31*54fd6939SJiyong Park| +----------------------------------------------------------------------------------+ 32*54fd6939SJiyong Park| | http://hihope.org/product/musashi | 33*54fd6939SJiyong Park+--------------+----------------------------------------------------------------------------------+ 34*54fd6939SJiyong Park| ek874 | "96 boards" compatible board from Silicon Linux equipped with Renesas RZ/G2E SoC | 35*54fd6939SJiyong Park| +----------------------------------------------------------------------------------+ 36*54fd6939SJiyong Park| | https://www.si-linux.co.jp/index.php?CAT%2FCAT874 | 37*54fd6939SJiyong Park+--------------+----------------------------------------------------------------------------------+ 38*54fd6939SJiyong Park 39*54fd6939SJiyong Park`boards info <https://www.renesas.com/us/en/products/rzg-linux-platform/rzg-marcketplace/board-solutions.html#rzg2>`__ 40*54fd6939SJiyong Park 41*54fd6939SJiyong ParkThe current TF-A port has been tested on the HiHope RZ/G2M 42*54fd6939SJiyong ParkSoC_id r8a774a1 revision ES1.3. 43*54fd6939SJiyong Park 44*54fd6939SJiyong Park 45*54fd6939SJiyong Park:: 46*54fd6939SJiyong Park 47*54fd6939SJiyong Park ARM CA57 (ARMv8) 1.5 GHz dual core, with NEON/VFPv4, L1$ I/D 48K/32K, L2$ 1MB 48*54fd6939SJiyong Park ARM CA53 (ARMv8) 1.2 GHz quad core, with NEON/VFPv4, L1$ I/D 32K/32K, L2$ 512K 49*54fd6939SJiyong Park Memory controller for LPDDR4-3200 4GB in 2 channels(32-bit bus mode) 50*54fd6939SJiyong Park Two- and three-dimensional graphics engines, 51*54fd6939SJiyong Park Video processing units, 52*54fd6939SJiyong Park Display Output, 53*54fd6939SJiyong Park Video Input, 54*54fd6939SJiyong Park SD card host interface, 55*54fd6939SJiyong Park USB3.0 and USB2.0 interfaces, 56*54fd6939SJiyong Park CAN interfaces, 57*54fd6939SJiyong Park Ethernet AVB, 58*54fd6939SJiyong Park Wi-Fi + BT, 59*54fd6939SJiyong Park PCI Express Interfaces, 60*54fd6939SJiyong Park Memories 61*54fd6939SJiyong Park INTERNAL 384KB SYSTEM RAM 62*54fd6939SJiyong Park DDR 4 GB LPDDR4 63*54fd6939SJiyong Park QSPI FLASH 64MB 64*54fd6939SJiyong Park EMMC 32 GB EMMC (HS400 240 MBYTES/S) 65*54fd6939SJiyong Park MICROSD-CARD SLOT (SDR104 100 MBYTES/S) 66*54fd6939SJiyong Park 67*54fd6939SJiyong ParkOverview 68*54fd6939SJiyong Park-------- 69*54fd6939SJiyong ParkOn RZ/G2 SoCs the BOOTROM starts the cpu at EL3; for this port BL2 70*54fd6939SJiyong Parkwill therefore be entered at this exception level (the Renesas' ATF 71*54fd6939SJiyong Parkreference tree [1] resets into EL1 before entering BL2 - see its 72*54fd6939SJiyong Parkbl2.ld.S) 73*54fd6939SJiyong Park 74*54fd6939SJiyong ParkBL2 initializes DDR before determining the boot reason (cold or warm). 75*54fd6939SJiyong Park 76*54fd6939SJiyong ParkOnce BL2 boots, it determines the boot reason, writes it to shared 77*54fd6939SJiyong Parkmemory (BOOT_KIND_BASE) together with the BL31 parameters 78*54fd6939SJiyong Park(PARAMS_BASE) and jumps to BL31. 79*54fd6939SJiyong Park 80*54fd6939SJiyong ParkTo all effects, BL31 is as if it is being entered in reset mode since 81*54fd6939SJiyong Parkit still needs to initialize the rest of the cores; this is the reason 82*54fd6939SJiyong Parkbehind using direct shared memory access to BOOT_KIND_BASE _and_ 83*54fd6939SJiyong ParkPARAMS_BASE instead of using registers to get to those locations (see 84*54fd6939SJiyong Parkel3_common_macros.S and bl31_entrypoint.S for the RESET_TO_BL31 use 85*54fd6939SJiyong Parkcase). 86*54fd6939SJiyong Park 87*54fd6939SJiyong Park[1] https://github.com/renesas-rz/meta-rzg2/tree/BSP-1.0.5/recipes-bsp/arm-trusted-firmware/files 88*54fd6939SJiyong Park 89*54fd6939SJiyong Park 90*54fd6939SJiyong ParkHow to build 91*54fd6939SJiyong Park------------ 92*54fd6939SJiyong Park 93*54fd6939SJiyong ParkThe TF-A build options depend on the target board so you will have to 94*54fd6939SJiyong Parkrefer to those specific instructions. What follows is customized to 95*54fd6939SJiyong Parkthe HiHope RZ/G2M development kit used in this port. 96*54fd6939SJiyong Park 97*54fd6939SJiyong ParkBuild Tested: 98*54fd6939SJiyong Park~~~~~~~~~~~~~ 99*54fd6939SJiyong Park 100*54fd6939SJiyong Park.. code:: bash 101*54fd6939SJiyong Park 102*54fd6939SJiyong Park make bl2 bl31 rzg LOG_LEVEL=40 PLAT=rzg LSI=G2M RCAR_DRAM_SPLIT=2\ 103*54fd6939SJiyong Park RCAR_LOSSY_ENABLE=1 SPD="none" MBEDTLS_DIR=$mbedtls 104*54fd6939SJiyong Park 105*54fd6939SJiyong ParkSystem Tested: 106*54fd6939SJiyong Park~~~~~~~~~~~~~~ 107*54fd6939SJiyong Park* mbed_tls: 108*54fd6939SJiyong Park [email protected]:ARMmbed/mbedtls.git [devel] 109*54fd6939SJiyong Park 110*54fd6939SJiyong Park| commit 72ca39737f974db44723760623d1b29980c00a88 111*54fd6939SJiyong Park| Merge: ef94c4fcf dd9ec1c57 112*54fd6939SJiyong Park| Author: Janos Follath <[email protected]> 113*54fd6939SJiyong Park| Date: Wed Oct 7 09:21:01 2020 +0100 114*54fd6939SJiyong Park 115*54fd6939SJiyong Park* u-boot: 116*54fd6939SJiyong Park The port has beent tested using mainline uboot with HiHope RZ/G2M board 117*54fd6939SJiyong Park specific patches. 118*54fd6939SJiyong Park 119*54fd6939SJiyong Park| commit 46ce9e777c1314ccb78906992b94001194eaa87b 120*54fd6939SJiyong Park| Author: Heiko Schocher <[email protected]> 121*54fd6939SJiyong Park| Date: Tue Nov 3 15:22:36 2020 +0100 122*54fd6939SJiyong Park 123*54fd6939SJiyong Park* linux: 124*54fd6939SJiyong Park The port has beent tested using mainline kernel. 125*54fd6939SJiyong Park 126*54fd6939SJiyong Park| commit f8394f232b1eab649ce2df5c5f15b0e528c92091 127*54fd6939SJiyong Park| Author: Linus Torvalds <[email protected]> 128*54fd6939SJiyong Park| Date: Sun Nov 8 16:10:16 2020 -0800 129*54fd6939SJiyong Park| Linux 5.10-rc3 130*54fd6939SJiyong Park 131*54fd6939SJiyong ParkTF-A Build Procedure 132*54fd6939SJiyong Park~~~~~~~~~~~~~~~~~~~~ 133*54fd6939SJiyong Park 134*54fd6939SJiyong Park- Fetch all the above 3 repositories. 135*54fd6939SJiyong Park 136*54fd6939SJiyong Park- Prepare the AARCH64 toolchain. 137*54fd6939SJiyong Park 138*54fd6939SJiyong Park- Build u-boot using hihope_rzg2_defconfig. 139*54fd6939SJiyong Park 140*54fd6939SJiyong Park Result: u-boot-elf.srec 141*54fd6939SJiyong Park 142*54fd6939SJiyong Park.. code:: bash 143*54fd6939SJiyong Park 144*54fd6939SJiyong Park make CROSS_COMPILE=aarch64-linux-gnu- 145*54fd6939SJiyong Park hihope_rzg2_defconfig 146*54fd6939SJiyong Park 147*54fd6939SJiyong Park make CROSS_COMPILE=aarch64-linux-gnu- 148*54fd6939SJiyong Park 149*54fd6939SJiyong Park- Build TF-A 150*54fd6939SJiyong Park 151*54fd6939SJiyong Park Result: bootparam_sa0.srec, cert_header_sa6.srec, bl2.srec, bl31.srec 152*54fd6939SJiyong Park 153*54fd6939SJiyong Park.. code:: bash 154*54fd6939SJiyong Park 155*54fd6939SJiyong Park make bl2 bl31 rzg LOG_LEVEL=40 PLAT=rzg LSI=G2M RCAR_DRAM_SPLIT=2\ 156*54fd6939SJiyong Park RCAR_LOSSY_ENABLE=1 SPD="none" MBEDTLS_DIR=$mbedtls 157*54fd6939SJiyong Park 158*54fd6939SJiyong Park 159*54fd6939SJiyong ParkInstall Procedure 160*54fd6939SJiyong Park~~~~~~~~~~~~~~~~~ 161*54fd6939SJiyong Park 162*54fd6939SJiyong Park- Boot the board in Mini-monitor mode and enable access to the 163*54fd6939SJiyong Park QSPI flash. 164*54fd6939SJiyong Park 165*54fd6939SJiyong Park 166*54fd6939SJiyong Park- Use the flash_writer utility[2] to flash all the SREC files. 167*54fd6939SJiyong Park 168*54fd6939SJiyong Park[2] https://github.com/renesas-rz/rzg2_flash_writer 169*54fd6939SJiyong Park 170*54fd6939SJiyong Park 171*54fd6939SJiyong ParkBoot trace 172*54fd6939SJiyong Park---------- 173*54fd6939SJiyong Park:: 174*54fd6939SJiyong Park 175*54fd6939SJiyong Park INFO: ARM GICv2 driver initialized 176*54fd6939SJiyong Park NOTICE: BL2: RZ/G2 Initial Program Loader(CA57) Rev.2.0.6 177*54fd6939SJiyong Park NOTICE: BL2: PRR is RZ/G2M Ver.1.3 178*54fd6939SJiyong Park NOTICE: BL2: Board is HiHope RZ/G2M Rev.4.0 179*54fd6939SJiyong Park NOTICE: BL2: Boot device is QSPI Flash(40MHz) 180*54fd6939SJiyong Park NOTICE: BL2: LCM state is unknown 181*54fd6939SJiyong Park NOTICE: BL2: DDR3200(rev.0.40) 182*54fd6939SJiyong Park NOTICE: BL2: [COLD_BOOT] 183*54fd6939SJiyong Park NOTICE: BL2: DRAM Split is 2ch 184*54fd6939SJiyong Park NOTICE: BL2: QoS is default setting(rev.0.19) 185*54fd6939SJiyong Park NOTICE: BL2: DRAM refresh interval 1.95 usec 186*54fd6939SJiyong Park NOTICE: BL2: Periodic Write DQ Training 187*54fd6939SJiyong Park NOTICE: BL2: CH0: 400000000 - 47fffffff, 2 GiB 188*54fd6939SJiyong Park NOTICE: BL2: CH2: 600000000 - 67fffffff, 2 GiB 189*54fd6939SJiyong Park NOTICE: BL2: Lossy Decomp areas 190*54fd6939SJiyong Park NOTICE: Entry 0: DCMPAREACRAx:0x80000540 DCMPAREACRBx:0x570 191*54fd6939SJiyong Park NOTICE: Entry 1: DCMPAREACRAx:0x40000000 DCMPAREACRBx:0x0 192*54fd6939SJiyong Park NOTICE: Entry 2: DCMPAREACRAx:0x20000000 DCMPAREACRBx:0x0 193*54fd6939SJiyong Park NOTICE: BL2: FDT at 0xe631db30 194*54fd6939SJiyong Park NOTICE: BL2: v2.3(release):v2.4-rc0-2-g1433701e5 195*54fd6939SJiyong Park NOTICE: BL2: Built : 13:45:26, Nov 7 2020 196*54fd6939SJiyong Park NOTICE: BL2: Normal boot 197*54fd6939SJiyong Park INFO: BL2: Doing platform setup 198*54fd6939SJiyong Park INFO: BL2: Loading image id 3 199*54fd6939SJiyong Park NOTICE: BL2: dst=0xe631d200 src=0x8180000 len=512(0x200) 200*54fd6939SJiyong Park NOTICE: BL2: dst=0x43f00000 src=0x8180400 len=6144(0x1800) 201*54fd6939SJiyong Park WARNING: r-car ignoring the BL31 size from certificate,using RCAR_TRUSTED_SRAM_SIZE instead 202*54fd6939SJiyong Park INFO: Loading image id=3 at address 0x44000000 203*54fd6939SJiyong Park NOTICE: rcar_file_len: len: 0x0003e000 204*54fd6939SJiyong Park NOTICE: BL2: dst=0x44000000 src=0x81c0000 len=253952(0x3e000) 205*54fd6939SJiyong Park INFO: Image id=3 loaded: 0x44000000 - 0x4403e000 206*54fd6939SJiyong Park INFO: BL2: Loading image id 5 207*54fd6939SJiyong Park INFO: Loading image id=5 at address 0x50000000 208*54fd6939SJiyong Park NOTICE: rcar_file_len: len: 0x00100000 209*54fd6939SJiyong Park NOTICE: BL2: dst=0x50000000 src=0x8300000 len=1048576(0x100000) 210*54fd6939SJiyong Park INFO: Image id=5 loaded: 0x50000000 - 0x50100000 211*54fd6939SJiyong Park NOTICE: BL2: Booting BL31 212*54fd6939SJiyong Park INFO: Entry point address = 0x44000000 213*54fd6939SJiyong Park INFO: SPSR = 0x3cd 214*54fd6939SJiyong Park 215*54fd6939SJiyong Park 216*54fd6939SJiyong Park U-Boot 2021.01-rc1-00244-gac37e14fbd (Nov 04 2020 - 20:03:34 +0000) 217*54fd6939SJiyong Park 218*54fd6939SJiyong Park CPU: Renesas Electronics R8A774A1 rev 1.3 219*54fd6939SJiyong Park Model: HopeRun HiHope RZ/G2M with sub board 220*54fd6939SJiyong Park DRAM: 3.9 GiB 221*54fd6939SJiyong Park MMC: mmc@ee100000: 0, mmc@ee160000: 1 222*54fd6939SJiyong Park Loading Environment from MMC... OK 223*54fd6939SJiyong Park In: serial@e6e88000 224*54fd6939SJiyong Park Out: serial@e6e88000 225*54fd6939SJiyong Park Err: serial@e6e88000 226*54fd6939SJiyong Park Net: eth0: ethernet@e6800000 227*54fd6939SJiyong Park Hit any key to stop autoboot: 0 228*54fd6939SJiyong Park => 229