[U-Boot] [PATCHv2] Don't tftp to unknown flash

If a board has a variable number of flash banks, there are empty entries in flash_info[] and CFG_DIRECT_FLASH_TFTP is set, tftp boot fails with "Outside available Flash". This patch skips flash banks with unknown flash ids.
Signed-off-by: Jochen Friedrich jochen@scram.de --- net/tftp.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/tftp.c b/net/tftp.c index 84d83ca..9aeecb8 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -111,6 +111,8 @@ store_block (unsigned block, uchar * src, unsigned len)
for (i=0; i<CFG_MAX_FLASH_BANKS; i++) { /* start address in flash? */ + if (flash_info[i].flash_id == FLASH_UNKNOWN) + continue; if (load_addr + offset >= flash_info[i].start[0]) { rc = 1; break;

Jochen Friedrich wrote:
If a board has a variable number of flash banks, there are empty entries in flash_info[] and CFG_DIRECT_FLASH_TFTP is set, tftp boot fails with "Outside available Flash". This patch skips flash banks with unknown flash ids.
Signed-off-by: Jochen Friedrich jochen@scram.de
net/tftp.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/net/tftp.c b/net/tftp.c index 84d83ca..9aeecb8 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -111,6 +111,8 @@ store_block (unsigned block, uchar * src, unsigned len)
for (i=0; i<CFG_MAX_FLASH_BANKS; i++) { /* start address in flash? */
if (flash_info[i].flash_id == FLASH_UNKNOWN)
if (load_addr + offset >= flash_info[i].start[0]) { rc = 1; break;continue;
Added to net repo.
thanks, Ben
participants (2)
-
Ben Warren
-
Jochen Friedrich