xref: /openbmc/u-boot/doc/README.sha1 (revision 6de80f2196cb7b7a2c550a636404c54cf532fc17)
196e1d75bSHeiko SchocherSHA1 usage:
296e1d75bSHeiko Schocher-----------
396e1d75bSHeiko Schocher
496e1d75bSHeiko SchocherIn the U-Boot Image for the pcs440ep board is a SHA1 checksum integrated.
596e1d75bSHeiko SchocherThis SHA1 sum is used, to check, if the U-Boot Image in Flash is not
696e1d75bSHeiko Schochercorrupted.
796e1d75bSHeiko Schocher
896e1d75bSHeiko SchocherThe following command is available:
996e1d75bSHeiko Schocher
1096e1d75bSHeiko Schocher=> help sha1
1196e1d75bSHeiko Schochersha1 address len [addr]  calculate the SHA1 sum [save at addr]
1296e1d75bSHeiko Schocher     -p calculate the SHA1 sum from the U-Boot image in flash and print
1396e1d75bSHeiko Schocher     -c check the U-Boot image in flash
1496e1d75bSHeiko Schocher
1596e1d75bSHeiko Schocher"sha1 -p"
1696e1d75bSHeiko Schocher	calculates and prints the SHA1 sum, from the Image stored in Flash
1796e1d75bSHeiko Schocher
1896e1d75bSHeiko Schocher"sha1 -c"
1996e1d75bSHeiko Schocher	check, if the SHA1 sum from the Image stored in Flash is correct
2096e1d75bSHeiko Schocher
2196e1d75bSHeiko Schocher
2296e1d75bSHeiko SchocherIt is possible to calculate a SHA1 checksum from a memoryrange with:
2396e1d75bSHeiko Schocher
2496e1d75bSHeiko Schocher"sha1 address len"
2596e1d75bSHeiko Schocher
2696e1d75bSHeiko SchocherIf you want to store a new Image in Flash for the pcs440ep board,
2796e1d75bSHeiko Schocherwhich has no SHA1 sum, you can do the following:
2896e1d75bSHeiko Schocher
2996e1d75bSHeiko Schochera) cp the new Image on a position in RAM (here 0x300000)
3096e1d75bSHeiko Schocher   (for this example we use the Image from Flash, stored at 0xfffa0000 and
3196e1d75bSHeiko Schocher    0x60000 Bytes long)
3296e1d75bSHeiko Schocher
3396e1d75bSHeiko Schocher"cp.b fffa0000 300000 60000"
3496e1d75bSHeiko Schocher
3596e1d75bSHeiko Schocherb) Initialize the SHA1 sum in the Image with 0x00
3696e1d75bSHeiko Schocher   The SHA1 sum is stored in Flash at:
376d0f6bcfSJean-Christophe PLAGNIOL-VILLARD			   CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN + SHA1_SUM_POS
3896e1d75bSHeiko Schocher   for the pcs440ep Flash:	 0xfffa0000 +	      0x60000 +        -0x20
3996e1d75bSHeiko Schocher			    = 0xffffffe0
4096e1d75bSHeiko Schocher   for the example in RAM:	   0x300000 +	      0x60000 +        -0x20
4196e1d75bSHeiko Schocher			    = 0x35ffe0
4296e1d75bSHeiko Schocher
4396e1d75bSHeiko Schocher   note: a SHA1 checksum is 20 bytes long.
4496e1d75bSHeiko Schocher
4596e1d75bSHeiko Schocher"mw.b 35ffe0 0 14"
4696e1d75bSHeiko Schocher
4796e1d75bSHeiko Schocherc) now calculate the SHA1 sum from the memoryrange and write
4896e1d75bSHeiko Schocher   the calculated checksum at the right place:
4996e1d75bSHeiko Schocher
5096e1d75bSHeiko Schocher"sha1 300000 60000 35ffe0"
5196e1d75bSHeiko Schocher
5296e1d75bSHeiko SchocherNow you have a U-Boot-Image for the pcs440ep board with the correct SHA1 sum.
5396e1d75bSHeiko Schocher
54*6de80f21SSimon GlassIf you do a "buildman -k pcs440ep" or a "make all" to get the U-Boot image,
55*6de80f21SSimon Glasswhich will be found in ../current/ipam390/ - the correct SHA1 sum will be
56*6de80f21SSimon Glassautomagically included in the U-Boot image.
5796e1d75bSHeiko Schocher
5896e1d75bSHeiko SchocherHeiko Schocher, 11 Jul 2007
59