| SHA1 usage: | |
| ----------- | |
| In the U-Boot Image for the pcs440ep board is a SHA1 checksum integrated. | |
| This SHA1 sum is used, to check, if the U-Boot Image in Flash is not | |
| corrupted. | |
| The following command is available: | |
| => help sha1 | |
| sha1 address len [addr] calculate the SHA1 sum [save at addr] | |
| -p calculate the SHA1 sum from the U-Boot image in flash and print | |
| -c check the U-Boot image in flash | |
| "sha1 -p" | |
| calculates and prints the SHA1 sum, from the Image stored in Flash | |
| "sha1 -c" | |
| check, if the SHA1 sum from the Image stored in Flash is correct | |
| It is possible to calculate a SHA1 checksum from a memoryrange with: | |
| "sha1 address len" | |
| If you want to store a new Image in Flash for the pcs440ep board, | |
| which has no SHA1 sum, you can do the following: | |
| a) cp the new Image on a position in RAM (here 0x300000) | |
| (for this example we use the Image from Flash, stored at 0xfffa0000 and | |
| 0x60000 Bytes long) | |
| "cp.b fffa0000 300000 60000" | |
| b) Initialize the SHA1 sum in the Image with 0x00 | |
| The SHA1 sum is stored in Flash at: | |
| CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN + SHA1_SUM_POS | |
| for the pcs440ep Flash: 0xfffa0000 + 0x60000 + -0x20 | |
| = 0xffffffe0 | |
| for the example in RAM: 0x300000 + 0x60000 + -0x20 | |
| = 0x35ffe0 | |
| note: a SHA1 checksum is 20 bytes long. | |
| "mw.b 35ffe0 0 14" | |
| c) now calculate the SHA1 sum from the memoryrange and write | |
| the calculated checksum at the right place: | |
| "sha1 300000 60000 35ffe0" | |
| Now you have a U-Boot-Image for the pcs440ep board with the correct SHA1 sum. | |
| If you do a "./MAKEALL pcs440ep" or a "make all" to get the U-Boot image, | |
| the correct SHA1 sum will be automagically included in the U-Boot image. | |
| Heiko Schocher, 11 Jul 2007 |