blob: aa7080e26cdcec24c3579b40a1eeb27a38d73e59 [file] [log] [blame]
Masami Hiramatsu7c741272021-06-04 18:45:10 +09001.. SPDX-License-Identifier: GPL-2.0+
2
3Introduction
4============
5
6DeveloperBox is a certified 96boards Enterprise Edition board. The board/SoC has: -
7
8* Socionext SC2A11 24-cores ARM Cortex-A53 on tbe Mini-ATX form factor motherboard
9* 4 DIMM slots (4GB DDR4-2400 UDIMM shipped by default)
10* 1 4xPCIe Gen2 slot and 2 1xPCIe Gen2 slots
11 (1x slots are connected via PCIe bridge chip)
12* 4 USB-3.0 ports
13* 2 SATA ports
14* 1 GbE network port
15* 1 USB-UART serial port (micro USB)
16* 64MB SPI NOR Flash
17* 8GB eMMC Flash Storage
18* 96boards LS connector
19
20The DeveloperBox schematic can be found here: -
21https://www.96boards.org/documentation/enterprise/developerbox/hardware-docs/mzsc2am_v03_20180115_a.pdf
22
23And the other documents can be found here: -
24https://www.96boards.org/documentation/enterprise/developerbox/
25
26
27Currently, the U-Boot port supports: -
28
29* USB
30* eMMC
31* SPI-NOR
32* SATA
33* GbE
34
35The DeveloperBox boots the TF-A and EDK2 as a main bootloader by default.
36The DeveloperBox U-Boot port will replace the EDK2 and boot from TF-A as
37BL33, but no need to combine with it.
38
39Compile from source
40===================
41
42You can build U-Boot without any additinal source code.::
43
44 cd u-boot
45 export ARCH=arm64
46 export CROSS_COMPILE=aarch64-linux-gnu-
47 make SynQuacer_defconfig
48 make -j `noproc`
49
50Then, expand the binary to 1MB for preparing flash.::
51
52 cp u-boot.bin SPI_NOR_UBOOT.fd
53 truncate -s 1M SPI_NOR_UBOOT.fd
54
55Installation
56============
57
58You can install the SNI_NOR_UBOOT.fd via NOR flash writer.
59
Jassi Brareeee4322023-05-31 00:29:56 -050060Flashing the U-Boot image on DeveloperBox requires a 96boards UART mezzanine
61or other mezzanine which can connect to the LS-UART0 port.
62Connect USB cable from host to the LS-UART0 and set DSW2-7 to ON, and turn the
63board on again. The flash writer program will be started automatically;
64don't forget to turn the DSW2-7 off again after flashing.
Masami Hiramatsu7c741272021-06-04 18:45:10 +090065
Jassi Brareeee4322023-05-31 00:29:56 -050066*!!CAUTION!! If you write the U-Boot image on wrong address, the board can
67be bricked. See below page if you need to recover the bricked board. See
68the following page for more details*
Masami Hiramatsu7c741272021-06-04 18:45:10 +090069
70https://www.96boards.org/documentation/enterprise/developerbox/installation/board-recovery.md.html
71
Jassi Brareeee4322023-05-31 00:29:56 -050072When the serial flasher is running correctly it will show the following boot
73messages printed to the LS-UART0 console::
Masami Hiramatsu7c741272021-06-04 18:45:10 +090074
75
76 /*------------------------------------------*/
77 /* SC2A11 "SynQuacer" series Flash writer */
78 /* */
79 /* Version: cd254ac */
80 /* Build: 12/15/17 11:25:45 */
81 /*------------------------------------------*/
82
83 Command Input >
84
85Once the flasher tool is running we are ready flash the UEFI image::
86
87 flash rawwrite 200000 100000
88 >> Send SPI_NOR_UBOOT.fd via XMODEM (Control-A S in minicom) <<
89
Jassi Brareeee4322023-05-31 00:29:56 -050090*!!NOTE!! The flasher command parameter is different from the command for
91board recovery. U-Boot uses the offset 200000 (2-five-0, 2M in hex) and the
92size 100000 (1-five-0, 1M in hex).*
Masami Hiramatsu7c741272021-06-04 18:45:10 +090093
Jassi Brareeee4322023-05-31 00:29:56 -050094After transferring the SPI_NOR_UBOOT.fd, turn off the DSW2-7 and
95reset the board.
96
97
98Enable FWU Multi Bank Update
99============================
100
101DeveloperBox supports the FWU Multi Bank Update. You *MUST* update both
102*SCP firmware* and *TF-A* for this feature. This will change the layout and
103the boot process but you can switch back to the normal one by changing
104the DSW 1-4 off.
105
106Configure U-Boot
107----------------
108
109To enable the FWU Multi Bank Update on the DeveloperBox board the
110configs/synquacer_developerbox_defconfig enables default FWU configuration ::
111
112 CONFIG_FWU_MULTI_BANK_UPDATE=y
113 CONFIG_FWU_MDATA=y
114 CONFIG_FWU_MDATA_MTD=y
115 CONFIG_FWU_NUM_BANKS=2
116 CONFIG_FWU_NUM_IMAGES_PER_BANK=1
117 CONFIG_CMD_FWU_METADATA=y
118
119And build it::
120
121 cd u-boot/
122 export ARCH=arm64
123 export CROSS_COMPILE=aarch64-linux-gnu-
124 make synquacer_developerbox_defconfig
125 make -j `noproc`
126 cd ../
127
128By default, the CONFIG_FWU_NUM_BANKS and CONFIG_FWU_NUM_IMAGES_PER_BANKS are
129set to 2 and 1 respectively. This uses FIP (Firmware Image Package) type image
130which contains TF-A, U-Boot and OP-TEE (the OP-TEE is optional).
131You can use fiptool to compose the FIP image from those firmware images.
132
133Rebuild SCP firmware
134--------------------
135
136Rebuild SCP firmware which supports FWU Multi Bank Update as below::
137
138 cd SCP-firmware/
139 OUT=./build/product/synquacer
140 ROMFW_FILE=$OUT/scp_romfw/$SCP_BUILD_MODE/bin/scp_romfw.bin
141 RAMFW_FILE=$OUT/scp_ramfw/$SCP_BUILD_MODE/bin/scp_ramfw.bin
142 ROMRAMFW_FILE=scp_romramfw_release.bin
143
144 make CC=arm-none-eabi-gcc PRODUCT=synquacer MODE=release
145 tr "\000" "\377" < /dev/zero | dd of=${ROMRAMFW_FILE} bs=1 count=196608
146 dd if=${ROMFW_FILE} of=${ROMRAMFW_FILE} bs=1 conv=notrunc seek=0
147 dd if=${RAMFW_FILE} of=${ROMRAMFW_FILE} bs=1 seek=65536
148 cd ../
149
150And you can get the `scp_romramfw_release.bin` file.
151
152Rebuild OPTEE firmware
153----------------------
154
155Rebuild OPTEE to use in new-layout FIP as below::
156
157 cd optee_os/
158 make -j`nproc` PLATFORM=synquacer ARCH=arm \
159 CROSS_COMPILE64=aarch64-linux-gnu- CFG_ARM64_core=y \
160 CFG_CRYPTO_WITH_CE=y CFG_CORE_HEAP_SIZE=524288 CFG_CORE_DYN_SHM=y \
161 CFG_CORE_ARM64_PA_BITS=48 CFG_TEE_CORE_LOG_LEVEL=1 CFG_TEE_TA_LOG_LEVEL=1
162 cp out/arm-plat-synquacer/core/tee-pager_v2.bin ../arm-trusted-firmware/
163
164The produced `tee-pager_v2.bin` is to be used while building TF-A next.
165
166
167Rebuild TF-A and FIP
168--------------------
169
170Rebuild TF-A which supports FWU Multi Bank Update as below::
171
172 cd arm-trusted-firmware/
173 make CROSS_COMPILE=aarch64-linux-gnu- -j`nproc` PLAT=synquacer \
174 TRUSTED_BOARD_BOOT=1 SPD=opteed SQ_RESET_TO_BL2=1 GENERATE_COT=1 \
175 MBEDTLS_DIR=../mbedtls BL32=tee-pager_v2.bin \
176 BL33=../u-boot/u-boot.bin all fip fiptool
177
178And make a FIP image.::
179
180 cp build/synquacer/release/fip.bin SPI_NOR_NEWFIP.fd
181 tools/fiptool/fiptool update --tb-fw build/synquacer/release/bl2.bin SPI_NOR_NEWFIP.fd
182
183UUIDs for the FWU Multi Bank Update
184-----------------------------------
185
186FWU multi-bank update requires some UUIDs. The DeveloperBox platform uses
187following UUIDs.
188
189 - Location UUID for the FIP image: 17e86d77-41f9-4fd7-87ec-a55df9842de5
190 - Image type UUID for the FIP image: 10c36d7d-ca52-b843-b7b9-f9d6c501d108
191 - Image UUID for Bank0 : 5a66a702-99fd-4fef-a392-c26e261a2828
192 - Image UUID for Bank1 : a8f868a1-6e5c-4757-878d-ce63375ef2c0
193
194These UUIDs are used for making a FWU metadata image.
195
196u-boot$ ./tools/mkfwumdata -i 1 -b 2 \
197 17e86d77-41f9-4fd7-87ec-a55df9842de5,10c36d7d-ca52-b843-b7b9-f9d6c501d108,5a66a702-99fd-4fef-a392-c26e261a2828,a8f868a1-6e5c-4757-878d-ce63375ef2c0 \
198 ../devbox-fwu-mdata.img
199
200Create Accept & Revert capsules
201
202u-boot$ ./tools/mkeficapsule -A -g 7d6dc310-52ca-43b8-b7b9-f9d6c501d108 NEWFIP_accept.Cap
203u-boot$ ./tools/mkeficapsule -R NEWFIP_revert.Cap
204
205Install via flash writer
206------------------------
207
208As explained in above section, the new FIP image and the FWU metadata image
209can be installed via NOR flash writer.
210
211Once the flasher tool is running we are ready to flash the images.::
212Write the FIP image to the Bank-0 & 1 at 6MB and 10MB offset.::
213
214 flash rawwrite 600000 180000
215 flash rawwrite a00000 180000
216 >> Send SPI_NOR_NEWFIP.fd via XMODEM (Control-A S in minicom) <<
217
218 flash rawwrite 500000 1000
219 flash rawwrite 530000 1000
220 >> Send devbox-fwu-mdata.img via XMODEM (Control-A S in minicom) <<
221
222And write the new SCP firmware.::
223
224 flash write cm3
225 >> Send scp_romramfw_release.bin via XMODEM (Control-A S in minicom) <<
Masami Hiramatsu7c741272021-06-04 18:45:10 +0900226
Jassi Brareeee4322023-05-31 00:29:56 -0500227At last, turn on the DSW 3-4 on the board, and reboot.
228Note that if DSW 3-4 is turned off, the DeveloperBox will boot from
229the original EDK2 firmware (or non-FWU U-Boot if you already installed).