Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx> wrote on 02/12/2014 09:51:43 AM: > From: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx> > To: Kumar Gala <galak@xxxxxxxxxxxxxxxxxxx>, Stephen N Chivers > <schivers@xxxxxxxxxx> > Cc: linuxppc-dev@xxxxxxxxxxxxxxxx, Chris Proctor > <cproctor@xxxxxxxxxx>, devicetree <devicetree@xxxxxxxxxxxxxxx>, Arnd > Bergmann <arnd@xxxxxxxx> > Date: 02/12/2014 09:51 AM > Subject: Re: Linux-3.14-rc2: Order of serial node compatibles in DTS files. > > On 02/11/2014 11:33 PM, Kumar Gala wrote: > > > > On Feb 11, 2014, at 2:57 PM, Stephen N Chivers <schivers@xxxxxxxxxx> wrote: > > > >> I have been trial booting a 3.14-rc2 kernel for a 85xx platform > >> (dtbImage). > >> > >> After mounting the root filesystem there are no messages from the init > >> scripts > >> and the serial console is not available for login. > >> > >> In the kernel log messages there is: > >> > >> of_serial f1004500.serial: Unknown serial port found, ignored. > >> > >> The serial nodes in boards dts file are specified as: > >> > >> serial0: serial@4500 { > >> cell-index = <0>; > >> device_type = "serial"; > >> compatible = "fsl,ns16550", "ns16550"; > >> reg = <0x4500 0x100>; > >> clock-frequency = <0>; > >> interrupts = <0x2a 0x2>; > >> interrupt-parent = <&mpic>; > >> }; > >> > >> Reversing the order of the compatible: > >> > >> compatible = "ns16550", "fsl,ns16550"; > >> > >> restores the serial console. > >> > >> Linux-3.13 does not have this behaviour. > >> > >> There are 49 dts files in Linux-3.14-rc2 that have the fsl,ns16550 > >> compatible first. > > > > Hmm, > > > > Wondering if this caused the issue: > > > > commit 105353145eafb3ea919f5cdeb652a9d8f270228e > > Author: Sebastian Hesselbarth <sebastian.hesselbarth@xxxxxxxxx> > > Date: Tue Dec 3 14:52:00 2013 +0100 > > > > OF: base: match each node compatible against all given matches first > > [adding Arnd on Cc] > > Could be. I checked tty/serial/of_serial.c and it does not provide a > compatible for "fsl,ns16550". Does reverting the patch fix the issue > observed? > > I don't think the missing compatible is causing it, but of_serial > provides a DT match for .type = "serial" just to fail later on > with the error seen above. > > The commit in question reorders of_match_device in a way that match > table order is not relevant anymore. This can cause it to match > .type = "serial" first here. > > Rather than touching the commit, I suggest to remove the problematic > .type = "serial" from the match table. It is of no use anyway. Deleting the "serial" line from the match table fixes the problem. I tested it for both orderings of compatible. > > Sebastian Thanks, Stephen Chivers, CSC Australia Pty. Ltd. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html