Restore and enable by default upgrade scripts
[oweals/u-boot_mod.git] / u-boot / include / upg_scripts.h
1 /*
2  * Upgrade helper environment scripts
3  *
4  * Copyright (C) 2016 Piotr Dymacz <piotr@dymacz.pl>
5  *
6  * SPDX-License-Identifier: GPL-2.0
7  */
8
9 #ifndef _UPG_SCRIPTS_H_
10 #define _UPG_SCRIPTS_H_
11
12 /*
13  * U-Boot upgrade
14  */
15 #if defined(CONFIG_UPG_SCRIPTS_UBOOT) &&\
16     defined(CONFIG_MAX_UBOOT_SIZE_HEX)
17
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
22         #endif
23
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       \
27                                 CFG_FLASH_BASE
28         #endif
29
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
34         #endif
35
36         /* Small check */
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"
40         #endif
41
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" \
49                 "uboot_upg=" \
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!; " \
56                                 "else " \
57                                         "echo ERROR! File is too big!; " \
58                                 "fi; " \
59                         "else " \
60                                 "echo ERROR! $serverip is not reachable!; " \
61                         "fi\0"
62         #else
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" \
68                 "uboot_upg=" \
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!; " \
77                                 "else " \
78                                         "echo ERROR! File is too big!; " \
79                                 "fi; " \
80                         "else " \
81                                 "echo ERROR! $serverip is not reachable!; " \
82                         "fi\0"
83         #endif
84
85 #endif /* CONFIG_UPG_SCRIPTS_UBOOT && CONFIG_MAX_UBOOT_SIZE_HEX */
86
87 /*
88  * Firmware upgrade
89  */
90 #if defined(CONFIG_UPG_SCRIPTS_FW)
91
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  \
95                                 CFG_LOAD_ADDR
96         #endif
97
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" \
101                 "fw_upg=" \
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!; " \
107                         "else " \
108                                 "echo ERROR! $serverip is not reachable!; " \
109                         "fi\0"
110
111 #endif /* CONFIG_UPG_SCRIPTS_FW */
112
113 #endif /* _UPG_SCRIPTS_H_ */