From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen N Chivers Subject: Re: Linux-3.14-rc2: Order of serial node compatibles in DTS files. Date: Wed, 12 Feb 2014 09:38:26 +1000 Message-ID: References: <20140206082635.GA7048@visitor2.iram.es> <20140207101036.GA823@visitor2.iram.es> <20140210110342.GA15806@visitor2.iram.es> <20140211072606.GA26514@visitor2.iram.es> <63AEBD99-AA87-4FD7-BBDA-0CE419959F14@kernel.crashing.org> <52FAA97F.4060600@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <52FAA97F.4060600@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Sebastian Hesselbarth Cc: Chris Proctor , Arnd Bergmann , devicetree , Stephen N Chivers , linuxppc-dev@lists.ozlabs.org List-Id: devicetree@vger.kernel.org Sebastian Hesselbarth wrote on 02/12/2014 09:51:43 AM: > From: Sebastian Hesselbarth > To: Kumar Gala , Stephen N Chivers > > Cc: linuxppc-dev@lists.ozlabs.org, Chris Proctor > , devicetree , Arnd > Bergmann > 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 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 > > 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.