From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Thu, 13 Aug 2009 11:23:26 +0200 Subject: [U-Boot] LIBFDT - changing command line In-Reply-To: <4A837625.6010507@gmail.com> References: <4A81C88B.3090808@monstr.eu> <4A81F16D.9070001@gmail.com> <4A825F5D.9030207@monstr.eu> <4A837625.6010507@gmail.com> Message-ID: <4A83DB8E.1030707@monstr.eu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Jerry Van Baren wrote: > Hi Michal, > > Michal Simek wrote: >> Jerry Van Baren wrote: >>> Hi Michal >>> >>> Michal Simek wrote: >>>> Hi All, >>>> >>>> I would like to use fdt for changing command line in DTB but >>>> I found there is one problem if I have longer command line which >>>> contains >>>> any spaces. >>>> Below is my workflow. >>>> If I understand correctly the problem is in >>>> cmd_fdt.c:fdt_parse_prop:593-603. >>>> It will be worth to add case for supporting >>>> fdt set /chosen bootargs "console=ttyUL root=/dev/mtdblock0" >>>> copy from first " to next " >>>> >>>> Or is it there any solution which I miss for this case? >>>> >>>> Thanks, >>>> Michal >>> It is somewhat ugly, but the you can use "\" to escape the spaces: >>> fdt set /chosen bootargs console=ttyUL\ root=/dev/mtdblock0 >> >> Of course I tried it but simply not work. >> >> >> U-Boot-mONStR> fdt list /chosen >> chosen { >> bootargs = "console=ttyUL0,115200 highres=on >> root=/dev/mtdblock0"; >> linux,stdout-path = "/plb at 0/serial at 84000000"; >> }; >> U-Boot-mONStR> fdt set /chosen bootargs console=ttyUL\ root=dev >> U-Boot-mONStR> fdt list /chosen >> chosen { >> bootargs = "root=dev"; >> linux,stdout-path = "/plb at 0/serial at 84000000"; >> }; >> U-Boot-mONStR> >> >> Can you tried it on your ppc? >> >> Michal > > It is working for me. Are you running the "hush" shell or the old > scripting interpreter? old scripting. With hush works + 11kB. Thanks, Michal > > => fdt print /chosen > chosen { > linux,stdout-path = "/soc8360 at e0000000/serial at 4500"; > }; > => fdt set /chosen bootargs console=ttyUL\ root=/dev/mtdblock0 > => fdt print /chosen > chosen { > bootargs = "console=ttyUL root=/dev/mtdblock0"; > linux,stdout-path = "/soc8360 at e0000000/serial at 4500"; > }; > => fdt set /chosen bootargs console=ttyUL\ root=dev > => fdt print /chosen > chosen { > bootargs = "console=ttyUL root=dev"; > linux,stdout-path = "/soc8360 at e0000000/serial at 4500"; > }; > > Best regards, > gvb -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/ Microblaze U-BOOT custodian