On Sat, Apr 29, 2023 at 04:29:50PM +1000, David Gibson wrote: > On Fri, Apr 28, 2023 at 01:32:17PM +0200, Uwe Kleine-König wrote: > > From: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > > > > A string that contains '\0' can be written as a list of strings e.g. > > > > clock-names = "di0_pll\0di1_pll\0di0_sel\0di1_sel\0di2_sel\0di3_sel\0di0\0di1"; > > > > is equivalent to > > > > clock-names = "di0_pll", "di1_pll", "di0_sel", "di1_sel", "di2_sel", "di3_sel", "di0", "di1"; > > > > The latter is easier to read, to use this format instead. > > > > Two test files are adapted accordingly to keep the test suite happy. > > > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > > --- > > Changes since (implicit) v1, sent with Message-Id: > > 20230426182405.572729-1-u.kleine-koenig@xxxxxxxxxxxxxx: > > > > - Adapt the test suite > > > > tests/type-preservation.dt.yaml | 2 +- > > tests/type-preservation.dts | 2 +- > > treesource.c | 2 +- > > 3 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/tests/type-preservation.dt.yaml b/tests/type-preservation.dt.yaml > > index a0cc64cc4b69..e238d395aa02 100644 > > --- a/tests/type-preservation.dt.yaml > > +++ b/tests/type-preservation.dt.yaml > > @@ -12,7 +12,7 @@ > > int16-matrix: [!u16 [0x1234, 0x5678], [0x90ab, 0xcdef]] > > int64: [!u64 [0x200000000]] > > int64-array: [!u64 [0x100000000, 0x0]] > > - a-string-with-nulls: ["foo\0bar", "baz"] > > + a-string-array: ["foo", "bar", "baz"] > > > Ah. I was afraid of this. So "fixing" the test highlights another > problem. It's pretty clear to me that the whole point of this test is > to test the preservation of the internal \0, as distinct from the > separate strings later in there. So, this is exercising an edge case > of the typing markers we now add. > > Now.. personally, I've never been particularly convinced that the type > preservation stuff was a particularly good idea. It will never be > perfect, and it can give a misleading impression that information is > preserved into the dtb which isn't. But, it's pretty well established > now, and I assume people had reasons for wanting it. > > So, your patch makes things nicer when going from dtb -> dts, but > breaks an established feature when going dts -> dts, or dts -> yaml. > So, I think we need to rethink. > > Rather than changing how "strings" are emitted, I think you want to > change how we guess typing information when coming from dtb: instead > of just putting a single string marker on the property, we should put > one after every \0 and we should get the output you're after. Yeah, sounds reasonable. I looked into that, and I don't see an easy way to do that. I'll put that aside and concentrate on the other two bigger changes (i.e. not overwriting phandles by an overlay and label/reference restoring) first. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Attachment:
signature.asc
Description: PGP signature