From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0128.outbound.protection.outlook.com [207.46.100.128]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 756711A11B3 for ; Tue, 22 Dec 2015 14:42:23 +1100 (AEDT) Message-ID: <1450755731.18314.76.camel@freescale.com> Subject: Re: [RFC 1/1] powerpc: legacy serial port use device tree cell-index property From: Scott Wood To: Curt Brune , , , , , , , , CC: , Date: Mon, 21 Dec 2015 21:42:11 -0600 In-Reply-To: <1448477209-22340-2-git-send-email-curt@cumulusnetworks.com> References: <1448477209-22340-2-git-send-email-curt@cumulusnetworks.com> Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Wed, 2015-11-25 at 10:46 -0800, Curt Brune wrote: > Currently for PowerPC systems using device tree, the legacy serial > ports are allocated in the order by which they are found in the device > tree structure. > > This can cause problems in cases where the device tree nodes are > sysnthesized by an external program (kexec for example), which may not > preserve the original order of the device tree nodes. This in turn > can result in the serial console changing from ttyS0 to ttyS1 > unexpectedly. > > This patch uses the 'cell-index' property (if present) to map UART > device tree nodes to legacy serial port number. The cell-index > property is widely used in all the Freescale .dts files for PowerPC. > > Signed-off-by: Curt Brune > --- > arch/powerpc/kernel/legacy_serial.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/kernel/legacy_serial.c > b/arch/powerpc/kernel/legacy_serial.c > index 7b750c4..b717133 100644 > --- a/arch/powerpc/kernel/legacy_serial.c > +++ b/arch/powerpc/kernel/legacy_serial.c > @@ -164,6 +164,8 @@ static int __init add_legacy_soc_port(struct device_node > *np, > u64 addr; > const __be32 *addrp; > struct device_node *tsi = of_get_parent(np); > + int index = -1, len; > + u32 *indexp; > > /* We only support ports that have a clock frequency properly > * encoded in the device-tree. > @@ -188,14 +190,19 @@ static int __init add_legacy_soc_port(struct > device_node *np, > if (addr == OF_BAD_ADDR) > return -1; > > + /* Check if the ports have an ordering, defined by 'cell-index' */ > + if (((indexp = (u32*)of_get_property(np, "cell-index", &len)) != > NULL) && > + (len == sizeof(u32))) > + index = *indexp; const u32 * Or better, use of_read_number() or similar. -Scott From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [RFC 1/1] powerpc: legacy serial port use device tree cell-index property Date: Mon, 21 Dec 2015 21:42:11 -0600 Message-ID: <1450755731.18314.76.camel@freescale.com> References: <1448477209-22340-2-git-send-email-curt@cumulusnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1448477209-22340-2-git-send-email-curt@cumulusnetworks.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: Curt Brune , galak@codeaurora.org, ijc+devicetree@hellion.org.uk, mark.rutland@arm.com, pawel.moll@arm.com, benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au, robh+dt@kernel.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org List-Id: devicetree@vger.kernel.org T24gV2VkLCAyMDE1LTExLTI1IGF0IDEwOjQ2IC0wODAwLCBDdXJ0IEJydW5lIHdyb3RlOgo+IEN1 cnJlbnRseSBmb3IgUG93ZXJQQyBzeXN0ZW1zIHVzaW5nIGRldmljZSB0cmVlLCB0aGUgbGVnYWN5 IHNlcmlhbAo+IHBvcnRzIGFyZSBhbGxvY2F0ZWQgaW4gdGhlIG9yZGVyIGJ5IHdoaWNoIHRoZXkg YXJlIGZvdW5kIGluIHRoZSBkZXZpY2UKPiB0cmVlIHN0cnVjdHVyZS4KPiAKPiBUaGlzIGNhbiBj YXVzZSBwcm9ibGVtcyBpbiBjYXNlcyB3aGVyZSB0aGUgZGV2aWNlIHRyZWUgbm9kZXMgYXJlCj4g c3lzbnRoZXNpemVkIGJ5IGFuIGV4dGVybmFsIHByb2dyYW0gKGtleGVjIGZvciBleGFtcGxlKSwg d2hpY2ggbWF5IG5vdAo+IHByZXNlcnZlIHRoZSBvcmlnaW5hbCBvcmRlciBvZiB0aGUgZGV2aWNl IHRyZWUgbm9kZXMuICBUaGlzIGluIHR1cm4KPiBjYW4gcmVzdWx0IGluIHRoZSBzZXJpYWwgY29u c29sZSBjaGFuZ2luZyBmcm9tIHR0eVMwIHRvIHR0eVMxCj4gdW5leHBlY3RlZGx5Lgo+IAo+IFRo aXMgcGF0Y2ggdXNlcyB0aGUgJ2NlbGwtaW5kZXgnIHByb3BlcnR5IChpZiBwcmVzZW50KSB0byBt YXAgVUFSVAo+IGRldmljZSB0cmVlIG5vZGVzIHRvIGxlZ2FjeSBzZXJpYWwgcG9ydCBudW1iZXIu ICBUaGUgY2VsbC1pbmRleAo+IHByb3BlcnR5IGlzIHdpZGVseSB1c2VkIGluIGFsbCB0aGUgRnJl ZXNjYWxlIC5kdHMgZmlsZXMgZm9yIFBvd2VyUEMuCj4gCj4gU2lnbmVkLW9mZi1ieTogQ3VydCBC cnVuZSA8Y3VydEBjdW11bHVzbmV0d29ya3MuY29tPgo+IC0tLQo+ICBhcmNoL3Bvd2VycGMva2Vy bmVsL2xlZ2FjeV9zZXJpYWwuYyB8IDExICsrKysrKysrKy0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA5 IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93 ZXJwYy9rZXJuZWwvbGVnYWN5X3NlcmlhbC5jCj4gYi9hcmNoL3Bvd2VycGMva2VybmVsL2xlZ2Fj eV9zZXJpYWwuYwo+IGluZGV4IDdiNzUwYzQuLmI3MTcxMzMgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9w b3dlcnBjL2tlcm5lbC9sZWdhY3lfc2VyaWFsLmMKPiArKysgYi9hcmNoL3Bvd2VycGMva2VybmVs L2xlZ2FjeV9zZXJpYWwuYwo+IEBAIC0xNjQsNiArMTY0LDggQEAgc3RhdGljIGludCBfX2luaXQg YWRkX2xlZ2FjeV9zb2NfcG9ydChzdHJ1Y3QgZGV2aWNlX25vZGUKPiAqbnAsCj4gIAl1NjQgYWRk cjsKPiAgCWNvbnN0IF9fYmUzMiAqYWRkcnA7Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnRzaSA9 IG9mX2dldF9wYXJlbnQobnApOwo+ICsJaW50IGluZGV4ID0gLTEsIGxlbjsKPiArCXUzMiAqaW5k ZXhwOwo+ICAKPiAgCS8qIFdlIG9ubHkgc3VwcG9ydCBwb3J0cyB0aGF0IGhhdmUgYSBjbG9jayBm cmVxdWVuY3kgcHJvcGVybHkKPiAgCSAqIGVuY29kZWQgaW4gdGhlIGRldmljZS10cmVlLgo+IEBA IC0xODgsMTQgKzE5MCwxOSBAQCBzdGF0aWMgaW50IF9faW5pdCBhZGRfbGVnYWN5X3NvY19wb3J0 KHN0cnVjdAo+IGRldmljZV9ub2RlICpucCwKPiAgCWlmIChhZGRyID09IE9GX0JBRF9BRERSKQo+ ICAJCXJldHVybiAtMTsKPiAgCj4gKwkvKiBDaGVjayBpZiB0aGUgcG9ydHMgaGF2ZSBhbiBvcmRl cmluZywgZGVmaW5lZCBieSAnY2VsbC1pbmRleCcgKi8KPiArCWlmICgoKGluZGV4cCA9ICh1MzIq KW9mX2dldF9wcm9wZXJ0eShucCwgImNlbGwtaW5kZXgiLCAmbGVuKSkgIT0KPiBOVUxMKSAmJgo+ ICsJICAgIChsZW4gPT0gc2l6ZW9mKHUzMikpKQo+ICsJCWluZGV4ID0gKmluZGV4cDsKCmNvbnN0 IHUzMiAqCgpPciBiZXR0ZXIsIHVzZSBvZl9yZWFkX251bWJlcigpIG9yIHNpbWlsYXIuCgotU2Nv dHQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4 cHBjLWRldiBtYWlsaW5nIGxpc3QKTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcKaHR0cHM6 Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xpbnV4cHBjLWRldg==