No platforms enable the functionality to tftp directly to NOR flash, and this is discouraged by the documentation. Remove this code. Further, this highlights an oddity of the code. Un-indent the start of this function.
Cc: Joe Hershberger <joe.hershber...@ni.com> Cc: Ramon Fried <rfried....@gmail.com> Signed-off-by: Tom Rini <tr...@konsulko.com> --- README | 13 ----------- include/configs/kzm9g.h | 2 -- net/tftp.c | 52 +++++++++++------------------------------ 3 files changed, 13 insertions(+), 54 deletions(-) diff --git a/README b/README index ff0df3797d21..74e37aa95cc4 100644 --- a/README +++ b/README @@ -1775,19 +1775,6 @@ Configuration Settings: If defined, hardware flash sectors protection is used instead of U-Boot software protection. -- CONFIG_SYS_DIRECT_FLASH_TFTP: - - Enable TFTP transfers directly to flash memory; - without this option such a download has to be - performed in two steps: (1) download to RAM, and (2) - copy from RAM to flash. - - The two-step approach is usually more reliable, since - you can check if the download worked before you erase - the flash, but in some situations (when system RAM is - too limited to allow for a temporary copy of the - downloaded image) this option may be very useful. - - CONFIG_SYS_FLASH_CFI: Define if the flash driver uses extra elements in the common flash structure for storing flash geometry. diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h index e084f87d14dd..f94cb54c7050 100644 --- a/include/configs/kzm9g.h +++ b/include/configs/kzm9g.h @@ -53,8 +53,6 @@ /* Timeout for Flash clear lock bit operations (in ms) */ #define CONFIG_SYS_FLASH_UNLOCK_TOUT (3 * 1000) -#undef CONFIG_SYS_DIRECT_FLASH_TFTP - /* GPIO / PFC */ #define CONFIG_SH_GPIO_PFC diff --git a/net/tftp.c b/net/tftp.c index bfc4c9bde9cb..451d73529f2a 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -17,9 +17,6 @@ #include <asm/global_data.h> #include <net/tftp.h> #include "bootp.h" -#ifdef CONFIG_SYS_DIRECT_FLASH_TFTP -#include <flash.h> -#endif DECLARE_GLOBAL_DATA_PTR; @@ -158,47 +155,24 @@ static inline int store_block(int block, uchar *src, unsigned int len) tftp_block_size; ulong newsize = offset + len; ulong store_addr = tftp_load_addr + offset; -#ifdef CONFIG_SYS_DIRECT_FLASH_TFTP - int i, rc = 0; - - for (i = 0; i < CONFIG_SYS_MAX_FLASH_BANKS; i++) { - /* start address in flash? */ - if (flash_info[i].flash_id == FLASH_UNKNOWN) - continue; - if (store_addr >= flash_info[i].start[0]) { - rc = 1; - break; - } - } - - if (rc) { /* Flash is destination for this packet */ - rc = flash_write((char *)src, store_addr, len); - if (rc) { - flash_perror(rc); - return rc; - } - } else -#endif /* CONFIG_SYS_DIRECT_FLASH_TFTP */ - { - void *ptr; + void *ptr; #ifdef CONFIG_LMB - ulong end_addr = tftp_load_addr + tftp_load_size; + ulong end_addr = tftp_load_addr + tftp_load_size; - if (!end_addr) - end_addr = ULONG_MAX; + if (!end_addr) + end_addr = ULONG_MAX; - if (store_addr < tftp_load_addr || - store_addr + len > end_addr) { - puts("\nTFTP error: "); - puts("trying to overwrite reserved memory...\n"); - return -1; - } -#endif - ptr = map_sysmem(store_addr, len); - memcpy(ptr, src, len); - unmap_sysmem(ptr); + if (store_addr < tftp_load_addr || + store_addr + len > end_addr) { + puts("\nTFTP error: "); + puts("trying to overwrite reserved memory...\n"); + return -1; } +#endif + ptr = map_sysmem(store_addr, len); + memcpy(ptr, src, len); + unmap_sysmem(ptr); if (net_boot_file_size < newsize) net_boot_file_size = newsize; -- 2.25.1