<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: write an alternate bootstream with kobs-ng in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288930#M34588</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, I found an solution for these problem and have modified the init function with two additional parameters -0 and -1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The normal init prozess writes Bootstream 0 and 1 as well as FCB and DBBT Block&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@imx28evk ~$ kobs-ng init -v -d /boot/imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Than these only writes Bootstream 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@imx28evk ~$ kobs-ng init -v -d -0 /boot/imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and finaly these only writes Bootstream 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@imx28evk ~$ kobs-ng init -v -d -1 /boot/imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Than the used Bootstream can be selected with the ROM_SECONDARY_BOOT bit using memtools from imx-tests.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx28evk ~$ /unit_tests/memtool 80056070=2&lt;/P&gt;&lt;P&gt;Writing 32-bit value 0x2 to address 0x80056070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; selecting secondary bootstream&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx28evk ~$ /unit_tests/memtool 80056070=0&lt;/P&gt;&lt;P&gt;Writing 32-bit value 0x0 to address 0x80056070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; selecting primary bootstream&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Birger&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff -rupN kobs-ng-3.0.0.org/src/main.c kobs-ng-3.0.0/src/main.c&lt;/P&gt;&lt;P&gt;--- kobs-ng-3.0.0.org/src/main.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012-08-30 08:58:49.000000000 +0200&lt;/P&gt;&lt;P&gt;+++ kobs-ng-3.0.0/src/main.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-06 11:55:46.422945623 +0200&lt;/P&gt;&lt;P&gt;@@ -555,6 +555,7 @@ int update_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; int mask = UPDATE_ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, j, r;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct mtd_data *md;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int flags, image;&lt;/P&gt;&lt;P&gt;@@ -594,6 +595,12 @@ int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (argv[i][1]) {&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case '0':&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask = UPDATE_BS0;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case '1':&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask = UPDATE_BS1;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'b':&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; badlist = &amp;amp;argv[i][2];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (*badlist == '\0') {&lt;/P&gt;&lt;P&gt;@@ -687,7 +694,7 @@ int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtd_dump_structure(md);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!dryrun) {&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = plat_config_data-&amp;gt;rom_mtd_commit_structures(md, infp, UPDATE_ALL);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = plat_config_data-&amp;gt;rom_mtd_commit_structures(md, infp, mask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (r &amp;lt; 0) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "FAILED to commit structures\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(5);&lt;/P&gt;&lt;P&gt;diff -rupN kobs-ng-3.0.0.org/src/mtd.c kobs-ng-3.0.0/src/mtd.c&lt;/P&gt;&lt;P&gt;--- kobs-ng-3.0.0.org/src/mtd.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012-08-30 08:58:49.000000000 +0200&lt;/P&gt;&lt;P&gt;+++ kobs-ng-3.0.0/src/mtd.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-06 11:56:35.594944436 +0200&lt;/P&gt;&lt;P&gt;@@ -2289,7 +2289,7 @@ int mtd_commit_bcb(struct mtd_data *md,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-int write_boot_stream(struct mtd_data *md, FILE *fp)&lt;/P&gt;&lt;P&gt;+int write_boot_stream(struct mtd_data *md, FILE *fp, int flags)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int startpage, start, size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loff_t ofs, end;&lt;/P&gt;&lt;P&gt;@@ -2299,7 +2299,7 @@ int write_boot_stream(struct mtd_data *m&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vp(md, "---------- Start to write the [ %s ]----\n", (char*)md-&amp;gt;private);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 2; i++) {&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fp == NULL)&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fp == NULL || (flags &amp;amp; UPDATE_BS(i)) == 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i == 0) {&lt;/P&gt;&lt;P&gt;@@ -2562,7 +2562,7 @@ int v1_rom_mtd_commit_structures(struct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtd_commit_bcb(md, "DBBT", 1, 1, 1, 1, mtd_writesize(md), true);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* write the boot image. */&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp, flags);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; int v2_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags)&lt;/P&gt;&lt;P&gt;@@ -2793,7 +2793,7 @@ int v4_rom_mtd_commit_structures(struct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [3] Write the two boot streams. */&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp, flags);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; #undef ARG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 06 Sep 2013 10:15:09 GMT</pubDate>
    <dc:creator>bba</dc:creator>
    <dc:date>2013-09-06T10:15:09Z</dc:date>
    <item>
      <title>write an alternate bootstream with kobs-ng</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288929#M34587</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Reading the iMX28 Reference Manual, it should be possible to load an alternate bootimage using the ROM_SECONDARY_BOOT persistent bit. The normal write prozess with kobs-ng always write both bootimages.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx28evk /boot$ kobs-ng -z -v imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;mtd: opened '/dev/mtd0' - '(null)'&lt;/P&gt;&lt;P&gt;mtd: max_boot_stream_size_in_bytes = 9961472&lt;/P&gt;&lt;P&gt;mtd: boot_stream_size_in_bytes = 2529872&lt;/P&gt;&lt;P&gt;mtd: #1 0x00100000 - 0x00a80000 (0x00369a50)&lt;/P&gt;&lt;P&gt;mtd: #2 0x00a80000 - 0x01400000 (0x00ce9a50)&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_u32Checksum = 0&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_u32FingerPrint = 541213510&lt;/P&gt;&lt;P&gt;&amp;nbsp; m_u32Version = 16777216&lt;/P&gt;&lt;P&gt;FCB&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;Firmware: image #0 @ 0x100000 size 0x26a000 - available 0x980000&lt;/P&gt;&lt;P&gt;Firmware: image #1 @ 0xa80000 size 0x26a000 - available 0x980000&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;mtd: Writing FCB3 @0:0x60000(840)&lt;/P&gt;&lt;P&gt;mtd_commit_bcb(FCB): status 0&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;mtd: Writing DBBT3 @0:0xe0000(800)&lt;/P&gt;&lt;P&gt;mtd_commit_bcb(DBBT): status 0&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;mtd: Writting firmware image #0 @0: 0x00100000 - 0x0036a000&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;mtd: Writting firmware image #1 @0: 0x00a80000 - 0x00cea000&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But we want to write different images as bootstream 0 and bootstream1 using &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx28evk /boot$ kobs-ng update -z -1 imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0x0&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0x20000&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0x40000&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0x60000&lt;/P&gt;&lt;P&gt;mtd: NCB0 not found&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0x80000&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0xa0000&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0xc0000&lt;/P&gt;&lt;P&gt;mtd: fingerprints mismatch @0:0xe0000&lt;/P&gt;&lt;P&gt;mtd: NCB1 not found&lt;/P&gt;&lt;P&gt;mtd: neither NCB1 or NCB2 found ERROR&lt;/P&gt;&lt;P&gt;Unable to load boot structures&lt;/P&gt;&lt;P&gt;Unable to perform bootstream update&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These failes. Here we got the same errors like "kobs-ng dump"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What can we do? Is there an updated kobs-ng version available? We are using kobs-ng from L2.6.35_1.1.0_130130_source.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Birger&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Sep 2013 16:06:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288929#M34587</guid>
      <dc:creator>bba</dc:creator>
      <dc:date>2013-09-03T16:06:36Z</dc:date>
    </item>
    <item>
      <title>Re: write an alternate bootstream with kobs-ng</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288930#M34588</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, I found an solution for these problem and have modified the init function with two additional parameters -0 and -1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The normal init prozess writes Bootstream 0 and 1 as well as FCB and DBBT Block&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@imx28evk ~$ kobs-ng init -v -d /boot/imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Than these only writes Bootstream 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@imx28evk ~$ kobs-ng init -v -d -0 /boot/imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and finaly these only writes Bootstream 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root@imx28evk ~$ kobs-ng init -v -d -1 /boot/imx28_ivt_linux.sb&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Than the used Bootstream can be selected with the ROM_SECONDARY_BOOT bit using memtools from imx-tests.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx28evk ~$ /unit_tests/memtool 80056070=2&lt;/P&gt;&lt;P&gt;Writing 32-bit value 0x2 to address 0x80056070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; selecting secondary bootstream&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;root@imx28evk ~$ /unit_tests/memtool 80056070=0&lt;/P&gt;&lt;P&gt;Writing 32-bit value 0x0 to address 0x80056070&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; selecting primary bootstream&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Birger&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff -rupN kobs-ng-3.0.0.org/src/main.c kobs-ng-3.0.0/src/main.c&lt;/P&gt;&lt;P&gt;--- kobs-ng-3.0.0.org/src/main.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012-08-30 08:58:49.000000000 +0200&lt;/P&gt;&lt;P&gt;+++ kobs-ng-3.0.0/src/main.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-06 11:55:46.422945623 +0200&lt;/P&gt;&lt;P&gt;@@ -555,6 +555,7 @@ int update_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; int mask = UPDATE_ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, j, r;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct mtd_data *md;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int flags, image;&lt;/P&gt;&lt;P&gt;@@ -594,6 +595,12 @@ int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (argv[i][1]) {&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case '0':&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask = UPDATE_BS0;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case '1':&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask = UPDATE_BS1;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'b':&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; badlist = &amp;amp;argv[i][2];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (*badlist == '\0') {&lt;/P&gt;&lt;P&gt;@@ -687,7 +694,7 @@ int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtd_dump_structure(md);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!dryrun) {&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = plat_config_data-&amp;gt;rom_mtd_commit_structures(md, infp, UPDATE_ALL);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = plat_config_data-&amp;gt;rom_mtd_commit_structures(md, infp, mask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (r &amp;lt; 0) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "FAILED to commit structures\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(5);&lt;/P&gt;&lt;P&gt;diff -rupN kobs-ng-3.0.0.org/src/mtd.c kobs-ng-3.0.0/src/mtd.c&lt;/P&gt;&lt;P&gt;--- kobs-ng-3.0.0.org/src/mtd.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012-08-30 08:58:49.000000000 +0200&lt;/P&gt;&lt;P&gt;+++ kobs-ng-3.0.0/src/mtd.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-06 11:56:35.594944436 +0200&lt;/P&gt;&lt;P&gt;@@ -2289,7 +2289,7 @@ int mtd_commit_bcb(struct mtd_data *md,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-int write_boot_stream(struct mtd_data *md, FILE *fp)&lt;/P&gt;&lt;P&gt;+int write_boot_stream(struct mtd_data *md, FILE *fp, int flags)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int startpage, start, size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loff_t ofs, end;&lt;/P&gt;&lt;P&gt;@@ -2299,7 +2299,7 @@ int write_boot_stream(struct mtd_data *m&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vp(md, "---------- Start to write the [ %s ]----\n", (char*)md-&amp;gt;private);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 2; i++) {&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fp == NULL)&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fp == NULL || (flags &amp;amp; UPDATE_BS(i)) == 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i == 0) {&lt;/P&gt;&lt;P&gt;@@ -2562,7 +2562,7 @@ int v1_rom_mtd_commit_structures(struct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtd_commit_bcb(md, "DBBT", 1, 1, 1, 1, mtd_writesize(md), true);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* write the boot image. */&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp, flags);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; int v2_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags)&lt;/P&gt;&lt;P&gt;@@ -2793,7 +2793,7 @@ int v4_rom_mtd_commit_structures(struct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [3] Write the two boot streams. */&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp, flags);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; #undef ARG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2013 10:15:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288930#M34588</guid>
      <dc:creator>bba</dc:creator>
      <dc:date>2013-09-06T10:15:09Z</dc:date>
    </item>
    <item>
      <title>Re: write an alternate bootstream with kobs-ng</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288931#M34589</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It seams to me that version kobs-ng-3.0.0 has some problems on iMX28. I'm using kobs-ng-3.0.35-4.0.0 from the OpenWrt repository&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="http://repository.timesys.com/buildsources/k/kobs-ng/"&gt;http://repository.timesys.com/buildsources/k/kobs-ng/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;These version works well with the imx28 evaluationboard.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff -rupN kobs-ng-3.0.35-4.0.0-org/src/main.c kobs-ng-3.0.35-4.0.0/src/main.c&lt;/P&gt;&lt;P&gt;--- kobs-ng-3.0.35-4.0.0-org/src/main.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-04 15:02:02.521560820 +0200&lt;/P&gt;&lt;P&gt;+++ kobs-ng-3.0.35-4.0.0/src/main.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-04 14:49:10.681579437 +0200&lt;/P&gt;&lt;P&gt;@@ -586,6 +586,7 @@ static char *padding_1k_in_head(char *fi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; int mask = UPDATE_ALL;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i, j, r;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct mtd_data *md;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int flags, image;&lt;/P&gt;&lt;P&gt;@@ -626,6 +627,12 @@ int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (argv[i][1]) {&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case '0':&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask = UPDATE_BS0;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case '1':&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mask = UPDATE_BS1;&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'b':&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; badlist = &amp;amp;argv[i][2];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (*badlist == '\0') {&lt;/P&gt;&lt;P&gt;@@ -735,7 +742,7 @@ int init_main(int argc, char **argv)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mtd_dump_structure(md);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!dryrun) {&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = plat_config_data-&amp;gt;rom_mtd_commit_structures(md, infp, UPDATE_ALL);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r = plat_config_data-&amp;gt;rom_mtd_commit_structures(md, infp, mask);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (r &amp;lt; 0) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fprintf(stderr, "FAILED to commit structures\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; exit(5);&lt;/P&gt;&lt;P&gt;diff -rupN kobs-ng-3.0.35-4.0.0-org/src/mtd.c kobs-ng-3.0.35-4.0.0/src/mtd.c&lt;/P&gt;&lt;P&gt;--- kobs-ng-3.0.35-4.0.0-org/src/mtd.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2012-12-18 07:37:40.000000000 +0100&lt;/P&gt;&lt;P&gt;+++ kobs-ng-3.0.35-4.0.0/src/mtd.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2013-09-04 15:03:59.217558007 +0200&lt;/P&gt;&lt;P&gt;@@ -2337,7 +2337,7 @@ int mtd_commit_bcb(struct mtd_data *md,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-int write_boot_stream(struct mtd_data *md, FILE *fp)&lt;/P&gt;&lt;P&gt;+int write_boot_stream(struct mtd_data *md, FILE *fp, int flags)&lt;/P&gt;&lt;P&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int startpage, start, size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; loff_t ofs, end;&lt;/P&gt;&lt;P&gt;@@ -2347,7 +2347,7 @@ int write_boot_stream(struct mtd_data *m&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vp(md, "---------- Start to write the [ %s ]----\n", (char*)md-&amp;gt;private);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 2; i++) {&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fp == NULL)&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (fp == NULL || (flags &amp;amp; UPDATE_BS(i)) == 0)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; continue;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i == 0) {&lt;/P&gt;&lt;P&gt;@@ -2660,7 +2660,7 @@ int v1_rom_mtd_commit_structures(struct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write_dbbt(md, 1); /* only write the DBBT for nand0 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* write the boot image. */&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp, flags);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; int v2_rom_mtd_commit_structures(struct mtd_data *md, FILE *fp, int flags)&lt;/P&gt;&lt;P&gt;@@ -2891,7 +2891,7 @@ int v4_rom_mtd_commit_structures(struct&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [3] Write the two boot streams. */&lt;/P&gt;&lt;P&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp);&lt;/P&gt;&lt;P&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; return write_boot_stream(md, fp, flags);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; #undef ARG&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 06 Sep 2013 12:11:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/write-an-alternate-bootstream-with-kobs-ng/m-p/288931#M34589</guid>
      <dc:creator>bba</dc:creator>
      <dc:date>2013-09-06T12:11:10Z</dc:date>
    </item>
  </channel>
</rss>

