[RFC PATCH 05/77] fdtdump: Change FDT_PROP prob handling to ease future addition

Herve Codina posted 77 patches 3 weeks, 5 days ago
[RFC PATCH 05/77] fdtdump: Change FDT_PROP prob handling to ease future addition
Posted by Herve Codina 3 weeks, 5 days ago
In order to ease future tags addition, perform operation related to
FDT_PROP when the tag is explicitly FDT_PROP instead of relying to a
kind of default value case.

Handle the FDT_PROP tag exactly in the same way as it is done for
other tags.

No functional modification.

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
 fdtdump.c | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/fdtdump.c b/fdtdump.c
index ec25edf..95a2274 100644
--- a/fdtdump.c
+++ b/fdtdump.c
@@ -129,23 +129,25 @@ static void dump_blob(void *blob, bool debug)
 			continue;
 		}
 
-		if (tag != FDT_PROP) {
-			fprintf(stderr, "%*s ** Unknown tag 0x%08"PRIx32"\n", depth * shift, "", tag);
-			break;
+		if (tag == FDT_PROP) {
+			sz = fdt32_to_cpu(GET_CELL(p));
+			s = p_strings + fdt32_to_cpu(GET_CELL(p));
+			if (version < 16 && sz >= 8)
+				p = PALIGN(p, 8);
+			t = p;
+
+			p = PALIGN(p + sz, 4);
+
+			dumpf("%04"PRIxPTR": string: %s\n", (uintptr_t)s - blob_off, s);
+			dumpf("%04"PRIxPTR": value\n", (uintptr_t)t - blob_off);
+			printf("%*s%s", depth * shift, "", s);
+			utilfdt_print_data(t, sz);
+			printf(";\n");
+			continue;
 		}
-		sz = fdt32_to_cpu(GET_CELL(p));
-		s = p_strings + fdt32_to_cpu(GET_CELL(p));
-		if (version < 16 && sz >= 8)
-			p = PALIGN(p, 8);
-		t = p;
-
-		p = PALIGN(p + sz, 4);
-
-		dumpf("%04"PRIxPTR": string: %s\n", (uintptr_t)s - blob_off, s);
-		dumpf("%04"PRIxPTR": value\n", (uintptr_t)t - blob_off);
-		printf("%*s%s", depth * shift, "", s);
-		utilfdt_print_data(t, sz);
-		printf(";\n");
+
+		fprintf(stderr, "%*s ** Unknown tag 0x%08"PRIx32"\n", depth * shift, "", tag);
+		break;
 	}
 }
 
-- 
2.52.0
Re: [RFC PATCH 05/77] fdtdump: Change FDT_PROP prob handling to ease future addition
Posted by Ayush Singh 3 weeks, 5 days ago
On 1/12/26 7:48 PM, Herve Codina wrote:

> In order to ease future tags addition, perform operation related to
> FDT_PROP when the tag is explicitly FDT_PROP instead of relying to a
> kind of default value case.
>
> Handle the FDT_PROP tag exactly in the same way as it is done for
> other tags.
>
> No functional modification.
>
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> ---
>   fdtdump.c | 34 ++++++++++++++++++----------------
>   1 file changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/fdtdump.c b/fdtdump.c
> index ec25edf..95a2274 100644
> --- a/fdtdump.c
> +++ b/fdtdump.c
> @@ -129,23 +129,25 @@ static void dump_blob(void *blob, bool debug)
>   			continue;
>   		}
>   
> -		if (tag != FDT_PROP) {
> -			fprintf(stderr, "%*s ** Unknown tag 0x%08"PRIx32"\n", depth * shift, "", tag);
> -			break;
> +		if (tag == FDT_PROP) {
> +			sz = fdt32_to_cpu(GET_CELL(p));
> +			s = p_strings + fdt32_to_cpu(GET_CELL(p));
> +			if (version < 16 && sz >= 8)
> +				p = PALIGN(p, 8);
> +			t = p;
> +
> +			p = PALIGN(p + sz, 4);
> +
> +			dumpf("%04"PRIxPTR": string: %s\n", (uintptr_t)s - blob_off, s);
> +			dumpf("%04"PRIxPTR": value\n", (uintptr_t)t - blob_off);
> +			printf("%*s%s", depth * shift, "", s);
> +			utilfdt_print_data(t, sz);
> +			printf(";\n");
> +			continue;
>   		}
> -		sz = fdt32_to_cpu(GET_CELL(p));
> -		s = p_strings + fdt32_to_cpu(GET_CELL(p));
> -		if (version < 16 && sz >= 8)
> -			p = PALIGN(p, 8);
> -		t = p;
> -
> -		p = PALIGN(p + sz, 4);
> -
> -		dumpf("%04"PRIxPTR": string: %s\n", (uintptr_t)s - blob_off, s);
> -		dumpf("%04"PRIxPTR": value\n", (uintptr_t)t - blob_off);
> -		printf("%*s%s", depth * shift, "", s);
> -		utilfdt_print_data(t, sz);
> -		printf(";\n");
> +
> +		fprintf(stderr, "%*s ** Unknown tag 0x%08"PRIx32"\n", depth * shift, "", tag);
> +		break;
>   	}
>   }
>   


