device-tree on BeagleBone Black (enabling UART)

Kristoff kristoff at skypro.be
Sat Feb 6 23:58:42 UTC 2021


Hi all,


I was pointed to this mailing-list by the FreeBSD "stand" at fosdem.


I am running FreeBSD 12.1 on a beaglebone black. As I want to use it for 
a time-server (i.e. connect it to a GPS), I want to enable an additional 
UART (and also a pps gpio-pin, I guess).


I have been trying to create a DTS-overlay file for this, but for some 
reason, I do not get this OK.


The overlay file (see below) I use is below.

Some remarks:
- I compile the blob with dtc, copy the file to /boot/DTB and modify 
/boot/loader.conf
I guess this is correct?

- when I do "ofwdump -a -p", I see that UART1_pins exists, but no UART1.

- while searching the web, I found multiple posts about this. What I 
have noticed is that in quite a lot of them, in the DTS file the pinmux 
for the UART has the TX pins first followed by the RX pin.
However, looking the output of ofwdump, that seams to have the RX pin 
first. (at least for UART0, which does seams to work)

So am I correct to assume that the pinmux must have the RX pin


Can somebody shed some light on this?

Any feedback would be welcome.
As far as I see, enabling an UART using the Device-tree should be quite 
simple, so I do not understand why I cannot get this to work.


--- cut here --- cut here --- cut here --- cut here --- cut here --- cut 
here --- cut here --- cut here ---
/dts-v1/;
/plugin/;

/ {
         compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";

         fragment at 0 {
                 target = <&am33xx_pinmux>;
                 __overlay__ {
                         uart1_pins: pinmux_uart1_pins {
                                 pinctrl-single,pins = <
                                     0x180 0x25 /* P9.26 
uart1_rxd.uart1_rxd MODE5 INPUT (RX) */
                                     0x184 0x05 /* P9.24 
uart1_txd.uart1_txd MODE5 OUTPUT (TX) */
                                 >;
                   };
                 };
         };

         fragment at 1 {
                 target = <&uart1>;
                 __overlay__ {
                                                         status = "okay";
pinctrl-names = "default";
                                                         pinctrl-0 = 
<&uart1_pins>;
                 };
         };
};


--- cut here --- cut here --- cut here --- cut here --- cut here --- cut 
here --- cut here --- cut here ---



Cheerio! Kr. Bonne.



More information about the freebsd-arm mailing list