From owner-freebsd-arm@freebsd.org Mon Feb 13 07:01:42 2017 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4CAAFCDCD3E for ; Mon, 13 Feb 2017 07:01:42 +0000 (UTC) (envelope-from tony@tndh.net) Received: from express.tndh.net (express.tndh.net [IPv6:2001:470:e930:1240:20d:56ff:fe04:4c0a]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 280A2E50; Mon, 13 Feb 2017 07:01:42 +0000 (UTC) (envelope-from tony@tndh.net) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tndh.net; s=dkim; h=Subject:Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID:Date:In-Reply-To:References:Cc:To:From; bh=XnMYR/mqA8I1OW0RUsjru0NJRepy9WV+PkcCDj4VRr4=; b=AsI8Ef8RpZDqhvc+U36tDUG3qgC+j9EgRLYfuC3rWhOXKkYQyGaIPKTpUAsiCVaK7XXzTnhLjyOOg9Ct1xSMjS9YYEvxqhsqEsxJTVCZTYgBeuEw9FC0bNl3xmYaOuDNS/DRNLxjCXqiClr43eqCL6oofyUVzWdDWDZhUjfTUI+SmB8i; Received: from express.tndh.net ([2001:470:e930:1240:20d:56ff:fe04:4c0a] helo=eaglet) by express.tndh.net with esmtp (Exim 4.72 (FreeBSD)) (envelope-from ) id 1cdAdi-000FIM-04; Sun, 12 Feb 2017 23:01:40 -0800 From: "Tony Hain" To: "'Ian Lepore'" , "'Oleksandr Tymoshenko'" Cc: References: <0ee901d28406$052ed070$0f8c7150$@tndh.net> <20170211015231.GA56071@bluezbox.com> <0f3901d2849a$3ac2ca40$b0485ec0$@tndh.net> <1486841770.10020.287.camel@freebsd.org> In-Reply-To: <1486841770.10020.287.camel@freebsd.org> Date: Sun, 12 Feb 2017 23:01:34 -0800 Message-ID: <0fe001d285c7$032c32a0$098497e0$@tndh.net> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQCzikkuUoxhpHAkDcVcrtsdCslcNQH9hJ4TAXN5MpwBwWtU/aN60AuA Content-Language: en-us X-SA-Exim-Connect-IP: 2001:470:e930:1240:20d:56ff:fe04:4c0a X-SA-Exim-Mail-From: tony@tndh.net X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on express.tndh.net X-Spam-Level: X-Spam-Status: No, score=-1.0 required=4.5 tests=ALL_TRUSTED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1 Subject: RE: Questions about BBB/BBG dtb names vs. content X-SA-Exim-Version: 4.2 X-SA-Exim-Scanned: Yes (on express.tndh.net) X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Feb 2017 07:01:42 -0000 > -----Original Message----- > From: Ian Lepore [mailto:ian@freebsd.org] > Sent: Saturday, February 11, 2017 11:36 AM > To: Tony Hain; 'Oleksandr Tymoshenko' > Cc: freebsd-arm@freebsd.org > Subject: Re: Questions about BBB/BBG dtb names vs. content >=20 > On Sat, 2017-02-11 at 11:08 -0800, Tony Hain wrote: > > > > > > > [...] > > > > There is still the open question about the "compatible" strings > > containing "-" while the file names do not. If that is what is = coming > > from upstream and expected, fine. I just wanted to check to make = sure > > something didn't get crossed up during the name changes. Hopefully I > > will get a green build done this weekend. > > > > Tony >=20 > There is not necessarily any relationship between dts/dtb filenames = and > =A0any compat strings within the dtb. =A0The compat strings are = defined by the > bindings documentation, and are essentially a contract between the dts > source and the device driver source. =A0The filenames are a separate contract, > mostly between vendors and the u-boot source, but even those don't = have > to agree. >=20 > Anybody can set the u-boot fdt_file env var to anything they want. = IMO, that > is the right way to handle all this freebsd and local user customization... if you > want a uart device enabled, then create your own tony-bb.dts that = includes > the standard beaglebone source, then adds the few lines of code needed = to > enable the uart, and in u-boot just do setenv fdt_file tony-bb.dtb; > saveenv. =A0(At least until overlay support settles down and finds its = way into > freebsd.) So how would I get crochet to build that dtb? As far as I can tell I = need to add an include line in the black file, including the compatible for = green, because I can't follow the sequence that actually builds the dts = initially. I did put together a dts for all 6 uarts, because it was a pita to find = and correlate the references which are not collected as a complete set = anywhere as far as I can tell. I offer it here for contrib if it is useful for = the short term, or for the dtbo effort. I am running crochet now, so I am = not positive this works yet, but it should be close. /* am335x-bone-uarts.dts * * BeagleBone Green / Black - All 6 uarts defined : * this was difficult to find as the SRM doesn't include the address offset, * and example dts files found by search were incomplete, many = with incorrect offsets * eventually tripped over address offset P8/9 maps at: * http://www.siue.edu/~gengel/bbbWebStuff/BeagleboneBlackP8HeaderTable.pdf * http://www.siue.edu/~gengel/bbbWebStuff/BeagleboneBlackP9HeaderTable.pdf * coorelated with 335x pin map at * http://www.ti.com/lit/ds/symlink/am3359.pdf zcz ball number matches above tables * * compiled by Tony Hain - 2/12/17 * * modify comment markers below to enable/disable required uarts * * add #include "am335x-bone-uarts.dts" to board dts */ /dts-v1/; / { model =3D "TI AM335x BeagleBone Green"; compatible =3D "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; }; &am33xx_pinmux { uart0_pins: uart0_pins { pinctrl-single,pins =3D < /* Addr offset | Direction | MuxMode | Connector | Proc = pin | SignalName | Conflict */ AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* J1_4 E15 uart0_rxd */ AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* J1_5 E16 uart0_txd */ // AM33XX_IOPAD(0x978, PIN_OUTPUT | MUX_MODE5) /* P9_20 = D18 uart0_ctsn ! uart1_cts*/ // AM33XX_IOPAD(0x97c, PIN_INPUT | MUX_MODE5) /* P9_19 = D17 uart0_rtsn ! uart1_rts*/ >; }; uart1_pins: uart1_pins { pinctrl-single,pins =3D < AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE0) /* P9_26 = D16 uart1_rxd */ AM33XX_IOPAD(0x984, PIN_INPUT | MUX_MODE0) /* P9_24 = D15 uart1_txd */ // AM33XX_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE0) /* P9_20 = D18 uart1_ctsn ! uart0_cts*/ // AM33XX_IOPAD(0x97c, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* P9_19 = D17 uart1_rtsn ! uart0_rts*/ // AM33XX_IOPAD(0xXxx, PIN_INPUT_PULLDOWN | MUX_MODE5) /* No_pin = G16 uart1_ri */ // AM33XX_IOPAD(0xXxx, PIN_INPUT_PULLDOWN | MUX_MODE5) /* No_pin = K18 uart1_dcd */ // AM33XX_IOPAD(0xXxx, PIN_INPUT_PULLDOWN | MUX_MODE5) /* No_pin = L18 uart1_dsr */ // AM33XX_IOPAD(0xXxx, PIN_OUTPUT_PULLDOWN | MUX_MODE5) /* No_pin = L17 uart1_dtr */ >; }; uart2_pins: uart2_pins { pinctrl-single,pins =3D < AM33XX_IOPAD(0x950, PIN_INPUT | MUX_MODE1) /* P9_22 = A17 uart2_rxd */ AM33XX_IOPAD(0x954, PIN_OUTPUT | MUX_MODE1) /* P9_21 = B17 uart2_txd */ // AM33XX_IOPAD(0x8c0, PIN_INPUT_PULLDOWN | MUX_MODE6) /* P8_37 U1 uart2_ctsn ! uart5_txd*/ // AM33XX_IOPAD(0x8b8, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* P8_38 U2 uart2_rtsn ! uart5_rxd*/ >; }; uart3_pins: uart3_pins { pinctrl-single,pins =3D < // AM33XX_IOPAD(0xXxx, PIN_INPUT | MUX_MODE1) /* No_pin = C15 uart3_rxd ! hdmi */ AM33XX_IOPAD(0x964, PIN_OUTPUT_PULLUP | MUX_MODE1) /* P9_42 = C18 uart3_txd */ // AM33XX_IOPAD(0x8c8, PIN_INPUT_PULLUP | MUX_MODE6) /* P8_36 U3 uart3_ctsn */ // AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE6) /* P8_34 U4 uart3_rtsn */ >; }; uart4_pins: uart4_pins { pinctrl-single,pins =3D < AM33XX_IOPAD(0x870, PIN_INPUT_PULLUP | MUX_MODE6) /* P9_11 = T17 uart4_rxd */ AM33XX_IOPAD(0x874, PIN_OUTPUT_PULLDOWN | MUX_MODE6) /* P9_13 = U17 uart4_txd */ // AM33XX_IOPAD(0x8d0, PIN_INPUT_PULLUP | MUX_MODE6) /* P8_35 V2 uart4_ctsn */ // AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE6) /* P8_33 V3 uart4_rtsn */ >; }; uart5_pins: uart5_pins { pinctrl-single,pins =3D < AM33XX_IOPAD(0x8c4, PIN_INPUT | MUX_MODE4) /* P8_38 U2 uart5_rxd ! uart2_rts*/ AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE4) /* P8_37 U1 uart5_txd ! uart2_cts*/ // AM33XX_IOPAD(0x8d8, PIN_INPUT_PULLUP | MUX_MODE6) /* P8_31 V4 uart5_ctsn */ // AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE6) /* P8_32 T5 uart5_rtsn */ >; }; }; &uart0 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart0_pins>; status =3D "okay"; // status =3D "disabled"; }; &uart1 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart1_pins>; status =3D "okay"; // status =3D "disabled"; }; &uart2 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart2_pins>; // status =3D "okay"; status =3D "disabled"; }; &uart3 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart3_pins>; // status =3D "okay"; status =3D "disabled"; }; &uart4 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart4_pins>; // status =3D "okay"; status =3D "disabled"; }; &uart5 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart5_pins>; // status =3D "okay"; status =3D "disabled"; };