Beaglebone Serial Ports

Damjan Marion damjan.marion at gmail.com
Mon Feb 4 20:17:55 UTC 2013


On Feb 2, 2013, at 4:13 PM, Ian Lepore <ian at FreeBSD.org> wrote:

> On Sat, 2013-02-02 at 10:22 +0000, Iain Young wrote:
>> Hi Folks,
>> 
>> Just a quick question with regards to some clarification serial ports
>> on the Beaglbone and FreeBSD. Am I correct in deducing that FreeBSD
>> lacks support for UARTS1 thru 5 at the moment ?
>> 
>> I can see what I believe to be UART0 (which is attached to the USB) as
>> /dev/cuau0, but not the others. A few finds and greps through the
>> kernel source didn't show up anything obvious either.
>> 
>> Is any one working on them ? Or is there a kernel module or option
>> that I need to enable for them to build ?
>> 
> 
> According to the datasheet all the onboard uarts should be supported by
> our standard uart driver (but only uart1 has all the modem-control lines
> wired).  Two things need to be done to enable them: add entries to
> the .dts file (easy), and configure the multipurpose pins for them at
> runtime.  I have no idea how we handle the latter in the FDT world.  In
> the pre-FDT world it was pretty much ad-hoc and board-support routines
> that ran at startup configured pins for that board.

Actually it should be quite simple. There is pinmux section in DTS file where you can configure each pin you need.
I put into DTS file only stuff which is hardwired on board. That's the reason why just 1st serial port is enabled.
To enable other serial ports just DTS file needs to be edited:

1) into SCM configuration proper triplets <padname, muxname, padstate> should be inserted,  
possible values are in sys/arm/ti/am335x/am335x_scm_padconf.c

2) uart0 config can be copied with modified  memory address and interrupt (proper values can be found in TRM)

Would like to hear if it works as I never tried :)

Damjan


More information about the freebsd-arm mailing list