Date: Sun, 12 Feb 2017 23:01:34 -0800 From: "Tony Hain" <tony@tndh.net> To: "'Ian Lepore'" <ian@freebsd.org>, "'Oleksandr Tymoshenko'" <gonzo@bluezbox.com> Cc: <freebsd-arm@freebsd.org> Subject: RE: Questions about BBB/BBG dtb names vs. content Message-ID: <0fe001d285c7$032c32a0$098497e0$@tndh.net> In-Reply-To: <1486841770.10020.287.camel@freebsd.org> References: <0ee901d28406$052ed070$0f8c7150$@tndh.net> <20170211015231.GA56071@bluezbox.com> <0f3901d2849a$3ac2ca40$b0485ec0$@tndh.net> <1486841770.10020.287.camel@freebsd.org>
index | next in thread | previous in thread | raw e-mail
> -----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 > > 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 > > There is not necessarily any relationship between dts/dtb filenames and > any compat strings within the dtb. The compat strings are defined by the > bindings documentation, and are essentially a contract between the dts > source and the device driver source. The filenames are a separate contract, > mostly between vendors and the u-boot source, but even those don't have > to agree. > > 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. (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 = "TI AM335x BeagleBone Green"; compatible = "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx"; }; &am33xx_pinmux { uart0_pins: uart0_pins { pinctrl-single,pins = < /* 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 = < 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 = < 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 = < // 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 = < 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 = < 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 = "default"; pinctrl-0 = <&uart0_pins>; status = "okay"; // status = "disabled"; }; &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>; status = "okay"; // status = "disabled"; }; &uart2 { pinctrl-names = "default"; pinctrl-0 = <&uart2_pins>; // status = "okay"; status = "disabled"; }; &uart3 { pinctrl-names = "default"; pinctrl-0 = <&uart3_pins>; // status = "okay"; status = "disabled"; }; &uart4 { pinctrl-names = "default"; pinctrl-0 = <&uart4_pins>; // status = "okay"; status = "disabled"; }; &uart5 { pinctrl-names = "default"; pinctrl-0 = <&uart5_pins>; // status = "okay"; status = "disabled"; };home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0fe001d285c7$032c32a0$098497e0$>