This seems reasonable refactor independently from the rest of the patch 
series.


Reviewed-by: Ayush Singh <ayush@beagleboard.org>
Re: [RFC PATCH 05/77] fdtdump: Change FDT_PROP prob handling to ease future addition
Posted by David Gibson 3 weeks, 3 days ago
On Mon, Jan 12, 2026 at 09:11:52PM +0530, Ayush Singh wrote:
> On 1/12/26 7:48 PM, Herve Codina wrote:
> 
> > In order to ease future tags addition, perform operation related to
> > FDT_PROP when the tag is explicitly FDT_PROP instead of relying to a
> > kind of default value case.
> > 
> > Handle the FDT_PROP tag exactly in the same way as it is done for
> > other tags.
> > 
> > No functional modification.
> > 
> > Signed-off-by: Herve Codina <herve.codina@bootlin.com>
> > ---
> >   fdtdump.c | 34 ++++++++++++++++++----------------
> >   1 file changed, 18 insertions(+), 16 deletions(-)
> > 
> > diff --git a/fdtdump.c b/fdtdump.c
> > index ec25edf..95a2274 100644
> > --- a/fdtdump.c
> > +++ b/fdtdump.c
> > @@ -129,23 +129,25 @@ static void dump_blob(void *blob, bool debug)
> >   			continue;
> >   		}
> > -		if (tag != FDT_PROP) {
> > -			fprintf(stderr, "%*s ** Unknown tag 0x%08"PRIx32"\n", depth * shift, "", tag);
> > -			break;
> > +		if (tag == FDT_PROP) {
> > +			sz = fdt32_to_cpu(GET_CELL(p));
> > +			s = p_strings + fdt32_to_cpu(GET_CELL(p));
> > +			if (version < 16 && sz >= 8)
> > +				p = PALIGN(p, 8);
> > +			t = p;
> > +
> > +			p = PALIGN(p + sz, 4);
> > +
> > +			dumpf("%04"PRIxPTR": string: %s\n", (uintptr_t)s - blob_off, s);
> > +			dumpf("%04"PRIxPTR": value\n", (uintptr_t)t - blob_off);
> > +			printf("%*s%s", depth * shift, "", s);
> > +			utilfdt_print_data(t, sz);
> > +			printf(";\n");
> > +			continue;
> >   		}
> > -		sz = fdt32_to_cpu(GET_CELL(p));
> > -		s = p_strings + fdt32_to_cpu(GET_CELL(p));
> > -		if (version < 16 && sz >= 8)
> > -			p = PALIGN(p, 8);
> > -		t = p;
> > -
> > -		p = PALIGN(p + sz, 4);
> > -
> > -		dumpf("%04"PRIxPTR": string: %s\n", (uintptr_t)s - blob_off, s);
> > -		dumpf("%04"PRIxPTR": value\n", (uintptr_t)t - blob_off);
> > -		printf("%*s%s", depth * shift, "", s);
> > -		utilfdt_print_data(t, sz);
> > -		printf(";\n");
> > +
> > +		fprintf(stderr, "%*s ** Unknown tag 0x%08"PRIx32"\n", depth * shift, "", tag);
> > +		break;
> >   	}
> >   }
> 
> 
> This seems reasonable refactor independently from the rest of the patch
> series.

Agreed.  Merged.

> Reviewed-by: Ayush Singh <ayush@beagleboard.org>

-- 
David Gibson (he or they)	| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you, not the other way
				| around.
http://www.ozlabs.org/~dgibson