linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Jerry Van Baren <gvb.linuxppc.dev@gmail.com>
To: Milton Miller <miltonm@bga.com>,
	 linuxppc-dev@ozlabs.org, Jon Loeliger <jdl@jdl.com>
Subject: Re: [PATCH dtc take 2] Fix reserve map output for asm format.
Date: Sun, 15 Apr 2007 21:20:53 -0400	[thread overview]
Message-ID: <4622CF75.2090909@gmail.com> (raw)
In-Reply-To: <20070416005145.GA19270@localhost.localdomain>

David Gibson wrote:
> On Sun, Apr 15, 2007 at 08:24:06PM -0400, Jerry Van Baren wrote:
>> Milton Miller wrote:
>>> Sometime around Sun Apr 15 12:29:14 EST 2007, Jerry Van Baren wrote:
>>>> Add extra reserve map slots output for asm format (previously done for 
>>>> dtb
>>>>   output).
>>>>
>>>> Signed-off-by: Gerald Van Baren <vanbaren at cideas.com>
>>>> ---
>>>>
>>>> Hi Jon, David,
>>>>
>>>> Here is a patch that fixes the asm output without the (unnecessary)
>>>> calloc change.
>>>>
>>>> Best regards,
>>>> gvb
>>>
>>> The previous description had
>>>> Use cmalloc to pre-zero memory (for dtb input) and handle dtb (binary)
>>>>   input being shorter than the total blob length (result of putting
>>>>   extra space in the blob).
>>>
>>> Which at least said in the description the unrelated things it was 
>>> doing.
>> That was my added comment WRT the change from malloc to cmalloc.  David 
>> wasn't wild about using cmalloc, so I removed it.  Using cmalloc is not 
>> necessary.
>>
>>>>         while (sizeleft) {
>>>> -               if (feof(f))
>>>> -                       die("EOF before reading %d bytes of DT blob\n",
>>>> -                           totalsize);
>>>> +               if (feof(f)) {
>>>> +                       WARNMSG("EOF after reading %d of %d bytes of 
>>>> DT blob, assuming there is extra space in the blob.\n",
>>>> +                           totalsize - sizeleft, totalsize);
>>>> +                       break;
>>>> +               }
>>> I thnk the above should be an ERROR and cause failure without
>>> the -f (force) option.
>>>
>>> The total_size says how much data should be copied.  Anything
>>> less and there is data missing.   Assuming zeros is wrong for
>>> most sections (the exception being the memory reserve list
>>> that had a terminating 0 entry within the read portion).
>>>
>>> milton
>> The reason total_size is bigger than the actual size is because I 
>> created the blob with extra space using the -S parameter.  It is 
>> intentionally bigger.  The extra space is ignored by dtc when creating a 
>> dts/asm format output which is why cmalloc() is unnecessary.
>>
>> I suppose we could require a -f force but I'm not wild about creating a 
>> nanny program.  There is nothing wrong with the blob - it parses just 
>> fine.  If there were problems with the blob contents, other errors would 
>> be raised.
> 
> I think the warning is fine, but not for exactly the reasons you
> state.  Several points:
> 
> - At least with v17 input, where it's possible, we probably *should*
> check that an input blob isn't truncated in the middle of the strings
> or structure sections.  That should be more than a warning.
> 
> - Milton, saying totalsize indicates the amount of data to be copied
> is misleading in this context.  That's a good philosphy for things
> that just read and/or slightly tweak the tree - data outside the known
> sections which it can't interpret should be left unaltered wherever
> possible.  dtc, however, *always* fully interprets and re-emits the
> tree.  Any data outside the known and understood sections is *always*
> discarded, so I don't think there's any problem assuming it to be
> zero.
> 
> - That said, I think when using -S, at least the default behaviour
> should emit extra zero bytes in addition to changing the totalsize
> header.  Then at least in the simplest case of feeding dtc's dtb
> output back into dtc, the warning will not occur.

Hi David,

Yes, emitting zeros (or asm equiv) for the extra space makes sense. 
That would be a better way to fix the read problem.

I'm thinking about a fill/nofill and/or specifying the value for the 
fill bytes, but I cannot think of a reason that would be useful (my 
first thought was filling with 0xFF for flash, but I think most or all 
fdt writes need to modify some existing values so being able to modify 
the extra space in-place doesn't help because the existing values cannot 
be modified in-place in flash).

Now to find some time to implement it...

Best regards,
gvb

  reply	other threads:[~2007-04-16  1:20 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-15  2:29 [PATCH dtc take 2] Fix reserve map output for asm format Jerry Van Baren
2007-04-15 19:59 ` Milton Miller
2007-04-16  0:24   ` Jerry Van Baren
2007-04-16  0:51     ` David Gibson
2007-04-16  1:20       ` Jerry Van Baren [this message]
2007-04-16  3:49       ` Milton Miller
2007-04-16  4:16         ` David Gibson
2007-04-16  5:08           ` Milton Miller
2007-04-16  6:30             ` David Gibson

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=4622CF75.2090909@gmail.com \
    --to=gvb.linuxppc.dev@gmail.com \
    --cc=jdl@jdl.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=miltonm@bga.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).