Author: blogic
Date: 2015-07-24 11:11:24 +0200 (Fri, 24 Jul 2015)
New Revision: 46469

Modified:
   trunk/tools/firmware-utils/src/mktplinkfw.c
Log:
firmware-utils mktplinkfw: print amount of exceeding bytes

This is very useful for trimming images towards 4 MiB flash size.

Signed-off-by: Stephan Maka <[email protected]>

Modified: trunk/tools/firmware-utils/src/mktplinkfw.c
===================================================================
--- trunk/tools/firmware-utils/src/mktplinkfw.c 2015-07-24 09:11:17 UTC (rev 
46468)
+++ trunk/tools/firmware-utils/src/mktplinkfw.c 2015-07-24 09:11:24 UTC (rev 
46469)
@@ -591,6 +591,7 @@
 static int check_options(void)
 {
        int ret;
+       int exceed_bytes;
 
        if (inspect_info.file_name) {
                ret = get_file_stat(&inspect_info);
@@ -664,10 +665,10 @@
        kernel_len = kernel_info.file_size;
 
        if (combined) {
-               if (kernel_info.file_size >
-                   fw_max_len - sizeof(struct fw_header)) {
+               exceed_bytes = kernel_info.file_size - (fw_max_len - 
sizeof(struct fw_header));
+               if (exceed_bytes > 0) {
                        if (!ignore_size) {
-                               ERR("kernel image is too big");
+                               ERR("kernel image is too big by %i bytes", 
exceed_bytes);
                                return -1;
                        }
                        layout->fw_max_len = sizeof(struct fw_header) +
@@ -691,20 +692,20 @@
 
                        DBG("kernel length aligned to %u", kernel_len);
 
-                       if (kernel_len + rootfs_info.file_size >
-                           fw_max_len - sizeof(struct fw_header)) {
-                               ERR("images are too big");
+                       exceed_bytes = kernel_len + rootfs_info.file_size - 
(fw_max_len - sizeof(struct fw_header));
+                       if (exceed_bytes > 0) {
+                               ERR("images are too big by %i bytes", 
exceed_bytes);
                                return -1;
                        }
                } else {
-                       if (kernel_info.file_size >
-                           rootfs_ofs - sizeof(struct fw_header)) {
+                       exceed_bytes = kernel_info.file_size - (rootfs_ofs - 
sizeof(struct fw_header));
+                       if (exceed_bytes > 0) {
                                ERR("kernel image is too big");
                                return -1;
                        }
 
-                       if (rootfs_info.file_size >
-                           (fw_max_len - rootfs_ofs)) {
+                       exceed_bytes = rootfs_info.file_size - (fw_max_len - 
rootfs_ofs);
+                       if (exceed_bytes > 0) {
                                ERR("rootfs image is too big");
                                return -1;
                        }
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to