# BeagleBone Blue



## wfvining (Mar 29, 2018)

Does anyone have any experience using FreeBSD on BeagleBone Blue? I have tried to boot from an SD card, but it seems like nothing has happened (just the LEDs that are illuminated when power is applied light, and nothing else happens). This device does not have serial pins (like the BB Black) so I am not sure how to check if it is booting, or hung on something. Any advice?

Thanks,
Will


----------



## tingo (Mar 30, 2018)

It has WiFi built in, and (apparently) sets up it's own AP on first boot (not sure if this applies on FreeBSD). Do you see a BeagleBone-XXXX ssid nearby?
It also has networking over usb. If you connect it via usb to another computer, does any usb network interfaces show up?


----------



## wfvining (Mar 30, 2018)

Thanks for your reply tingo. Those interfaces do come up when connected to linux (when I connect the board to a freebsd machine it causes a kernel panic and the BSD machine crashes, but that is another problem). Unfortunately all of those interfaces are brought up after the board boots the default linux distro in the onboard flash memory. I can't actually get the board to boot FreeBSD from a microSD card. It behaves as if there is no SD card present. I looked at the image (FreeBSD 11.1 RELEASE) for arm/beaglebone and it does not have the same set of files in the FAT partiton that are described on the Wiki page for FreeBSD on beaglebone. I'm not sure if something changed in the boot process, or if I need to pull those missing u-boot related files from somewhere else.

Thanks,
Will


----------



## Phishfry (Mar 31, 2018)

wfvining said:


> can't actually get the board to boot FreeBSD from a microSD card. It behaves as if there is no SD card present.


Have you tried holding down the "boot" button to start from sdcard?

You might have to whip up your own image.
I think the default beaglebone-black.dts might be a problem as the blue looks like alot of hardware changes.
FreeBSD Arm is now using all the Linux GNU DTS stuff in the /src/sys/gnu/dts dir.

So maybe do some Linux dumps with `ofwdump -a` and then work that back to FreeBSD.
You might just need to use a beaglebone-blue.dtb instead of beaglebone-black.dtb.
The /boot/dtb directory has these critical files:
beaglebone.dtb
beaglebone-black.dtb
ufw.dtb
The other am335x files are actually symlinks to the above.

So the first file should be applicable to all Beaglebones
Whereas the beaglebone-black.dtb is specific to the Black.
So you either need to mod that file and delete all the non-relevant onboard computer periphery or find the file that the Linux distro is using.
Like I say it might be as simple as adding a beaglebone-blue.dtb to your /boot/dtb dir.
(Note this does not mean you can simply copy the Linux file. It must be decompiled on Linux and transfered over then recompiled in FreeBSD)
I would really look at your shipping Linux distro. Maybe image the "mmc" distro and work on it offline.

Now those files from the FreeBSD /boot/dtb directory are the finish DTB blobs.
You could also modify KERNCONF=BEAGLEBONE into BEAGLEBONEBLUE and add the needed Blue DTS files there.
I have recent amd64 cross-compile instructions up here for BBB. This would be the proper route.

FreeBSD on Beaglebone will actually relinquish control of the onboard LED's so when booted no board LED's are on except  for the ethernet jack activity lights. The LED's are available for gpio usage instead.


----------



## Phishfry (Mar 31, 2018)

Then we come to the topic of the wireless chipset. Is it supported by a FreeBSD driver? That could be a problem..


----------



## wfvining (Mar 31, 2018)

This is very helpful, thank you. Just to clarify, can I compile the dtb files on any freebsd machine, or do they need to be compiled on another arm machine (I did not see a cross compile option in the help for 'dtc'? 

If the wireless chipset is unsupported, will that stop me from booting, or just from using the wireless interface? 

Lastly, when I add the compiled dtb files, do I need to change a config somewhere to point at the beaglebone-blue.dtb instead of the black one?


----------



## Phishfry (Mar 31, 2018)

wfvining said:


> do they need to be compiled on another arm machine


I have not built/modified a dtb on another platform except for building an image. I would imagine that the same instructions as crosscompiling could be used. For example set env = arm.


wfvining said:


> If the wireless chipset is unsupported, will that stop me from booting, or just from using the wireless interface?


No it will still boot.


wfvining said:


> Lastly, when I add the compiled dtb files, do I need to change a config somewhere to point at the beaglebone-blue.dtb instead of the black one?


That was why I brought up KERNCONF. It is the official config for the boards. You can easily make your own.
It will compile cross-compile your dts for you.

So you will need to keep the beaglebone-black.dtb file name unless you use your own kernconf.
You could try substituting it, replacing it with a renamed beaglebone-blue.dtb


----------



## Phishfry (Mar 31, 2018)

I just looked through the FreeBSD 11.1 source and I got it mixed up.
am335x-boneblack.dtb is the actual file. beaglebone-black.dtb is the symbolic link in /boot/dtb

So looking through the source I see in /usr/src/sys/gnu/dts/arm
am335xboneblack.dts
am335xbonegreen.dts

I would imagine you need a am335xboneblue.dts

I also don't see direct dtb filenames in kernconf BEAGLEBONE.
It looks like they just use entire directory:
makeoptions    MODULES_EXTRA="dtb/am335x am335x_dmtpps"

Just a FYI. You should probably check FreeBSD -CURRENT to see if there is newer work in progress.


----------



## Phishfry (Apr 1, 2018)

Nicola Mingotti  had some problems and asked this question on the mailing list regarding Beaglebone Green
https://lists.freebsd.org/pipermail/freebsd-arm/2018-March/017771.html

So even the Green may not be supported fully yet.

FreeBSD 12 uses GENERIC arm kernconf in an effort to unify the Arm builds.
So the instructions might change a little depending on what your using.


----------



## Phishfry (Apr 1, 2018)

I just checked on my FreeBSD -CURRENT machine from Dec2017.
It has a am335x-boneblue.dts in the usr/src/sys/gnu/dts/arm directory.
So i guessed that part right.
Not sure any kernconf config should be necessary with the GENERIC armv7 kernconf.
The configs for building an image are here: /usr/src/release/arm/BEAGLEBONE.conf


----------



## Nicola Mingotti (Apr 1, 2018)

I admit did not read all messages guys... but as Phishfry said, I confirm there are issues booting on BB-Green. Both with FreeBSD-11.1 and FreeBSD-12. I tested last time ~ 10 days ago. So, for now, stick to the Black.

wfvining, it extremely important you discover how to connect a serial to BB-Blue, it surprises me enogh it does not have the same pins for serial as the BBB and BBG.

My personal opinion it that there must be a way to connect over serial line, maybe it is on one of those many connectors I seen in the board picture.  *In the improbable case you can not connect to the machine via serial, I would drop that platform all together*. 

I am also quite impressed I can not find easily the System Reference Manual ! 
I have it for the Black, I and I am sure I saw it for the Green (still I did not print it).
This is not a good signal.


----------



## wfvining (May 28, 2018)

The many connectors include several UART connections that some people say can be used to monitor the boot status and get a console, so perhaps all hope is not lost. I just have to find a connector of the right type. 

As for documentation it is frustratingly and surprisingly difficult to find, but it does seem to exist spread over several pdfs in a few github repositories.

Thanks for the help, everyone, I'm new to the embedded game.


----------

