BeagleBone Black - what still needs to be done for audio?

Russell Haley russ.haley at gmail.com
Thu Oct 27 00:37:13 UTC 2016


On Wed, Oct 26, 2016 at 4:27 PM, Russell Haley <russ.haley at gmail.com> wrote:
> On Wed, Oct 26, 2016 at 9:28 AM, Russell Haley <russ.haley at gmail.com> wrote:
>> On Wed, Oct 26, 2016 at 2:14 AM, Koz Ross <koz.ross at retro-freedom.nz> wrote:
>>> I've been meaning to get into both ARM and BSD for a while, so I decided I
>>> would begin with FreeBSD and a BeagleBone Black I have lying around. I read
>>> this page: https://wiki.freebsd.org/FreeBSD/arm/BeagleBoneBlack , which
>>> states
>>> that audio on the BBB 'still needs to be done'.
>>>
>>> I was wondering what it means by 'still needs to be done', and what
>>> precisely
>>> needs to be done to have working BBB audio. As I am very new to both ARM and
>>> BSD, could someone please fill me in? I would like to contribute if I can.
>>
>>
>> That page is a little out of date, but I don't have a recent image for
>> my BBB. Have you tried running the latest image? If I remember
>> correctly:
>>
>> https://www.freebsd.org/where.html -> download the sd card image.
>>
>> xzcat <download-dir>/FreeBSD-11.0-RELEASE-arm-armv6-BEAGLEBONE.img.xz
>> | dd of=/dev/da<yer-sd-card> bs=1m (or is it bs=1M?)
>>
>> The FreeBSD handbook is the place to start at. It will give you
>> directions on how to get your image set up:
>>
>> https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
>>
>> Once you're able to setup and test HDMI and have a running image,
>> you'll be in a better position to start looking at audio issues.
>>
>> Do you know anything about the BBB hardware? You'll need to find out
>> what the audio interface is and if the FreeBSD kernel supports it.
>> Then you need to find out if it's in the default kernel, if not,
>> you'll need to learn to build the kernel yourself (or build the module
>> and install and load it).
>
> I'm bored of Javascript at work... This looks like a good lead for you:
>
> https://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/05/28/bbb--audio-notes

Last post, I promise (with fingers crossed) and then I'll go home.
Talking to a hardware engineer, his general outline was this:

- I2S is a specific driver to output audio. It will typically be fed
into a hardware codec chip. That jives with the previous link I sent.
"The nice thing about the latter is what it derives the audio from; a
hardware I2S interface inside the AM3359, which sends data out to an
NXP TDA19988 for conversion to HDMI."

- The codec chip will need to be supported by the OS and is typically
set up using an I2C (Not I2S!)bus to set various configurations:
mono/stero/multichannel, data rates, output frequencies  and the like.

So:
- What is the state of I2S  for Arm on FreeBSD (specifically for the
TI AM3358)? I don't know.
- What is the state of the support for NXP TDA19988? Well it seems to
do video but not audio.

BBB Hardware schematic:
https://github.com/CircuitCo/BeagleBone-Black/blob/master/BBB_SCH.pdf?raw=true
-->See Page 10 of 11 for the schematics.

http://datasheet.octopart.com/TDA19988BHN-C1%2C551-NXP-Semiconductors-datasheet-67049582.pdf
--> General datasheet with a nice simple picture of the inputs and
outputs.

>From those two diagrams one could surmize that pins AP0, AP1 and ACLK
are input from the I2S bus. Finally, here is the driver set for the TI
chips:

https://svnweb.freebsd.org/base/head/sys/arm/ti/am335x/

I saw some HDMI stuff in am335x_lcd.c but didn't get any further than that.

Good Luck!
Russ


More information about the freebsd-arm mailing list