xref: /aosp_15_r20/external/arm-trusted-firmware/docs/plat/rz-g2.rst (revision 54fd6939e177f8ff529b10183254802c76df6d08)
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