[U-Boot] LIBFDT - changing command line

Michal Simek
2009-08-11T19:37:47Z

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

U-Boot-mONStR> tftp 90780000 system.dtb
Using Xilinx LL TEMAC device
TFTP from server 192.168.0.102; our IP address is 192.168.0.3
Filename 'system.dtb'.
Load address: 0x90780000
Loading: 100BASE-T/FD
#
done
Bytes transferred = 9121 (23a1 hex)
U-Boot-mONStR> fdt addr 90780000
U-Boot-mONStR> fdt h
magic: 0xd00dfeed
totalsize: 0x23a1 (9121)
off_dt_struct: 0x38
off_dt_strings: 0x14a0
off_mem_rsvmap: 0x28
version: 17
last_comp_version: 16
boot_cpuid_phys: 0x0
size_dt_strings: 0xf01
size_dt_struct: 0x1468
number mem_rsv: 0x0

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/mtdblock0
U-Boot-mONStR> fdt list /chosen
chosen {
bootargs = "root=/dev/mtdblock0";
linux,stdout-path = "/plb at 0/serial at 84000000";
};
U-Boot-mONStR>

--
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