summaryrefslogtreecommitdiff
path: root/common/update.c
diff options
context:
space:
mode:
authorLukasz Majewski <l.majewski@majess.pl>2015-08-24 00:21:44 +0200
committerMarek Vasut <marex@denx.de>2015-09-07 13:41:04 +0200
commit66a647238215b207addc8c9ad22f3816078a7934 (patch)
tree0699b2553da78ac9cc25791035f761b300e20327 /common/update.c
parent346969584be509b444dd1ba0db31ca7adb47575b (diff)
downloadu-boot-66a647238215b207addc8c9ad22f3816078a7934.tar.gz
u-boot-66a647238215b207addc8c9ad22f3816078a7934.tar.bz2
u-boot-66a647238215b207addc8c9ad22f3816078a7934.zip
tftp: update: Allow some parts of the code to be reused when CONFIG_SYS_NO_FLASH is set
Up till now it was impossible to use code from update.c when system was not equipped with raw FLASH memory. Such behavior prevented DFU from reusing this code. Signed-off-by: Lukasz Majewski <l.majewski@majess.pl> Acked-by: Joe Hershberger <joe.hershberger@ni.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/update.c')
-rw-r--r--common/update.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/common/update.c b/common/update.c
index 1c6aa186d0..542915ce6e 100644
--- a/common/update.c
+++ b/common/update.c
@@ -13,10 +13,6 @@
#error "CONFIG_FIT and CONFIG_OF_LIBFDT are required for auto-update feature"
#endif
-#if defined(CONFIG_SYS_NO_FLASH)
-#error "CONFIG_SYS_NO_FLASH defined, but FLASH is required for auto-update feature"
-#endif
-
#include <command.h>
#include <flash.h>
#include <net.h>
@@ -41,11 +37,11 @@
extern ulong tftp_timeout_ms;
extern int tftp_timeout_count_max;
-extern flash_info_t flash_info[];
extern ulong load_addr;
-
+#ifndef CONFIG_SYS_NO_FLASH
+extern flash_info_t flash_info[];
static uchar *saved_prot_info;
-
+#endif
static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr)
{
int size, rv;
@@ -94,6 +90,7 @@ static int update_load(char *filename, ulong msec_max, int cnt_max, ulong addr)
return rv;
}
+#ifndef CONFIG_SYS_NO_FLASH
static int update_flash_protect(int prot, ulong addr_first, ulong addr_last)
{
uchar *sp_info_ptr;
@@ -165,9 +162,11 @@ static int update_flash_protect(int prot, ulong addr_first, ulong addr_last)
return 0;
}
+#endif
static int update_flash(ulong addr_source, ulong addr_first, ulong size)
{
+#ifndef CONFIG_SYS_NO_FLASH
ulong addr_last = addr_first + size - 1;
/* round last address to the sector boundary */
@@ -203,7 +202,7 @@ static int update_flash(ulong addr_source, ulong addr_first, ulong size)
printf("Error: could not protect flash sectors\n");
return 1;
}
-
+#endif
return 0;
}