Skip to content
/ burn Public

OpenSource tool to unbrick HiSilicon and Goke devices

License

Notifications You must be signed in to change notification settings

OpenIPC/burn

Repository files navigation

Burn

Video Tutorials

YoutubeScreenshot

OpenIPC BURN Utility Playlist

Archive of current bootloaders for devices

Please use only this Archive of current bootloaders for devices !!!

Features of use in MacOS

Attention ! There are some problems with using Burn in MacOS and you can participate in the discussion

Basic usage

usage: burn [-h] -c
                   {hi3516ev200,hi3520dv100,hi3518ev200,hi3516ev100,hi3518ev201,gk7205v300,hi3516ev300,hi3520dv200,hi3516cv500,hi3556v100,hi3516cv200,hi3516cv300,gk7205v200}
                   -f FILE [-p PORT] [-b] [-d]

options:
  -h, --help            show this help message and exit
  -c {hi3516ev200,hi3520dv100,hi3518ev200,hi3516ev100,hi3518ev201,gk7205v300,hi3516ev300,hi3520dv200,hi3516cv500,hi3556v100,hi3516cv200,hi3516cv300,gk7205v200}, --chip {hi3516ev200,hi3520dv100,hi3518ev200,hi3516ev100,hi3518ev201,gk7205v300,hi3516ev300,hi3520dv200,hi3516cv500,hi3556v100,hi3516cv200,hi3516cv300,gk7205v200}
                        Chip model name
  -f FILE, --file FILE  U-Boot binary file to upload
  -p PORT, --port PORT  Serial port device name
  -b, --break           Send Ctrl-C just after upload
  -d, --debug           Set debug mode

If burn complains about missing python modules, you should install the list of modules by running:

pip install -r requirements.txt

HI3516CV300

Download general version of U-Boot.

./burn --chip hi3516cv300 --file=u-boot-hi3516cv300-universal.bin --break; screen -L /dev/ttyUSB0 115200

Hi3516EV300

Download general version of U-Boot.

$ ./burn --chip hi3516ev300 --file=u-boot-hi3516ev300-universal.bin --break; screen -L /dev/ttyUSB0 115200

Unlock flash on gk7205v200 and gk7205v210

$ ./burn --chip gk7205v200 --file=u-boot/gk7205v200.bin --break; screen -L /dev/ttyUSB0 115200
goke # sf probe
@do_spi_flash_probe() flash->erase_size: 65536, flash->sector_size: 0
goke # sf lock 0
unlock all block.

Unlock flash on gk7205v300

$ ./burn --chip gk7205v300 --file=u-boot/gk7205v300.bin --break; screen -L /dev/ttyUSB0 115200
goke # sf probe
@do_spi_flash_probe() flash->erase_size: 65536, flash->sector_size: 0
goke # sf lock 0
unlock all block.

Start kernel from memory

setenv ipaddr 192.168.1.1; setenv serverip 192.168.1.10; mw.b 0x42000000 ff 1000000; tftpboot 0x42000000 uImage.${soc}; bootm 0x42000000

U-Boot continuous integration

Real world example on U-Boot developing for CV300 board:

set -e

# In case of buggy USB UART adapter
sudo usbreset /dev/bus/usb/005/007

# In U-Boot directory:
make ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- -j$(nproc)
cp u-boot.bin full-boot.bin
cp reg_info_hi3516cv300.bin ./hi3516cv300.reg
make CPU=hi3516cv300 ARCH=arm CROSS_COMPILE=arm-hisiv500-linux- mini-boot.bin

#./mkboot.sh reg_info_hi3516cv300.bin u-boot-ok.bin
cp mini-boot.bin ~/git/burn

cd ~/git/burn
# Custom script to power reset camera via network switch
./restart_eth4.sh
./burn --chip hi3516cv300 --file=mini-boot.bin
screen /dev/ttyUSB0 115200

About

OpenSource tool to unbrick HiSilicon and Goke devices

Topics

Resources

License

Stars

Watchers

Forks

Languages