xref: /openbmc/u-boot/doc/README.uniphier (revision 9e19031ca3d019f99239ce48508f91b105d68d5e)
17168da16SMasahiro YamadaU-Boot for UniPhier SoC family
27168da16SMasahiro Yamada==============================
37168da16SMasahiro Yamada
47168da16SMasahiro Yamada
512a5ce72SMasahiro YamadaRecommended toolchains
612a5ce72SMasahiro Yamada----------------------
77168da16SMasahiro Yamada
8673ac334SMasahiro YamadaThe UniPhier platform is well tested with Linaro toolchains.
97168da16SMasahiro YamadaYou can download pre-built toolchains from:
107168da16SMasahiro Yamada
117168da16SMasahiro Yamada    http://www.linaro.org/downloads/
127168da16SMasahiro Yamada
137168da16SMasahiro Yamada
147168da16SMasahiro YamadaCompile the source
157168da16SMasahiro Yamada------------------
167168da16SMasahiro Yamada
17673ac334SMasahiro YamadaThe source can be configured and built with the following commands:
187168da16SMasahiro Yamada
19673ac334SMasahiro Yamada    $ make <defconfig>
20673ac334SMasahiro Yamada    $ make CROSS_COMPILE=<toolchain-prefix> DEVICE_TREE=<device-tree>
217168da16SMasahiro Yamada
22673ac334SMasahiro YamadaThe recommended <toolchain-prefix> is `arm-linux-gnueabihf-` for 32bit SoCs,
23673ac334SMasahiro Yamada`aarch64-linux-gnu-` for 64bit SoCs, but you may wish to change it to use your
24673ac334SMasahiro Yamadafavorite compiler.
255fd3f434SMasahiro Yamada
26673ac334SMasahiro YamadaThe following tables show <defconfig> and <device-tree> for each board.
273365b4ebSMasahiro Yamada
28673ac334SMasahiro Yamada32bit SoC boards:
29c6c7eed7SMasahiro Yamada
30673ac334SMasahiro Yamada Board         | <defconfig>                 | <device-tree>
3181b9bb5fSMasahiro Yamada---------------|-----------------------------|------------------------------
32673ac334SMasahiro YamadaLD4 reference  | uniphier_ld4_sld8_defconfig | uniphier-ld4-ref (default)
33673ac334SMasahiro Yamadasld8 reference | uniphier_ld4_sld8_defconfig | uniphier-sld8-def
3481b9bb5fSMasahiro YamadaPro4 reference | uniphier_v7_defconfig       | uniphier-pro4-ref
3581b9bb5fSMasahiro YamadaPro4 Ace       | uniphier_v7_defconfig       | uniphier-pro4-ace
3681b9bb5fSMasahiro YamadaPro4 Sanji     | uniphier_v7_defconfig       | uniphier-pro4-sanji
3781b9bb5fSMasahiro YamadaPro5 4KBOX     | uniphier_v7_defconfig       | uniphier-pro5-4kbox
3881b9bb5fSMasahiro YamadaPXs2 Gentil    | uniphier_v7_defconfig       | uniphier-pxs2-gentil
3981b9bb5fSMasahiro YamadaPXs2 Vodka     | uniphier_v7_defconfig       | uniphier-pxs2-vodka (default)
4081b9bb5fSMasahiro YamadaLD6b reference | uniphier_v7_defconfig       | uniphier-ld6b-ref
41c6c7eed7SMasahiro Yamada
42673ac334SMasahiro Yamada64bit SoC boards:
43673ac334SMasahiro Yamada
44673ac334SMasahiro Yamada Board         | <defconfig>           | <device-tree>
45673ac334SMasahiro Yamada---------------|-----------------------|----------------------------
46673ac334SMasahiro YamadaLD11 reference | uniphier_v8_defconfig | uniphier-ld11-ref
47673ac334SMasahiro YamadaLD11 Global    | uniphier_v8_defconfig | uniphier-ld11-global
48673ac334SMasahiro YamadaLD20 reference | uniphier_v8_defconfig | uniphier-ld20-ref (default)
49673ac334SMasahiro YamadaLD20 Global    | uniphier_v8_defconfig | uniphier-ld20-global
5081b9bb5fSMasahiro YamadaPXs3 reference | uniphier_v8_defconfig | uniphier-pxs3-ref
51673ac334SMasahiro Yamada
52673ac334SMasahiro YamadaFor example, to compile the source for PXs2 Vodka board, run the following:
53673ac334SMasahiro Yamada
5481b9bb5fSMasahiro Yamada    $ make uniphier_v7_defconfig
55673ac334SMasahiro Yamada    $ make CROSS_COMPILE=arm-linux-gnueabihf- DEVICE_TREE=uniphier-pxs2-vodka
5628f40d4aSMasahiro Yamada
57673ac334SMasahiro YamadaThe device tree marked as (default) can be omitted.  `uniphier-pxs2-vodka` is
5881b9bb5fSMasahiro Yamadathe default device tree for the configuration `uniphier_v7_defconfig`, so the
5981b9bb5fSMasahiro Yamadafollowing gives the same result.
601a264534SMasahiro Yamada
6181b9bb5fSMasahiro Yamada    $ make uniphier_v7_defconfig
6212a5ce72SMasahiro Yamada    $ make CROSS_COMPILE=arm-linux-gnueabihf-
63019df879SMasahiro Yamada
64019df879SMasahiro Yamada
65673ac334SMasahiro YamadaBooting 32bit SoC boards
66673ac334SMasahiro Yamada------------------------
6712a5ce72SMasahiro Yamada
68673ac334SMasahiro YamadaThe build command will generate the following:
69673ac334SMasahiro Yamada- u-boot.bin
70673ac334SMasahiro Yamada- spl/u-boot.bin
7112a5ce72SMasahiro Yamada
72673ac334SMasahiro YamadaU-Boot can boot UniPhier 32bit SoC boards by itself.  Flash the generated images
73673ac334SMasahiro Yamadato the storage device (NAND or eMMC) on your board.
74d085ecd6SMasahiro Yamada
753cb9abc9SMasahiro Yamada - spl/u-boot-spl.bin at the offset address 0x00000000
76cf3175bcSMasahiro Yamada - u-boot.bin         at the offset address 0x00020000
77d085ecd6SMasahiro Yamada
78673ac334SMasahiro YamadaThe `u-boot-with-spl.bin` is the concatenation of the two (with appropriate
79673ac334SMasahiro Yamadapadding), so you can also do:
80d085ecd6SMasahiro Yamada
81d085ecd6SMasahiro Yamada - u-boot-with-spl.bin at the offset address 0x00000000
827168da16SMasahiro Yamada
837168da16SMasahiro YamadaIf a TFTP server is available, the images can be easily updated.
84d085ecd6SMasahiro YamadaJust copy the u-boot-spl.bin and u-boot.bin to the TFTP public directory,
85673ac334SMasahiro Yamadaand run the following command at the U-Boot command line:
86673ac334SMasahiro Yamada
87673ac334SMasahiro YamadaTo update the images in NAND:
887168da16SMasahiro Yamada
897168da16SMasahiro Yamada    => run nandupdate
907168da16SMasahiro Yamada
91673ac334SMasahiro YamadaTo update the images in eMMC:
92c231c436SMasahiro Yamada
93c231c436SMasahiro Yamada    => run emmcupdate
94c231c436SMasahiro Yamada
95c231c436SMasahiro Yamada
96673ac334SMasahiro YamadaBooting 64bit SoC boards
97673ac334SMasahiro Yamada------------------------
98673ac334SMasahiro Yamada
99673ac334SMasahiro YamadaThe build command will generate the following:
100673ac334SMasahiro Yamada- u-boot.bin
101673ac334SMasahiro Yamada
102673ac334SMasahiro YamadaHowever, U-Boot is not the first stage loader for UniPhier 64bit SoC boards.
103673ac334SMasahiro YamadaU-Boot serves as a non-secure boot loader loaded by [ARM Trusted Firmware],
104673ac334SMasahiro Yamadaso you need to provide the `u-boot.bin` to the build command of ARM Trusted
105673ac334SMasahiro YamadaFirmware.
106673ac334SMasahiro Yamada
107673ac334SMasahiro Yamada[ARM Trusted Firmware]: https://github.com/ARM-software/arm-trusted-firmware
108673ac334SMasahiro Yamada
109673ac334SMasahiro Yamada
110*9e19031cSMasahiro YamadaVerified Boot
111*9e19031cSMasahiro Yamada-------------
112*9e19031cSMasahiro Yamada
113*9e19031cSMasahiro YamadaU-Boot supports an image verification method called "Verified Boot".
114*9e19031cSMasahiro YamadaThis is a brief tutorial to utilize this feature for the UniPhier platform.
115*9e19031cSMasahiro YamadaYou will find details documents in the doc/uImage.FIT directory.
116*9e19031cSMasahiro Yamada
117*9e19031cSMasahiro YamadaHere, we take LD20 reference board for example, but it should work for any
118*9e19031cSMasahiro Yamadaother boards including 32 bit SoCs.
119*9e19031cSMasahiro Yamada
120*9e19031cSMasahiro Yamada1. Generate key to sign with
121*9e19031cSMasahiro Yamada
122*9e19031cSMasahiro Yamada  $ mkdir keys
123*9e19031cSMasahiro Yamada  $ openssl genpkey -algorithm RSA -out keys/dev.key \
124*9e19031cSMasahiro Yamada    -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537
125*9e19031cSMasahiro Yamada  $ openssl req -batch -new -x509 -key keys/dev.key -out keys/dev.crt
126*9e19031cSMasahiro Yamada
127*9e19031cSMasahiro YamadaTwo files "dev.key" and "dev.crt" will be created.  The base name is arbitrary,
128*9e19031cSMasahiro Yamadabut need to match to the "key-name-hint" property described below.
129*9e19031cSMasahiro Yamada
130*9e19031cSMasahiro Yamada2. Describe FIT source
131*9e19031cSMasahiro Yamada
132*9e19031cSMasahiro YamadaYou need to write an FIT (Flattened Image Tree) source file to describe the
133*9e19031cSMasahiro Yamadastructure of the image container.
134*9e19031cSMasahiro Yamada
135*9e19031cSMasahiro YamadaThe following is an example for a simple usecase:
136*9e19031cSMasahiro Yamada
137*9e19031cSMasahiro Yamada---------------------------------------->8----------------------------------------
138*9e19031cSMasahiro Yamada/dts-v1/;
139*9e19031cSMasahiro Yamada
140*9e19031cSMasahiro Yamada/ {
141*9e19031cSMasahiro Yamada	description = "Kernel, DTB and Ramdisk for UniPhier LD20 Reference Board";
142*9e19031cSMasahiro Yamada	#address-cells = <1>;
143*9e19031cSMasahiro Yamada
144*9e19031cSMasahiro Yamada	images {
145*9e19031cSMasahiro Yamada		kernel@0 {
146*9e19031cSMasahiro Yamada			description = "linux";
147*9e19031cSMasahiro Yamada			data = /incbin/("PATH/TO/YOUR/LINUX/DIR/arch/arm64/boot/Image.gz");
148*9e19031cSMasahiro Yamada			type = "kernel";
149*9e19031cSMasahiro Yamada			arch = "arm64";
150*9e19031cSMasahiro Yamada			os = "linux";
151*9e19031cSMasahiro Yamada			compression = "gzip";
152*9e19031cSMasahiro Yamada			load = <0x82080000>;
153*9e19031cSMasahiro Yamada			entry = <0x82080000>;
154*9e19031cSMasahiro Yamada			hash@0 {
155*9e19031cSMasahiro Yamada				algo = "sha256";
156*9e19031cSMasahiro Yamada			};
157*9e19031cSMasahiro Yamada		};
158*9e19031cSMasahiro Yamada
159*9e19031cSMasahiro Yamada		fdt@0 {
160*9e19031cSMasahiro Yamada			description = "fdt";
161*9e19031cSMasahiro Yamada			data = /incbin/("PATH/TO/YOUR/LINUX/DIR/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dtb");
162*9e19031cSMasahiro Yamada			type = "flat_dt";
163*9e19031cSMasahiro Yamada			arch = "arm64";
164*9e19031cSMasahiro Yamada			compression = "none";
165*9e19031cSMasahiro Yamada			hash@0 {
166*9e19031cSMasahiro Yamada				algo = "sha256";
167*9e19031cSMasahiro Yamada			};
168*9e19031cSMasahiro Yamada		};
169*9e19031cSMasahiro Yamada
170*9e19031cSMasahiro Yamada		ramdisk@0 {
171*9e19031cSMasahiro Yamada			description = "ramdisk";
172*9e19031cSMasahiro Yamada			data = /incbin/("PATH/TO/YOUR/ROOTFS/DIR/rootfs.cpio");
173*9e19031cSMasahiro Yamada			type = "ramdisk";
174*9e19031cSMasahiro Yamada			arch = "arm64";
175*9e19031cSMasahiro Yamada			os = "linux";
176*9e19031cSMasahiro Yamada			compression = "none";
177*9e19031cSMasahiro Yamada			hash@0 {
178*9e19031cSMasahiro Yamada				algo = "sha256";
179*9e19031cSMasahiro Yamada			};
180*9e19031cSMasahiro Yamada		};
181*9e19031cSMasahiro Yamada	};
182*9e19031cSMasahiro Yamada
183*9e19031cSMasahiro Yamada	configurations {
184*9e19031cSMasahiro Yamada		default = "config@0";
185*9e19031cSMasahiro Yamada
186*9e19031cSMasahiro Yamada		config@0 {
187*9e19031cSMasahiro Yamada			description = "Configuration0";
188*9e19031cSMasahiro Yamada			kernel = "kernel@0";
189*9e19031cSMasahiro Yamada			fdt = "fdt@0";
190*9e19031cSMasahiro Yamada			ramdisk = "ramdisk@0";
191*9e19031cSMasahiro Yamada			signature@0 {
192*9e19031cSMasahiro Yamada				algo = "sha256,rsa2048";
193*9e19031cSMasahiro Yamada				key-name-hint = "dev";
194*9e19031cSMasahiro Yamada				sign-images = "kernel", "fdt", "ramdisk";
195*9e19031cSMasahiro Yamada			};
196*9e19031cSMasahiro Yamada		};
197*9e19031cSMasahiro Yamada	};
198*9e19031cSMasahiro Yamada};
199*9e19031cSMasahiro Yamada---------------------------------------->8----------------------------------------
200*9e19031cSMasahiro Yamada
201*9e19031cSMasahiro YamadaYou need to change the three '/incbin/' lines, depending on the location of
202*9e19031cSMasahiro Yamadayour kernel image, device tree blob, and init ramdisk.  The "load" and "entry"
203*9e19031cSMasahiro Yamadaproperties also need to be adjusted if you want to change the physical placement
204*9e19031cSMasahiro Yamadaof the kernel.
205*9e19031cSMasahiro Yamada
206*9e19031cSMasahiro YamadaThe "key-name-hint" must specify the key name you have created in the step 1.
207*9e19031cSMasahiro Yamada
208*9e19031cSMasahiro YamadaThe FIT file name is arbitrary.  Let's say you saved it into "fit.its".
209*9e19031cSMasahiro Yamada
210*9e19031cSMasahiro Yamada3. Compile U-Boot with FIT and signature enabled
211*9e19031cSMasahiro Yamada
212*9e19031cSMasahiro YamadaTo use the Verified Boot, you need to enable the following two options:
213*9e19031cSMasahiro Yamada  CONFIG_FIT
214*9e19031cSMasahiro Yamada  CONFIG_FIT_SIGNATURE
215*9e19031cSMasahiro Yamada
216*9e19031cSMasahiro YamadaThey are disabled by default for UniPhier defconfig files.  So, you need to
217*9e19031cSMasahiro Yamadatweak the configuration from "make menuconfig" or friends.
218*9e19031cSMasahiro Yamada
219*9e19031cSMasahiro Yamada  $ make uniphier_v8_defconfig
220*9e19031cSMasahiro Yamada  $ make menuconfig
221*9e19031cSMasahiro Yamada      [ enable CONFIG_FIT and CONFIG_FIT_SIGNATURE ]
222*9e19031cSMasahiro Yamada  $ make CROSS_COMPILE=aarch64-linux-gnu-
223*9e19031cSMasahiro Yamada
224*9e19031cSMasahiro Yamada4. Build the image tree blob
225*9e19031cSMasahiro Yamada
226*9e19031cSMasahiro YamadaAfter building U-Boot, you will see tools/mkimage.  With this tool, you can
227*9e19031cSMasahiro Yamadacreate an image tree blob as follows:
228*9e19031cSMasahiro Yamada
229*9e19031cSMasahiro Yamada  $ tools/mkimage -f fit.its -k keys -K dts/dt.dtb -r -F fitImage
230*9e19031cSMasahiro Yamada
231*9e19031cSMasahiro YamadaThe -k option must specify the key directory you have created in step 1.
232*9e19031cSMasahiro Yamada
233*9e19031cSMasahiro YamadaA file "fitImage" will be created.  This includes kernel, DTB, Init-ramdisk,
234*9e19031cSMasahiro Yamadahash data for each of the three, and signature data.
235*9e19031cSMasahiro Yamada
236*9e19031cSMasahiro YamadaThe public key needed for the run-time verification is stored in "dts/dt.dtb".
237*9e19031cSMasahiro Yamada
238*9e19031cSMasahiro Yamada5. Compile U-Boot again
239*9e19031cSMasahiro Yamada
240*9e19031cSMasahiro YamadaSince the "dt.dtb" has been updated in step 4, you need to re-compile the
241*9e19031cSMasahiro YamadaU-Boot.
242*9e19031cSMasahiro Yamada
243*9e19031cSMasahiro Yamada  $ make CROSS_COMPILE=aarch64-linux-gnu-
244*9e19031cSMasahiro Yamada
245*9e19031cSMasahiro YamadaThe re-compiled "u-boot.bin" is appended with DTB that contains the public key.
246*9e19031cSMasahiro Yamada
247*9e19031cSMasahiro Yamada6. Flash the image
248*9e19031cSMasahiro Yamada
249*9e19031cSMasahiro YamadaFlash the "fitImage" to a storage device (NAND, eMMC, or whatever) on your
250*9e19031cSMasahiro Yamadaboard.
251*9e19031cSMasahiro Yamada
252*9e19031cSMasahiro YamadaPlease note the "u-boot.bin" must be signed, and verified by someone when it is
253*9e19031cSMasahiro Yamadaloaded.  For ARMv8 SoCs, the "someone" is generally ARM Trusted Firmware BL2.
254*9e19031cSMasahiro YamadaARM Trusted Firmware supports an image authentication mechanism called Trusted
255*9e19031cSMasahiro YamadaBoard Boot (TBB).  The verification process must be chained from the moment of
256*9e19031cSMasahiro Yamadathe system reset.  If the Chain of Trust has a breakage somewhere, the verified
257*9e19031cSMasahiro Yamadaboot process is entirely pointless.
258*9e19031cSMasahiro Yamada
259*9e19031cSMasahiro Yamada7. Boot verified kernel
260*9e19031cSMasahiro Yamada
261*9e19031cSMasahiro YamadaLoad the fitImage to memory and run the following from the U-Boot command line.
262*9e19031cSMasahiro Yamada
263*9e19031cSMasahiro Yamada  > bootm <addr>
264*9e19031cSMasahiro Yamada
265*9e19031cSMasahiro YamadaHere, <addr> is the base address of the fitImage.
266*9e19031cSMasahiro Yamada
267*9e19031cSMasahiro YamadaIf it is successful, you will see messages like follows:
268*9e19031cSMasahiro Yamada
269*9e19031cSMasahiro Yamada---------------------------------------->8----------------------------------------
270*9e19031cSMasahiro Yamada## Loading kernel from FIT Image at 84100000 ...
271*9e19031cSMasahiro Yamada   Using 'config@0' configuration
272*9e19031cSMasahiro Yamada   Verifying Hash Integrity ... sha256,rsa2048:dev+ OK
273*9e19031cSMasahiro Yamada   Trying 'kernel@0' kernel subimage
274*9e19031cSMasahiro Yamada     Description:  linux
275*9e19031cSMasahiro Yamada     Created:      2017-10-20  14:32:29 UTC
276*9e19031cSMasahiro Yamada     Type:         Kernel Image
277*9e19031cSMasahiro Yamada     Compression:  gzip compressed
278*9e19031cSMasahiro Yamada     Data Start:   0x841000c8
279*9e19031cSMasahiro Yamada     Data Size:    6957818 Bytes = 6.6 MiB
280*9e19031cSMasahiro Yamada     Architecture: AArch64
281*9e19031cSMasahiro Yamada     OS:           Linux
282*9e19031cSMasahiro Yamada     Load Address: 0x82080000
283*9e19031cSMasahiro Yamada     Entry Point:  0x82080000
284*9e19031cSMasahiro Yamada     Hash algo:    sha256
285*9e19031cSMasahiro Yamada     Hash value:   82a37b7f11ae55f4e07aa25bf77e4067cb9dc1014d52d6cd4d588f92eee3aaad
286*9e19031cSMasahiro Yamada   Verifying Hash Integrity ... sha256+ OK
287*9e19031cSMasahiro Yamada## Loading ramdisk from FIT Image at 84100000 ...
288*9e19031cSMasahiro Yamada   Using 'config@0' configuration
289*9e19031cSMasahiro Yamada   Trying 'ramdisk@0' ramdisk subimage
290*9e19031cSMasahiro Yamada     Description:  ramdisk
291*9e19031cSMasahiro Yamada     Created:      2017-10-20  14:32:29 UTC
292*9e19031cSMasahiro Yamada     Type:         RAMDisk Image
293*9e19031cSMasahiro Yamada     Compression:  uncompressed
294*9e19031cSMasahiro Yamada     Data Start:   0x847a5cc0
295*9e19031cSMasahiro Yamada     Data Size:    5264365 Bytes = 5 MiB
296*9e19031cSMasahiro Yamada     Architecture: AArch64
297*9e19031cSMasahiro Yamada     OS:           Linux
298*9e19031cSMasahiro Yamada     Load Address: unavailable
299*9e19031cSMasahiro Yamada     Entry Point:  unavailable
300*9e19031cSMasahiro Yamada     Hash algo:    sha256
301*9e19031cSMasahiro Yamada     Hash value:   44980a2874154a2e31ed59222c9f8ea968867637f35c81e4107a984de7014deb
302*9e19031cSMasahiro Yamada   Verifying Hash Integrity ... sha256+ OK
303*9e19031cSMasahiro Yamada## Loading fdt from FIT Image at 84100000 ...
304*9e19031cSMasahiro Yamada   Using 'config@0' configuration
305*9e19031cSMasahiro Yamada   Trying 'fdt@0' fdt subimage
306*9e19031cSMasahiro Yamada     Description:  fdt
307*9e19031cSMasahiro Yamada     Created:      2017-10-20  14:32:29 UTC
308*9e19031cSMasahiro Yamada     Type:         Flat Device Tree
309*9e19031cSMasahiro Yamada     Compression:  uncompressed
310*9e19031cSMasahiro Yamada     Data Start:   0x847a2cb0
311*9e19031cSMasahiro Yamada     Data Size:    12111 Bytes = 11.8 KiB
312*9e19031cSMasahiro Yamada     Architecture: AArch64
313*9e19031cSMasahiro Yamada     Hash algo:    sha256
314*9e19031cSMasahiro Yamada     Hash value:   c517099db537f6d325e6be46b25c871a41331ad5af0283883fd29d40bfc14e1d
315*9e19031cSMasahiro Yamada   Verifying Hash Integrity ... sha256+ OK
316*9e19031cSMasahiro Yamada   Booting using the fdt blob at 0x847a2cb0
317*9e19031cSMasahiro Yamada   Uncompressing Kernel Image ... OK
318*9e19031cSMasahiro Yamada   reserving fdt memory region: addr=80000000 size=2000000
319*9e19031cSMasahiro Yamada   Loading Device Tree to 000000009fffa000, end 000000009fffff4e ... OK
320*9e19031cSMasahiro Yamada
321*9e19031cSMasahiro YamadaStarting kernel ...
322*9e19031cSMasahiro Yamada---------------------------------------->8----------------------------------------
323*9e19031cSMasahiro Yamada
324*9e19031cSMasahiro YamadaPlease pay attention to the lines that start with "Verifying Hash Integrity".
325*9e19031cSMasahiro Yamada
326*9e19031cSMasahiro Yamada"Verifying Hash Integrity ... sha256,rsa2048:dev+ OK" means the signature check
327*9e19031cSMasahiro Yamadapassed.
328*9e19031cSMasahiro Yamada
329*9e19031cSMasahiro Yamada"Verifying Hash Integrity ... sha256+ OK" (3 times) means the hash check passed
330*9e19031cSMasahiro Yamadafor kernel, DTB, and Init ramdisk.
331*9e19031cSMasahiro Yamada
332*9e19031cSMasahiro YamadaIf they are not displayed, the Verified Boot is not working.
333*9e19031cSMasahiro Yamada
334*9e19031cSMasahiro Yamada
3357168da16SMasahiro YamadaUniPhier specific commands
3367168da16SMasahiro Yamada--------------------------
3377168da16SMasahiro Yamada
3387168da16SMasahiro Yamada - pinmon (enabled by CONFIG_CMD_PINMON)
3397168da16SMasahiro Yamada     shows the boot mode pins that has been latched at the power-on reset
3407168da16SMasahiro Yamada
3417168da16SMasahiro Yamada - ddrphy (enabled by CONFIG_CMD_DDRPHY_DUMP)
3427168da16SMasahiro Yamada     shows the DDR PHY parameters set by the PHY training
3437168da16SMasahiro Yamada
34412a5ce72SMasahiro Yamada - ddrmphy (enabled by CONFIG_CMD_DDRMPHY_DUMP)
34512a5ce72SMasahiro Yamada     shows the DDR Multi PHY parameters set by the PHY training
34612a5ce72SMasahiro Yamada
3477168da16SMasahiro Yamada
3487168da16SMasahiro YamadaSupported devices
3497168da16SMasahiro Yamada-----------------
3507168da16SMasahiro Yamada
3517168da16SMasahiro Yamada - UART (on-chip)
3527168da16SMasahiro Yamada - NAND
353a111bfbfSMasahiro Yamada - SD/eMMC
3541e7df7c4SMasahiro Yamada - USB 2.0 (EHCI)
3551e7df7c4SMasahiro Yamada - USB 3.0 (xHCI)
356b9a66b63SMasahiro Yamada - GPIO
3577168da16SMasahiro Yamada - LAN (on-board SMSC9118)
3587168da16SMasahiro Yamada - I2C
3597168da16SMasahiro Yamada - EEPROM (connected to the on-board I2C bus)
3607168da16SMasahiro Yamada - Support card (SRAM, NOR flash, some peripherals)
3617168da16SMasahiro Yamada
3627168da16SMasahiro Yamada
36362102beeSMasahiro YamadaMicro Support Card
36462102beeSMasahiro Yamada------------------
36562102beeSMasahiro Yamada
36662102beeSMasahiro YamadaThe recommended bit switch settings are as follows:
36762102beeSMasahiro Yamada
36862102beeSMasahiro Yamada SW2    OFF(1)/ON(0)   Description
36962102beeSMasahiro Yamada ------------------------------------------
37062102beeSMasahiro Yamada bit 1   <----         BKSZ[0]
37162102beeSMasahiro Yamada bit 2   ---->         BKSZ[1]
37262102beeSMasahiro Yamada bit 3   <----         SoC Bus Width 16/32
37362102beeSMasahiro Yamada bit 4   <----         SERIAL_SEL[0]
37462102beeSMasahiro Yamada bit 5   ---->         SERIAL_SEL[1]
37562102beeSMasahiro Yamada bit 6   ---->         BOOTSWAP_EN
37662102beeSMasahiro Yamada bit 7   <----         CS1/CS5
37762102beeSMasahiro Yamada bit 8   <----         SOC_SERIAL_DISABLE
37862102beeSMasahiro Yamada
37962102beeSMasahiro Yamada SW8    OFF(1)/ON(0)   Description
38062102beeSMasahiro Yamada ------------------------------------------
381e69514ccSMasahiro Yamada bit 1    <----        CS1_SPLIT
38262102beeSMasahiro Yamada bit 2    <----        CASE9_ON
38362102beeSMasahiro Yamada bit 3    <----        CASE10_ON
38462102beeSMasahiro Yamada bit 4  Don't Care     Reserve
38562102beeSMasahiro Yamada bit 5  Don't Care     Reserve
38662102beeSMasahiro Yamada bit 6  Don't Care     Reserve
38762102beeSMasahiro Yamada bit 7    ---->        BURST_EN
38862102beeSMasahiro Yamada bit 8    ---->        FLASHBUS32_16
38962102beeSMasahiro Yamada
39062102beeSMasahiro YamadaThe BKSZ[1:0] specifies the address range of memory slot and peripherals
39162102beeSMasahiro Yamadaas follows:
39262102beeSMasahiro Yamada
39362102beeSMasahiro Yamada BKSZ    Description              RAM slot            Peripherals
39462102beeSMasahiro Yamada --------------------------------------------------------------------
395c57a9a63SMasahiro Yamada 0b00   15MB RAM / 1MB Peri    00000000-00efffff    00f00000-00ffffff
396c57a9a63SMasahiro Yamada 0b01   31MB RAM / 1MB Peri    00000000-01efffff    01f00000-01ffffff
397c57a9a63SMasahiro Yamada 0b10   64MB RAM / 1MB Peri    00000000-03efffff    03f00000-03ffffff
398c57a9a63SMasahiro Yamada 0b11  127MB RAM / 1MB Peri    00000000-07efffff    07f00000-07ffffff
39962102beeSMasahiro Yamada
40062102beeSMasahiro YamadaSet BSKZ[1:0] to 0b01 for U-Boot.
40162102beeSMasahiro YamadaThis mode is the most handy because EA[24] is always supported by the save pin
40262102beeSMasahiro Yamadamode of the system bus.  On the other hand, EA[25] is not supported for some
40362102beeSMasahiro Yamadanewer SoCs.  Even if it is, EA[25] is not connected on most of the boards.
40462102beeSMasahiro Yamada
4057168da16SMasahiro Yamada--
40662102beeSMasahiro YamadaMasahiro Yamada <yamada.masahiro@socionext.com>
407*9e19031cSMasahiro YamadaOct. 2017
408