X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=tools%2Fifdtool.c;h=1d61df19f231016f0eee82d275bf47c63e258215;hb=ae68763b6d7193faa4f4007dba7efe983cec604d;hp=fe8366ba4f6fb16a871676356817e4bcb75862c2;hpb=d8046ff0b0424c5e463e0180302c6f8d4d41a163;p=u-boot diff --git a/tools/ifdtool.c b/tools/ifdtool.c index fe8366ba4f..1d61df19f2 100644 --- a/tools/ifdtool.c +++ b/tools/ifdtool.c @@ -462,7 +462,7 @@ static int write_regions(char *image, int size) if (ret) return ret; dump_region(i, frba); - if (region.size == 0) + if (region.size <= 0) continue; region_fd = open(region_filename(i), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | @@ -788,9 +788,9 @@ static int write_uboot(char *image, int size, struct input_file *uboot, fdt_strerror(data_size)); return -ENOENT; } - offset = ucode_ptr - uboot->addr; + offset = (uint32_t)(ucode_ptr + size); ptr = (void *)image + offset; - ptr[0] = uboot->addr + (data - image); + ptr[0] = (data - image) - size; ptr[1] = data_size; debug("Wrote microcode pointer at %x: addr=%x, size=%x\n", ucode_ptr, ptr[0], ptr[1]);