| 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 |