Thread (1 message) 1 message, 1 author, 2017-05-11

Re: using labels for stdout-path

From: Uwe Kleine-König <hidden>
Date: 2017-05-11 18:40:23

Hello,

On Thu, May 11, 2017 at 10:49:15AM -0500, Rob Herring wrote:
+dtc list because labels are purely dts syntax.
Ah, I wasn't aware that there is a separate list for that. Thanks.
On Thu, May 11, 2017 at 8:05 AM, Uwe Kleine-König
[off-list ref] wrote:
quoted
Hello,

on an i.MX28 based machine I want to have the console on &duart with
115200 Bd, 8 Bit, no parity.

The options for that are AFAICT:

 - use an alias, like:

        stdout-path = "serialX:115200n8";

   the problem here is, that the duart doesn't have an alias. I guess I
   shouldn't introduce a new one for my setup?

 - use a label, like:

        stdout-path = &duart, ":115200n8";

   This would be the prettiest, but that doesn't work, because there is
   a '\0' separating the path and the options.
You could make that work changing the kernel parsing, but that's
probably not a good option if we ever want to support more than 1 out
path.
Good point. That's a good reason to not use this syntax.
 
quoted
 - use the full path, like:

        stdout-path = "/apb@80000000/apbx@80040000/serial@80074000:115200n8";

   This is ugly.

Do I miss something? Is that worth to introduce new syntax, maybe

        stdout-path = &duart . ":115200n8";

or similar?
Seems like we should make a comma be significant in splitting strings.
I'm not sure if there's anything relying on "foo" "bar" and "foo",
"bar" being the same. At least for numbers, a comma has no meaning, so
it would complicate the parsing I'd imagine. Not really an area I'm
familiar with.
"foo" "bar" is a syntax error now (and another obvious candidate for
string concatination). So writing in the dts

	stdout-path = &duart ":115200n8";

and getting the same result as

	stdout-path = "/apb@80000000/apbx@80040000/serial@80074000:115200n8";

looks nicely and consistent with

	stdout-path = &duart;

being equivalent to

	stdout-path = "/apb@80000000/apbx@80040000/serial@80074000";

After a quick look into the dtc sources I imagine that wouldn't be too
hard to implement for someone being fluent in lex and yacc. And probably
it would be cheap to add the other obvious extensions like:

	property = < 0x12 0x43 > "a string" &label /incbin/(filename);

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help