add uboot commands, add a link to tftp installation instruction.

pull/74/head
Paul Philippov 2023-02-10 19:56:36 -05:00
parent f7e3b29ef6
commit 12dde8de22
1 changed files with 68 additions and 0 deletions

View File

@ -10,10 +10,15 @@ For old firmware running `sysupgrade` without parameters is enough. For newer fi
__ATTENTION! Upgrading firmware can lead to "bricking" your camera. Make sure you are prepared both morally and skillwise. Have your rescue SD card and/or UART adapter ready. Be prepared to desolder and reprogram flash chip as the last resort. Do not upgrade production cameras unless you really have to!__ __ATTENTION! Upgrading firmware can lead to "bricking" your camera. Make sure you are prepared both morally and skillwise. Have your rescue SD card and/or UART adapter ready. Be prepared to desolder and reprogram flash chip as the last resort. Do not upgrade production cameras unless you really have to!__
### Upgrading from a TFTP server ### Upgrading from a TFTP server
[Set up a TFTP server](installation-tftpd.md).
Go to <https://github.com/OpenIPC/firmware/releases/tag/latest> and download the latest firmware bundle for your SoC. Go to <https://github.com/OpenIPC/firmware/releases/tag/latest> and download the latest firmware bundle for your SoC.
Extract content of the bundle into the root directory of your TFTP server. Extract content of the bundle into the root directory of your TFTP server.
On the camera run: On the camera run:
#### From Linux
``` ```
soc=$(fw_printenv -n soc) soc=$(fw_printenv -n soc)
serverip=$(fw_printenv -n serverip) serverip=$(fw_printenv -n serverip)
@ -21,6 +26,29 @@ busybox tftp -r rootfs.squashfs.${soc} -g ${serverip}
busybox tftp -r uImage.${soc} -g ${serverip} busybox tftp -r uImage.${soc} -g ${serverip}
``` ```
#### Alternatively, from U-Boot
for 8MB image
```
mw.b ${baseaddr} 0xff 0x200000
tftp ${baseaddr} uImage.${soc}
sf probe 0; sf erase 0x50000 0x200000; sf write ${baseaddr} 0x50000 ${filesize}
mw.b ${baseaddr} 0xff 0x500000
tftp ${baseaddr} rootfs.squashfs.${soc}
sf probe 0; sf erase 0x250000 0x500000; sf write ${baseaddr} 0x250000 ${filesize}
```
for 16MB image
```
mw.b ${baseaddr} 0xff 0x300000
tftp ${baseaddr} uImage.${soc}
sf probe 0; sf erase 0x50000 0x300000; sf write ${baseaddr} 0x50000 ${filesize}
mw.b ${baseaddr} 0xff 0x500000
tftp ${baseaddr} rootfs.squashfs.${soc}
sf probe 0; sf erase 0x350000 0xa00000; sf write ${baseaddr} 0x350000 ${filesize}
```
### Upgrading from local files ### Upgrading from local files
Go to <https://github.com/OpenIPC/firmware/releases/tag/latest> and download the latest firmware bundle for your SoC. Go to <https://github.com/OpenIPC/firmware/releases/tag/latest> and download the latest firmware bundle for your SoC.
Unpack the bundle and upload its content on camera using `scp`: Unpack the bundle and upload its content on camera using `scp`:
@ -36,6 +64,7 @@ sysupgrade --kernel=/tmp/uImage.${soc} --rootfs=/tmp/rootfs.squashfs.${soc} -z
### Upgrading from SD card ### Upgrading from SD card
#### From Linux
Go to <https://github.com/OpenIPC/firmware/releases/tag/latest> and download the latest firmware bundle for your SoC. Go to <https://github.com/OpenIPC/firmware/releases/tag/latest> and download the latest firmware bundle for your SoC.
Insert an SD card into your desktop PC. Unpack the bundle and copy its content to the card: Insert an SD card into your desktop PC. Unpack the bundle and copy its content to the card:
``` ```
@ -49,6 +78,45 @@ soc=$(fw_printenv -n soc)
sysupgrade --kernel=/mnt/mmcblk0p1/uImage.${soc} --rootfs=/mnt/mmcblk0p1/rootfs.squashfs.${soc} --force_ver -z sysupgrade --kernel=/mnt/mmcblk0p1/uImage.${soc} --rootfs=/mnt/mmcblk0p1/rootfs.squashfs.${soc} --force_ver -z
``` ```
#### Alternatively, from U-Boot
for 8MB image
```
mw.b ${baseaddr} 0xff 0x200000
fatload mmc 0:1 ${baseaddr} uImage.${soc}
sf probe 0; sf erase 0x50000 0x200000; sf write ${baseaddr} 0x50000 ${filesize}
mw.b ${baseaddr} 0xff 0x500000
fatload mmc 0:1 ${baseaddr} rootfs.squashfs.${soc}
sf probe 0; sf erase 0x250000 0x500000; sf write ${baseaddr} 0x250000 ${filesize}
```
for 16MB image
```
mw.b ${baseaddr} 0xff 0x300000
fatload mmc 0:1 ${baseaddr} uImage.${soc}
sf probe 0; sf erase 0x50000 0x300000; sf write ${baseaddr} 0x50000 ${filesize}
mw.b ${baseaddr} 0xff 0x500000
fatload mmc 0:1 ${baseaddr} rootfs.squashfs.${soc}
sf probe 0; sf erase 0x350000 0xa00000; sf write ${baseaddr} 0x350000 ${filesize}
```
### Flashing U-Boot via ymodem
Clean 320K of RAM amd load bootloader file into it:
```
mw.b ${baseaddr} 0xff 0x50000
loady
```
_(press "Ctrl-a" followed by ":", then type)_
```
exec !! sz --ymodem u-boot.bin
```
After the file if uploaded, write it into ROM:
```
sf probe 0
sf erase 0x0 0x50000
sf write ${baseaddr} 0x0 ${filesize}
```
### Troubleshooting ### Troubleshooting
If you got this error: If you got this error: