Date: Mon, 13 Feb 2017 09:56:40 -0700 From: Ian Lepore <ian@freebsd.org> To: Tony Hain <tony@tndh.net>, "'Oleksandr Tymoshenko'" <gonzo@bluezbox.com> Cc: freebsd-arm@freebsd.org Subject: Re: Questions about BBB/BBG dtb names vs. content Message-ID: <1487005000.10020.292.camel@freebsd.org> In-Reply-To: <0fe001d285c7$032c32a0$098497e0$@tndh.net> References: <0ee901d28406$052ed070$0f8c7150$@tndh.net> <20170211015231.GA56071@bluezbox.com> <0f3901d2849a$3ac2ca40$b0485ec0$@tndh.net> <1486841770.10020.287.camel@freebsd.org> <0fe001d285c7$032c32a0$098497e0$@tndh.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2017-02-12 at 23:01 -0800, Tony Hain wrote: > > > > > -----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 */ > }; > 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"; > }; > It looks like you've designed it so that you have to modify the stock source to include that file above. Instead, reverse that. Remove the block that has the model= and all, and in its place do #include "am335x-bonegreen.dts" and then follow that with the &am33xx_pinmux {...} and #uartN {...} blocks you already have. Then you just need to tell crochet to build that dts file instead of (or in addition to) the standard ones. I don't use crochet, so I'm not sure how to make it do that, but someone here can probably give us the right incantation. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1487005000.10020.292.camel>