[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen stable-4.4] dt-uart: use ':' as separator between path and options



commit 4da395fe75c24cceb9337b64d4c96e8c2da29b2e
Author:     Ian Campbell <ian.campbell@xxxxxxxxxx>
AuthorDate: Thu Jan 8 11:53:55 2015 +0000
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Tue Jan 20 14:47:39 2015 +0000

    dt-uart: use ':' as separator between path and options
    
    ',' is a valid character in a device-tree path (see ePAPR v1.1 Table
    2-1), in fact ',' is actually pretty common in node names.
    
    Using ',' as a separator breaks for example on fast models. If you use
    the full path (/smb/motherboard/iofpga@3,00000000/uart@090000) rather
    than the alias then earlyprintk gives:
    
    (XEN) Looking for UART console /smb/motherboard/iofpga@3
    (XEN) Unable to find device "/smb/motherboard/iofpga@3"
    (XEN) Bad console= option 'dtuart'
    
    I actually noticed this on Jetson where the uart is
    "/serial@0,70006300" and there happened to be no alias defined.
    
    Instead use ':' as the separator, it is defined to terminate the path
    in the context of /chosen/stdout-path (Table 3-4) which is pretty
    closely analogous to the dtuart= option and so makes a pretty good
    choice (especially since the next patch adds support for stdout-path).
    
    Since no DT aware driver current supports any options there is no
    point in retaining support for ',' for backwards compatibility.
    
    Additionally, expand the buffer for the dtuart option, a path can be
    far longer than 30 characters (in fact the maximum size of a single
    node name is 31, so it's not even necessarily enough for an alias).
    128 is completely arbitrary and allows for paths at least 8 deep even
    with worst case node names.
    
    Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
    Reviewed-by: Julien Grall <julien.grall@xxxxxxxxxx>
    (cherry picked from commit f01af57300cb60ab0fd8487fb5bbbe97bee234f0)
    
    Conflicts:
        docs/misc/xen-command-line.markdown
            -- dropped since precursor patch not present.
---
 xen/drivers/char/dt-uart.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/xen/drivers/char/dt-uart.c b/xen/drivers/char/dt-uart.c
index d7204fb..0ffb6d7 100644
--- a/xen/drivers/char/dt-uart.c
+++ b/xen/drivers/char/dt-uart.c
@@ -26,13 +26,13 @@
 
 /*
  * Configure UART port with a string:
- * path,options
+ * path:options
  *
  * @path: full path used in the device tree for the UART. If the path
  * doesn't start with '/', we assuming that it's an alias.
  * @options: UART speficic options (see in each UART driver)
  */
-static char __initdata opt_dtuart[30] = "";
+static char __initdata opt_dtuart[256] = "";
 string_param("dtuart", opt_dtuart);
 
 void __init dt_uart_init(void)
@@ -48,7 +48,7 @@ void __init dt_uart_init(void)
         return;
     }
 
-    options = strchr(opt_dtuart, ',');
+    options = strchr(opt_dtuart, ':');
     if ( options != NULL )
         *(options++) = '\0';
     else
--
generated by git-patchbot for /home/xen/git/xen.git#stable-4.4

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.