<div dir="ltr">I guess you guys are right as the fourth option indeed does not exist nor has been discussed in the past. <div><br></div><div style>I am developing on multiple Amlogic Meson3 devices at the moment. As it is still unclear which uboot sources the Chinese used and I do not want to brick people their devices by flashing a custom firmware. I simply do not want to touch the whole uboot environment. I just flash the kernel to the same partition on the NAND, so uboot starts it. From that point I want to take over full control.</div>
<div style><br></div><div style>By using the FORCE option we also loose the MAC variable which is set in hardware and passed by uboot (+ any other strange params, they Chinese put in for whatever reason?). I just want to overwrite the root= and rootfstype= parameter, and use the rest from uboot. That way, I do not have to touch the uboot stuff on the nand, which can hardbrick the devices as they are not as well protected as the Allwinner for instance.</div>
<div style><br></div><div style>Anyway, the fourth option has been created;</div><div style><br></div><div style><div>diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig</div><div>index c824452..4c5a7ab 100644</div><div>--- a/arch/arm/Kconfig</div>
<div>+++ b/arch/arm/Kconfig</div><div>@@ -1481,6 +1481,12 @@ config CMDLINE_FORCE</div><div>          command-line options your boot loader passes to the kernel.</div><div><br></div><div>          If unsure, say N.</div><div>
+</div><div>+config CMDLINE_APPEND</div><div>+       bool &quot;Append default kernel command string to bootloader kernel arguments&quot;</div><div>+       help</div><div>+         The default kernel command string will be appended to the</div>
<div>+         command-line arguments provided by the boot loader.</div><div> endchoice</div><div><br></div><div> config XIP_KERNEL</div><div>diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c</div><div>index b0c25fa..418308e 100644</div>
<div>--- a/arch/arm/kernel/setup.c</div><div>+++ b/arch/arm/kernel/setup.c</div><div>@@ -652,6 +652,10 @@ static int __init parse_tag_cmdline(const struct tag *tag)</div><div>        strlcat(default_command_line, tag-&gt;u.cmdline.cmdline, COMMAND_LINE_SIZE);</div>
<div> #elif defined(CONFIG_CMDLINE_FORCE)</div><div>        pr_warning(&quot;Ignoring tag cmdline (using the default kernel command line)\n&quot;);</div><div>+#elif defined(CONFIG_CMDLINE_APPEND)</div><div>+    strlcpy(default_command_line, tag-&gt;u.cmdline.cmdline, COMMAND_LINE_SIZE);</div>
<div>+    strlcat(default_command_line, &quot; &quot;, COMMAND_LINE_SIZE);</div><div>+    strlcat(default_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE);</div><div> #else</div><div>        strlcpy(default_command_line, tag-&gt;u.cmdline.cmdline, COMMAND_LINE_SIZE);</div>
<div> #endif</div><div><br></div><div style>Was just suprised I am the first one that only want to override some of the uboot parameters. But guess, that what I want is to &quot;hacky&quot; as you would normally just change the uboot parameters.</div>
<div style><br></div><div style>Thanks guys</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 20, 2013 at 11:26 AM, Liviu Dudau <span dir="ltr">&lt;<a href="mailto:liviu@dudau.co.uk" target="_blank">liviu@dudau.co.uk</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Peter,<br>
<br>
The 4th option that you want doesn&#39;t exist.<br>
<br>
Thing is, if you want to overwrite some of u-boot options then the following<br>
two things are true:<br>
<br>
  a. you know the u-boot parameters<br>
  b. you know one (or many) of them are wrong<br>
<br>
Most people in that case use option 2) and overwrite the bootloader command<br>
line with the one they want. If you are worried about someone going into<br>
u-boot and adding another useful command line parameter that you might be<br>
missing if you use option 2) then you need to explain to them what they<br>
also need to correct in that command line that is currently broken.<br>
<br>
Best regards,<br>
Liviu<br>
<div><div class="h5"><br>
<br>
On Wed, Feb 20, 2013 at 10:17:31AM +0100, Peter Steenbergen wrote:<br>
&gt; Thanks Piyush,<br>
&gt;<br>
&gt; I know about the uboot saved parameters. The whole point is that I do not<br>
&gt; want to touch the by the factory flashed uboot. There are now three<br>
&gt; CONFIG_CMDLINE options<br>
&gt; 1) CONFIG_CMDLINE_BOOTLOADER == Always use the ones passed by the bootloader<br>
&gt; 2 CONFIG_CMDLINE_FORCE == Always use the under CMDLINE defined parameters,<br>
&gt; ignore the ones passed by the bootloader<br>
&gt; 3) CONFIG_EXTEND == Insert parameters and APPEND the ones passed by the<br>
&gt; bootloader. This is designed such, that you can define missing parameters<br>
&gt; not defined by the bootloader.<br>
&gt;<br>
&gt; With the latter, if you define a parameter which is also passed by the<br>
&gt; bootloader, the by CMDLINE configured one wil be overwritten by the one<br>
&gt; passed from the bootloader. This is simply because the function to fill for<br>
&gt; instance the rootfstype parameter is called twice.<br>
&gt;<br>
&gt; What I am basically are looking for is a fourth config option,<br>
&gt; CONFIG_CMDLINE_OVERRIDE, where the by the bootloader passed parameters are<br>
&gt; being appended by the ones defined in the CMDLINE. It is basically the<br>
&gt; EXTEND, but then the other way around. It still EXTENDS the ones not<br>
&gt; defined by the bootloader, but if you define a parameter in the kernel<br>
&gt; which is also set by the CMDLINE the ones from the bootloader are<br>
&gt; overwritten by the ones defined in the kernel.<br>
&gt;<br>
&gt; At this moment, a quick hack has been applied to set a boolean for the<br>
&gt; rootfstype one;<br>
&gt; <a href="https://github.com/j1nx/buildroot-linux-kernel-m3/commit/52476f9f911ee9c08acda0976331aa5465ff16a7" target="_blank">https://github.com/j1nx/buildroot-linux-kernel-m3/commit/52476f9f911ee9c08acda0976331aa5465ff16a7</a><br>

