From patchwork Wed May 11 13:47:28 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: swaroop sarma X-Patchwork-Id: 621094 X-Patchwork-Delegate: blogic@openwrt.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (caladan.dune.hu [78.24.191.180]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3r4cw236zMz9t3g for ; Wed, 11 May 2016 23:50:57 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=yahoo.co.in header.i=@yahoo.co.in header.b=YnZCoJD5; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 279A8B9172A; Wed, 11 May 2016 15:50:51 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, HTML_MESSAGE, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP; Wed, 11 May 2016 15:50:51 +0200 (CEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id 2F326B91723 for ; Wed, 11 May 2016 15:50:49 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 CL_IP_EQ_HELO_IP=-2 (check from: .yahoo. - helo: .nm32-vm1.bullet.mail.ne1.yahoo. - helo-domain: .yahoo.) FROM/MX_MATCHES_HELO(DOMAIN)=-2; rate: -7 Received: from nm32-vm1.bullet.mail.ne1.yahoo.com (nm32-vm1.bullet.mail.ne1.yahoo.com [98.138.229.49]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Wed, 11 May 2016 15:50:48 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.co.in; s=s2048; t=1462974645; bh=9noT99yaruOmo1owEhu46KXE2o9E0yAi+kLO5QgMTHo=; h=Date:From:Reply-To:To:Subject:References:From:Subject; b=YnZCoJD59SQ4zt1o+BVYteuO8nlzc2kWG2yhi9e7mSnUtW+Odo/fdktLx1iiCNTiy5HAC6fZNm5ltbWSVF1wjzK2wnNXcd+ULIxNWEsu6QdV4D5I7LfhbBTWJPTn3vatJEguyaI2QrO8Ihz/6bxTm6ZjgWOF2OqgMzNENwu/EWm7BS5x8YCoVwy9hp5NegoWxpqnYDRSa2xr2qbAvbkJC8nMY3Yp+4+34VQIvF62VOyQ3SC3H0VVNf7shvIYnHJOiKPK/t1WiYZTwi2XjeR+GL1zrWOuW3tMqslcCaYV9AdxY5cTyDz8CTdjNbr0LOYCbX6576B6ZlruGn9nvd4Xyw== Received: from [127.0.0.1] by nm32.bullet.mail.ne1.yahoo.com with NNFMP; 11 May 2016 13:50:45 -0000 Received: from [98.138.101.132] by nm32.bullet.mail.ne1.yahoo.com with NNFMP; 11 May 2016 13:47:50 -0000 Received: from [106.10.166.122] by tm20.bullet.mail.ne1.yahoo.com with NNFMP; 11 May 2016 13:47:49 -0000 Received: from [106.10.151.251] by tm11.bullet.mail.sg3.yahoo.com with NNFMP; 11 May 2016 13:47:48 -0000 Received: from [127.0.0.1] by omp1022.mail.sg3.yahoo.com with NNFMP; 11 May 2016 13:47:48 -0000 X-Yahoo-Newman-Property: ymail-4 X-Yahoo-Newman-Id: 840271.99762.bm@omp1022.mail.sg3.yahoo.com X-YMail-OSG: jgjPfGIVM1n5g8raJf9vgZBg.ty8hlYsWqwnpYZuAzLRBt22tOSu6QyYifdmIxk gztgSIy5oFBukaCZutGIwABKwv0gRiLJC2b8XuEeouR7K11Jb3kgrNsI95ZFdbFC_em5GzEKOm2O gd3WLh3epMioDpVXb4dmLHysSY.o3KtdHFgAG.a3Z2iXCdnEH0vAu6yADRplVgT1ngNvD3QkdFIV LWJcZs8hOjmo3KfqVTWg.6tJQHNQCH5ujqnp_G7gybRVW6_iik7Pwpe3Khl7rOye2lSdD7bmmatD op2iFjokRBoTCgqZ7XxhX3EqZMGNhRirhKb.N4n_6HWjsGkxcedPFBhcTEtUfCw1rA2GZXEXUbX2 Netr7VyL370Snbl9F5PeNgUW5o3CcOwC1DqNf7OvaJowFz_dCLxtfs9U2E518sIayNfcay6s84Hh 6iiW3eRPvD6Xxv8dpy6lxUIU4U6Qr9PghOPDlGS571zjPSaFYqqXaYSkErv.LKYBzVP1pRs7HF7K 8lbuCGLdDYXe0Ak09aEtaKIc7N8ASuZewmzaH6X64yifGMwRP7zaWXzxShg-- Received: from jws10907.mail.sg3.yahoo.com by sendmailws107.mail.sg3.yahoo.com; Wed, 11 May 2016 13:47:48 +0000; 1462974468.385 Date: Wed, 11 May 2016 13:47:28 +0000 (UTC) From: swaroop sarma To: "openwrt-devel@lists.openwrt.org" Message-ID: <1608981354.452285.1462974448546.JavaMail.yahoo@mail.yahoo.com> MIME-Version: 1.0 References: <1608981354.452285.1462974448546.JavaMail.yahoo.ref@mail.yahoo.com> Subject: [OpenWrt-Devel] [PATCH] Host build tool pathc-image: Add optional command line argument to override dtb max size , to provide flexibility for bigger dtbs X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: swaroop sarma Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" Add optional commandline argument to override dtb max size. Used for platforms which uses large amount of device tree source codes. Signed-off-by: Swaroop Sarma < duddu.swaroop@intel.com > diff --git a/tools/patch-image/src/patch-cmdline.c b/tools/patch-image/src/patch-cmdline.c --- a/tools/patch-image/src/patch-cmdline.c +++ b/tools/patch-image/src/patch-cmdline.c @@ -35,11 +35,18 @@ int main(int argc, char **argv)  {   int fd, found = 0, len, ret = -1;   char *ptr, *p; + unsigned int search_space;   - if (argc != 3) { -  fprintf(stderr, "Usage: %s \n", argv[0]); + if (argc <= 2 || argc > 4) { +  fprintf(stderr, "Usage: %s [dtb max size]\n", argv[0]);    goto err1; + } else if (argc == 3) { +  fprintf(stdout, "DTB max size set to defaults (16KB). You can also override it by passing a size (in bytes) as an additional argument.\n"); +  search_space =  SEARCH_SPACE; + } else { +  search_space = atoi(argv[3]);   } +   len = strlen(argv[2]);   if (len + 9 > CMDLINE_MAX) {    fprintf(stderr, "Command line string too long\n"); @@ -47,12 +54,12 @@ int main(int argc, char **argv)   }      if (((fd = open(argv[1], O_RDWR)) < 0) || -  (ptr = (char *) mmap(0, SEARCH_SPACE + CMDLINE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1)) { +  (ptr = (char *) mmap(0, search_space + CMDLINE_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1)) {    fprintf(stderr, "Could not open kernel image");    goto err2;   }    - for (p = ptr; p < (ptr + SEARCH_SPACE); p += 4) { + for (p = ptr; p < (ptr + search_space); p += 4) {    if (memcmp(p, "CMDLINE:", 8) == 0) {     found = 1;     p += 8; diff --git a/tools/patch-image/src/patch-dtb.c b/tools/patch-image/src/patch-dtb.c --- a/tools/patch-image/src/patch-dtb.c +++ b/tools/patch-image/src/patch-dtb.c @@ -38,11 +38,19 @@ int main(int argc, char **argv)   int fd, fddtb, found = 0, len, ret = -1;   char *ptr, *ptrdtb, *p;   struct stat s; + unsigned int search_space, dtb_max_size;   - if (argc != 3) { -  fprintf(stderr, "Usage: %s \n", argv[0]); + if (argc <= 2 || argc > 4) { +  fprintf(stderr, "Usage: %s [dtb max size]\n", argv[0]);    goto err1; + } else if (argc == 3) { +  fprintf(stdout, "DTB max size set to defaults (16KB). You can also override it by passing a size (in bytes) as an additional argument.\n"); +  search_space = SEARCH_SPACE; +  dtb_max_size = DTB_MAX; + } else { +  search_space = dtb_max_size = atoi(argv[3]);   } +   fddtb = open(argv[1], O_RDONLY);   if (!fddtb)    goto err1; @@ -53,24 +61,24 @@ int main(int argc, char **argv)   }     len = s.st_size; - if (len + 8 > DTB_MAX) { + if (len + 8 > dtb_max_size) {    fprintf(stderr, "DTB too big\n");    goto err1;   }            if (((fddtb = open(argv[2], O_RDONLY)) < 0) || -  (ptrdtb = (char *) mmap(0, DTB_MAX, PROT_READ, MAP_SHARED, fddtb, 0)) == (void *) (-1)) { +  (ptrdtb = (char *) mmap(0, dtb_max_size, PROT_READ, MAP_SHARED, fddtb, 0)) == (void *) (-1)) {    fprintf(stderr, "Could not open DTB");    goto err2;   }     if (((fd = open(argv[1], O_RDWR)) < 0) || -  (ptr = (char *) mmap(0, SEARCH_SPACE + DTB_MAX, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1)) { +  (ptr = (char *) mmap(0, search_space + dtb_max_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0)) == (void *) (-1)) {    fprintf(stderr, "Could not open kernel image");    goto err3;   }   - for (p = ptr; p < (ptr + SEARCH_SPACE); p += 4) { + for (p = ptr; p < (ptr + search_space); p += 4) {    if (memcmp(p, "OWRTDTB:", 8) == 0) {     found = 1;     p += 8; @@ -82,7 +90,7 @@ int main(int argc, char **argv)    goto err4;   }   - memset(p, 0, DTB_MAX - 8); + memset(p, 0, dtb_max_size - 8);   memcpy(p, ptrdtb, len);   msync(p, len, MS_SYNC|MS_INVALIDATE);   ret = 0;