2 * Upgrade helper environment scripts
4 * Copyright (C) 2016 Piotr Dymacz <piotr@dymacz.pl>
6 * SPDX-License-Identifier: GPL-2.0
9 #ifndef _UPG_SCRIPTS_H_
10 #define _UPG_SCRIPTS_H_
15 #if defined(CONFIG_UPG_SCRIPTS_UBOOT) &&\
16 defined(CONFIG_MAX_UBOOT_SIZE_HEX)
18 /* Backup size: use image limit size by default */
19 #if !defined(CONFIG_UPG_SCRIPTS_UBOOT_SIZE_BCKP_HEX)
20 #define CONFIG_UPG_SCRIPTS_UBOOT_SIZE_BCKP_HEX \
21 CONFIG_MAX_UBOOT_SIZE_HEX
24 /* Target address: use CFG_FLASH_BASE by default */
25 #if !defined(CONFIG_UPG_SCRIPTS_UBOOT_ADDR_HEX)
26 #define CONFIG_UPG_SCRIPTS_UBOOT_ADDR_HEX \
30 /* Limit size: use image limit size by default */
31 #if !defined(CONFIG_UPG_SCRIPTS_UBOOT_SIZE_HEX)
32 #define CONFIG_UPG_SCRIPTS_UBOOT_SIZE_HEX \
33 CONFIG_MAX_UBOOT_SIZE_HEX
37 #if (CONFIG_UPG_SCRIPTS_UBOOT_SIZE_BCKP_HEX < \
38 CONFIG_UPG_SCRIPTS_UBOOT_SIZE_HEX)
39 #error "U-Boot backup size must be >= U-Boot image size"
42 /* Include backup stage only if needed */
43 #if (CONFIG_UPG_SCRIPTS_UBOOT_SIZE_BCKP_HEX == \
44 CONFIG_UPG_SCRIPTS_UBOOT_SIZE_HEX)
45 #define CONFIG_ENV_UPG_SCRIPTS_UBOOT \
46 "uboot_name=u-boot.bin\0" \
47 "uboot_addr=" MK_STR(CONFIG_UPG_SCRIPTS_UBOOT_ADDR_HEX) "\0" \
48 "uboot_size=" MK_STR(CONFIG_UPG_SCRIPTS_UBOOT_SIZE_HEX) "\0" \
50 "if ping $serverip; then " \
51 "tftp $loadaddr $uboot_name && " \
52 "if itest.l $filesize <= $uboot_size; then " \
53 "erase $uboot_addr +$uboot_size && " \
54 "cp.b $loadaddr $uboot_addr $uboot_size && " \
55 "echo DONE! U-Boot upgraded!; " \
57 "echo ERROR! File is too big!; " \
60 "echo ERROR! $serverip is not reachable!; " \
63 #define CONFIG_ENV_UPG_SCRIPTS_UBOOT \
64 "uboot_name=u-boot.bin\0" \
65 "uboot_addr=" MK_STR(CONFIG_UPG_SCRIPTS_UBOOT_ADDR_HEX) "\0" \
66 "uboot_size=" MK_STR(CONFIG_UPG_SCRIPTS_UBOOT_SIZE_HEX) "\0" \
67 "uboot_bckp=" MK_STR(CONFIG_UPG_SCRIPTS_UBOOT_SIZE_BCKP_HEX) "\0" \
69 "if ping $serverip; then " \
70 "mw.b $loadaddr 0xFF $uboot_bckp && " \
71 "cp.b $uboot_addr $loadaddr $uboot_bckp && " \
72 "tftp $loadaddr $uboot_name && " \
73 "if itest.l $filesize <= $uboot_size; then " \
74 "erase $uboot_addr +$uboot_bckp && " \
75 "cp.b $loadaddr $uboot_addr $uboot_bckp && " \
76 "echo DONE! U-Boot upgraded!; " \
78 "echo ERROR! File is too big!; " \
81 "echo ERROR! $serverip is not reachable!; " \
85 #endif /* CONFIG_UPG_SCRIPTS_UBOOT && CONFIG_MAX_UBOOT_SIZE_HEX */
90 #if defined(CONFIG_UPG_SCRIPTS_FW)
92 /* Target address: use CFG_LOAD_ADDR by default */
93 #if !defined(CONFIG_UPG_SCRIPTS_FW_ADDR_HEX)
94 #define CONFIG_UPG_SCRIPTS_FW_ADDR_HEX \
98 #define CONFIG_ENV_UPG_SCRIPTS_FW \
99 "fw_name=firmware.bin\0" \
100 "fw_addr=" MK_STR(CONFIG_UPG_SCRIPTS_FW_ADDR_HEX) "\0" \
102 "if ping $serverip; then " \
103 "tftp $loadaddr $fw_name && " \
104 "erase $fw_addr +$filesize && " \
105 "cp.b $loadaddr $fw_addr $filesize && " \
106 "echo DONE! Firmware upgraded!; " \
108 "echo ERROR! $serverip is not reachable!; " \
111 #endif /* CONFIG_UPG_SCRIPTS_FW */
113 #endif /* _UPG_SCRIPTS_H_ */