&gt; But a fourth CONFIG parameter will solve the same issue for any other<br>
&gt; possible parameters. The thing is; I can&#39;t believe I am the only one that<br>
&gt; wants to override uboot parameters. It might be already out there...<br>
&gt;<br>
&gt; Cheers<br>
&gt;<br>
&gt;<br>
&gt; On Wed, Feb 20, 2013 at 3:32 AM, Piyush Verma &lt;<a href="mailto:piyush.pv@gmail.com">piyush.pv@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; While booting we can stop at uboot prompt.<br>
&gt; &gt;<br>
&gt; &gt; there we can see all environment variable with printenv.<br>
&gt; &gt; we can change it by setenv. don&#39;t forget to save it by saveenv after<br>
&gt; &gt; changing environment variable.<br>
&gt; &gt;<br>
&gt; &gt; bootargs is the environment variable where we can pass all rootfs details.<br>
&gt; &gt;<br>
&gt; &gt; Does it solve ur issue ?<br>
&gt; &gt;<br>
&gt; &gt; On Wed, Feb 20, 2013 at 4:01 AM, Peter Steenbergen &lt;<a href="mailto:p.steenbergen@j1nx.nl">p.steenbergen@j1nx.nl</a>&gt;wrote:<br>
&gt; &gt;<br>
&gt; &gt;&gt; I am running into an issue with my Amlogic XBMC development. Before I go<br>
&gt; &gt;&gt; out searching the dark secrets of the linux kernel, I thought why not ask<br>
&gt; &gt;&gt; you guys first.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; There is this patch;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; <a href="http://lists.infradead.org/pipermail/linux-arm-kernel/2011-April/047506.html" target="_blank">http://lists.infradead.org/pipermail/linux-arm-kernel/2011-April/047506.html</a><br>
&gt; &gt;&gt; Which is used often. It adds the CONFIG_CMDLINE_EXTEND to the possible<br>
&gt; &gt;&gt; CMDLINE options. It is designed to prepend the cmdline parameters in case<br>
&gt; &gt;&gt; there are missing values. The passed parameters by uboot are then appended<br>
&gt; &gt;&gt; to the ones from CONFIG_CMDLINE.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; This all works fine if you indeed are missing parameters, but what if i<br>
&gt; &gt;&gt; want to overwrite/override an already by uboot passed parameter? (like<br>
&gt; &gt;&gt; root= and rootfstype=)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I don&#39;t want to FORCE everything, because I then have to take over the<br>
&gt; &gt;&gt; complete line as passed by uboot. If I do that I will loose the parameters<br>
&gt; &gt;&gt; set by variables within uboot (MAC)<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; If I set them in CMDLINE, then the ones passed from uboot are appended<br>
&gt; &gt;&gt; and overriding the ones from CMDLINE.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I also do not want to change uboot as that is still kind of tricky on the<br>
&gt; &gt;&gt; Amlogic boxes.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Do anyone of you guys have some tips and/or directions?<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; thanks<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; _______________________________________________<br>
&gt; &gt;&gt; arm-netbook mailing list <a href="mailto:arm-netbook@lists.phcomp.co.uk">arm-netbook@lists.phcomp.co.uk</a><br>
&gt; &gt;&gt; <a href="http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook" target="_blank">http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook</a><br>
&gt; &gt;&gt; Send large attachments to <a href="mailto:arm-netbook@files.phcomp.co.uk">arm-netbook@files.phcomp.co.uk</a><br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Thanks &amp; Regards<br>
&gt; &gt;<br>
&gt; &gt; Piyush Verma<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; arm-netbook mailing list <a href="mailto:arm-netbook@lists.phcomp.co.uk">arm-netbook@lists.phcomp.co.uk</a><br>
&gt; &gt; <a href="http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook" target="_blank">http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook</a><br>
&gt; &gt; Send large attachments to <a href="mailto:arm-netbook@files.phcomp.co.uk">arm-netbook@files.phcomp.co.uk</a><br>
&gt; &gt;<br>
<br>
&gt; _______________________________________________<br>
&gt; arm-netbook mailing list <a href="mailto:arm-netbook@lists.phcomp.co.uk">arm-netbook@lists.phcomp.co.uk</a><br>
&gt; <a href="http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook" target="_blank">http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook</a><br>
&gt; Send large attachments to <a href="mailto:arm-netbook@files.phcomp.co.uk">arm-netbook@files.phcomp.co.uk</a><br>
<br>
<br>
--<br>
</div></div>-------------------<br>
   .oooO<br>
   (   )<br>
    \ (  Oooo.<br>
     \_) (   )<br>
          ) /<br>
         (_/<br>
<br>
 One small step<br>
   for me ...<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
_______________________________________________<br>
arm-netbook mailing list <a href="mailto:arm-netbook@lists.phcomp.co.uk">arm-netbook@lists.phcomp.co.uk</a><br>
<a href="http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook" target="_blank">http://lists.phcomp.co.uk/mailman/listinfo/arm-netbook</a><br>
Send large attachments to <a href="mailto:arm-netbook@files.phcomp.co.uk">arm-netbook@files.phcomp.co.uk</a><br>
</div></div></blockquote></div><br></div>