Commit 15970d871c299c8a4218911ee68edb0495a69cd4

Authored by Patrick Delaunay
Committed by Marek Vasut
1 parent 4de512018b

dfu: remove limitation on partition size

Change long (32 bits on arm) to u64 (same type than offset)
for size and read offset r_left

So partition and device used for DFU can be greater than 4GB

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>

Showing 6 changed files with 11 additions and 11 deletions Side-by-side Diff

... ... @@ -343,7 +343,7 @@
343 343 if (ret < 0)
344 344 return ret;
345 345  
346   - debug("%s: %s %ld [B]\n", __func__, dfu->name, dfu->r_left);
  346 + debug("%s: %s %lld [B]\n", __func__, dfu->name, dfu->r_left);
347 347  
348 348 dfu->i_blk_seq_num = 0;
349 349 dfu->crc = 0;
drivers/dfu/dfu_mmc.c
... ... @@ -17,7 +17,7 @@
17 17 #include <mmc.h>
18 18  
19 19 static unsigned char *dfu_file_buf;
20   -static long dfu_file_buf_len;
  20 +static u64 dfu_file_buf_len;
21 21 static long dfu_file_buf_filled;
22 22  
23 23 static int mmc_block_op(enum dfu_op op, struct dfu_entity *dfu,
... ... @@ -107,7 +107,7 @@
107 107 }
108 108  
109 109 static int mmc_file_op(enum dfu_op op, struct dfu_entity *dfu,
110   - void *buf, long *len)
  110 + void *buf, u64 *len)
111 111 {
112 112 const char *fsname, *opname;
113 113 char cmd_buf[DFU_CMD_BUF_SIZE];
... ... @@ -150,7 +150,7 @@
150 150 sprintf(cmd_buf + strlen(cmd_buf), " %s", dfu->name);
151 151  
152 152 if (op == DFU_OP_WRITE)
153   - sprintf(cmd_buf + strlen(cmd_buf), " %lx", *len);
  153 + sprintf(cmd_buf + strlen(cmd_buf), " %llx", *len);
154 154  
155 155 debug("%s: %s 0x%p\n", __func__, cmd_buf, cmd_buf);
156 156  
... ... @@ -209,7 +209,7 @@
209 209 return ret;
210 210 }
211 211  
212   -int dfu_get_medium_size_mmc(struct dfu_entity *dfu, long *size)
  212 +int dfu_get_medium_size_mmc(struct dfu_entity *dfu, u64 *size)
213 213 {
214 214 int ret;
215 215  
... ... @@ -237,7 +237,7 @@
237 237 long *len)
238 238 {
239 239 int ret;
240   - long file_len;
  240 + u64 file_len;
241 241  
242 242 if (dfu_file_buf_filled == -1) {
243 243 ret = mmc_file_op(DFU_OP_READ, dfu, dfu_file_buf, &file_len);
drivers/dfu/dfu_nand.c
... ... @@ -114,7 +114,7 @@
114 114 return ret;
115 115 }
116 116  
117   -int dfu_get_medium_size_nand(struct dfu_entity *dfu, long *size)
  117 +int dfu_get_medium_size_nand(struct dfu_entity *dfu, u64 *size)
118 118 {
119 119 *size = dfu->data.nand.size;
120 120  
drivers/dfu/dfu_ram.c
... ... @@ -41,7 +41,7 @@
41 41 return dfu_transfer_medium_ram(DFU_OP_WRITE, dfu, offset, buf, len);
42 42 }
43 43  
44   -int dfu_get_medium_size_ram(struct dfu_entity *dfu, long *size)
  44 +int dfu_get_medium_size_ram(struct dfu_entity *dfu, u64 *size)
45 45 {
46 46 *size = dfu->data.ram.size;
47 47  
drivers/dfu/dfu_sf.c
... ... @@ -12,7 +12,7 @@
12 12 #include <spi.h>
13 13 #include <spi_flash.h>
14 14  
15   -static int dfu_get_medium_size_sf(struct dfu_entity *dfu, long *size)
  15 +static int dfu_get_medium_size_sf(struct dfu_entity *dfu, u64 *size)
16 16 {
17 17 *size = dfu->data.sf.size;
18 18  
... ... @@ -110,7 +110,7 @@
110 110 struct sf_internal_data sf;
111 111 } data;
112 112  
113   - int (*get_medium_size)(struct dfu_entity *dfu, long *size);
  113 + int (*get_medium_size)(struct dfu_entity *dfu, u64 *size);
114 114  
115 115 int (*read_medium)(struct dfu_entity *dfu,
116 116 u64 offset, void *buf, long *len);
... ... @@ -132,7 +132,7 @@
132 132 u8 *i_buf;
133 133 u8 *i_buf_start;
134 134 u8 *i_buf_end;
135   - long r_left;
  135 + u64 r_left;
136 136 long b_left;
137 137  
138 138 u32 bad_skip; /* for nand use */