All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anatolij Gustschin <agust@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] FDT retrived raspberry pi bootargs length > 350 characters cause setenv errors, sequemce fdt get/ set/ get truncates at the first blank in the string.
Date: Thu, 24 Nov 2016 10:12:23 +0100	[thread overview]
Message-ID: <20161124101223.72ee16b6@crub> (raw)
In-Reply-To: <217373290.719742.1479933982741@mail.yahoo.com>

On Wed, 23 Nov 2016 20:46:22 +0000 (UTC)
dh at synoia.com dh at synoia.com wrote:

>On Wed, 23 Nov 2016 01:26:22 +0000 (UTC)
>dh at synoia.com dh at synoia.com wrote:
>...
>> 8250.nr_uarts=0 dma.dmachans=0x7f35 bcm2708_fb.fbwidth=3840 bcm2708_fb.fbheight=2160 bcm2709.boardrev=0xa02082 bcm2709.serial=0x998f552d smsc95xx.macaddr=B8:27:EB:8F:55:2D bcm2708_fb.fbswap=1 bcm2709.uart_clock=48000000 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000? dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
>> 1 ) Note: bootargs is over 480 characters long
>>
>> setenv abc $bootargs fails...when bootargs is over 350 (approx) characters long.?
>> fdt set bootargs /chosen bootargs
>> fdt get value bootargs /chosen bootargsbootargs=8250.nr_uarts=0Bootargs is truncated
>> The PI firmware generated bootargs parameters have blanks in the bootargs line.?
>> nvalue.c implements setenv in the _do_env_set()? routine, but I cannot find a length limit in that routine.
>> I'm willing to make the changes and test them.  
>
>please check CONFIG_SYS_MAXARGS and CONFIG_SYS_BARGSIZE and increase
>them in your board config file (include/configs/rpi.h ?). See README
>for description of these macros.
>If CONFIG_SYS_BARGSIZE is not defined, the default value 512 is used.
>Define a bigger value and test if it works.
>
>Also if you set long environment strings manually with console
>commands, the console input buffer might be to small. In that
>case check CONFIG_SYS_CBSIZE in your board config file.
>
>
>Set:
>CONFIG_SYS_MAXARGS ????32
>CONFIG_SYS_BARGSIZE???? 1024
>
>Success! This works.
>
>Console is not a problem, I cannot type that many characters without
>an error or two.

okay, I just wanted to mention CONFIG_SYS_CBSIZE for the sake
of completeness.

>Issue possibly remaining:
>sequence fdt get/ set/ get truncates bootargs at the first blank
>in the string of bootargs.
>This is only a problem if bootargs is passed to the kernel through
>the fdt, and not as separate character string. I do not know which
>is the mechanism used.
>Further testing on this remains.

In your description above I see the command:

 fdt set bootargs /chosen bootargs

This is wrong and could not work. You probably used:

 fdt set /chosen bootargs $bootargs

It will insert multiple tokens separated by comma, e.g.:

=> setenv bootargs 'arg1 arg2 arg3'
=> fdt set /chosen bootargs $bootargs
=> fdt pri /chosen                   
chosen {
	bootargs = "arg1", "arg2", "arg3";
};
=> fdt get value bootargs /chosen bootargs
=> pri bootargs
bootargs=arg1

This is the behaviour you observe.

To avoid tokenizing the bootargs property in the blob you have
to use an intermediate step, e.g.:

=> seten args "\"$bootargs\""
=> pri args
args="arg1 arg2 arg3"

=> fdt set /chosen bootargs $args
=> fdt pri /chosen
chosen {
	bootargs = "arg1 arg2 arg3";
};

=> fdt get value bootargs /chosen bootargs
=> pri bootargs
bootargs=arg1 arg2 arg3

--
Anatolij

       reply	other threads:[~2016-11-24  9:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <217373290.719742.1479933982741.ref@mail.yahoo.com>
     [not found] ` <217373290.719742.1479933982741@mail.yahoo.com>
2016-11-24  9:12   ` Anatolij Gustschin [this message]
2016-11-24 21:24     ` [U-Boot] FDT retrived raspberry pi bootargs length > 350 characters cause setenv errors, sequemce fdt get/ set/ get truncates at the first blank in the string dh at synoia.com
     [not found] <CANwerB1MuiXGcV15popB08CfjVisdqO4ejpjgR7QtBz8tuqt9w@mail.gmail.com>
     [not found] ` <1521360278.969111.1478746084415@mail.yahoo.com>
     [not found]   ` <CANwerB0LsgVe+1JJtteukoVSJwHQh+dCzkHy-bjDq7_xxyjS2A@mail.gmail.com>
     [not found]     ` <1803431681.1017120.1478753042164@mail.yahoo.com>
     [not found]       ` <CANwerB24A5P2-17RAO11ZNnPn6S7+bk4HhRi3kB7xmskzEidwA@mail.gmail.com>
     [not found]         ` <1877254354.2540034.1478911787854@mail.yahoo.com>
     [not found]           ` <CANwerB1S=NZ6NuSBZwWQm5DTBQjvxL=0nLYYy_9NqW6b_V_bHA@mail.gmail.com>
     [not found]             ` <1282684168.2965147.1479002677632@mail.yahoo.com>
     [not found]               ` <CAM-ziR5HXmQTY1YXpjnxC-tXggqa+AGTjUgcBh6r3St5dX3BmA@mail.gmail.com>
2016-11-14  0:08                 ` [U-Boot] FDT retrived varaibles appear to have different properties fom other u-boot variables - and are corrupted on get, set, get sequence dh at synoia.com
2016-11-17 15:07                   ` Tom Rini
     [not found]                     ` <956355993.2194594.1479405341872@mail.yahoo.com>
2016-11-19 17:06                       ` [U-Boot] Fw: " dh at synoia.com
2016-11-23  1:26                         ` [U-Boot] FDT retrived raspberry pi bootargs length > 350 characters cause setenv errors, sequemce fdt get/ set/ get truncates at the first blank in the string dh at synoia.com
2016-11-23  8:33                           ` Anatolij Gustschin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161124101223.72ee16b6@crub \
    --to=agust@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.