Hi Quentin, On Mon, 4 May 2026 at 07:10, Quentin Schulz <[email protected]> wrote: > > On 5/4/26 3:02 PM, Simon Glass wrote: > > Hi Quentin, > > > > On Mon, 4 May 2026 at 06:59, Quentin Schulz <[email protected]> > > wrote: > >> > >> Hi Simon, > >> > >> On 5/4/26 2:49 PM, Simon Glass wrote: > >>> Hi Quentin, > >>> > >>> On Mon, 27 Apr 2026 at 03:14, Quentin Schulz <[email protected]> > >>> wrote: > >>>> > >>>> Hi Simon, Marek, > >>>> > >>>> On 4/22/26 4:31 AM, Simon Glass wrote: > >>>>> When producing a DTB from fdtgrep, there is no way to reserve extra > >>>>> space so that more nodes/properties can be added at runtime without > >>>>> growing totalsize first. > >>>>> > >>>> > >>>> Ok but why is that an issue? What is the actual usecase? What I'm afraid > >>>> of is that you pad enough and you hit random bugs because you forget > >>>> that adding enough properties can now hit the size limit and you forgot > >>>> to add the logic to resize/grow the fdt when it's too small to fit new > >>>> properties. > >>> > >>> I'm going to leave this question to Marek :-) > >>> > >>>> > >>>>> Add a -B/--pad option that appends a caller-specified number of free > >>>>> bytes after the strings section and grows totalsize accordingly. The > >>>>> padding is applied after fdt_pack(), so it is not reclaimed when -r is > >>>>> used. > >>>>> > >>>>> Suggested-by: Marek Vasut <[email protected]> > >>>>> Signed-off-by: Simon Glass <[email protected]> > >>>>> --- > >>>>> > >>>>> tools/binman/btool/fdtgrep.py | 3 ++- > >>>>> tools/fdtgrep.c | 31 ++++++++++++++++++++++++++++++- > >>>>> 2 files changed, 32 insertions(+), 2 deletions(-) > >>>>> > >>>>> diff --git a/tools/binman/btool/fdtgrep.py > >>>>> b/tools/binman/btool/fdtgrep.py > >>>>> index 446b2f4144b..7b393241878 100644 > >>>>> --- a/tools/binman/btool/fdtgrep.py > >>>>> +++ b/tools/binman/btool/fdtgrep.py > >>>>> @@ -16,9 +16,10 @@ Output formats are: > >>>>> dtb - device tree blob (sets -Hmt automatically) > >>>>> bin - device tree fragment (may not be a valid .dtb) > >>>>> > >>>>> -Options: -[haAc:b:C:defg:G:HIlLmn:N:o:O:p:P:rRsStTvhV] > >>>>> +Options: -[haAB:c:b:C:defg:G:HIlLmn:N:o:O:p:P:rRsStTvhV] > >>>>> -a, --show-address Display address > >>>>> -A, --colour Show all nodes/tags, colour > >>>>> those that match > >>>>> + -B, --pad <arg> Append free space to the output > >>>>> FDT, for later growth > >>>>> -b, --include-node-with-prop <arg> Include contains containing > >>>>> property > >>>>> -c, --include-compat <arg> Compatible nodes to include in > >>>>> grep > >>>>> -C, --exclude-compat <arg> Compatible nodes to exclude in > >>>>> grep > >>>> > >>>> I'm tempted to remove this and just tell people to look at the > >>>> documentation in tools/fdtgrep.c. Especially since we don't actually > >>>> allow the user to pass any of those parameters themselves via the > >>>> bintool, so it isn't actually useful. > >>> > >>> I would like fdtgrep to give useful help, though. It is a tool which > >>> can stand alone. > >>> > >> > >> Yes, but this here is docstring for the fdtgrep *Bintool* module which > >> actually doesn't support most of the arguments specified here. So I > >> would say it's more confusing to have it there than not have anything. > >> For sure we want to keep documentation of fdtgrep, the tool as in > >> tools/fdtgrep.c, complete and up-to-date! > > > > Ah yes, I just generated it directly from fdtgrep. So perhaps we > > should have no argument docs here and just mention what the bintool > > actually supports / uses? > > > > It only matters what the bintool exposes as API, create_for_phase() is > one for example. I'm assuming you *could* call run_cmd() on the bintool > and provide a list of arguments yourself but then there's no point > documenting this in the bintool as it'll only be a thin wrapper around > fdtgrep itself? See what we have for mkimage bintool for example?
i.e. very little :-) Yes that seems fine. I'll keep an eye on this thread and send v2 when you and Marek have resolved the other questions. Regards, Simon

