Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. %%BeagleBone%% is supported by %%FreeBSD%%-CURRENT since August, 2012. Some of the details below are specific to the older white %%BeagleBone%%. There is a separate page with details for the newer [[arm/BeagleBoneBlack|BeagleBone Black]]. ---- ===== What is a BeagleBone? ===== The %%BeagleBone%% is a development/test board from the %%BeagleBoard%% project based on the TI AM3359 "Sitara" %%SoC%%. It features a modern ARMv7 processor and a wealth of on-chip peripheral support. Details can be found at: http://beagleboard.org/bone The %%BeagleBone%% is an easy way to learn about ARM development: it is inexpensive (about $89) and does not require any special skills or hardware to use. You connect it to your desktop with a Mini USB cable (which both powers the board and provides serial console access) and boot it from a %%MicroSDHC%% card with the system image. Once you have the %%BeagleBone%% working, you can expand it by connecting it to Ethernet, adding USB peripherals (such as external disk drives or wireless network interfaces) or attaching new hardware to the connectors on the board. There are two versions of the %%BeagleBone%%: * The original %%BeagleBone%% first shipped in December 2011. It can be recognized by the white circuit board. It had 256MB RAM and lacked Flash or video connectors. There were several minor board revisions labelled "A1" through "A6a". * The updated [[arm/BeagleBoneBlack|BeagleBone Black]] shipped in April 2013. It has a black circuit board. It has 512MB RAM, 2GB Flash, and micro-HDMI video connector. ---- ===== How to boot the BeagleBone ===== (The following is specific to the older white %%BeagleBone%%. See the [[arm/BeagleBoneBlack|BeagleBone Black]] page for information about the newer board.) 1. **Connect** the board to your %%FreeBSD%% system using a Mini-USB cable. The Mini-USB connector is on the bottom of the %%BeagleBone%%. The USB cable both powers the board and provides access to the serial console. 2. **Access** the serial console on the board from your desktop (You may need to load the uftdi driver into your kernel first): $ sudo cu -l /dev/ttyU1 -s 115200 3. **Insert** the %%MicroSDHC%% card into your %%BeagleBone%% 4. **Reboot** the %%BeagleBone%% by depressing the small switch next to the Ethernet port. ---- ===== Anatomy of a BeagleBone Boot Image ===== (This information applies to both the older white %%BeagleBone%% and the newer %%BeagleBone%% Black.) The %%FreeBSD%% bootable image for %%BeagleBone%% is an MBR-partitioned image with FAT and UFS partitions containing the following files: * FAT Partition * MLO - First stage boot, from U-Boot * BB-uboot.img - Second stage: U-Boot * BB-uEnv.txt - configuration for U-Boot * BBONE.DTB - Binary FDT, loaded by U-Boot * BBONE.DTS - Source FDT for reference * BBONEBLK.DTB - Binary FDT used on %%BeagleBone%% Black * BBONEBLK.DTS - Source FDT for reference * BBubldr - Third stage: %%FreeBSD%% bootloader * UFS Partition * /boot/kernel - %%FreeBSD%% kernel * ... rest of %%FreeBSD%% ... The boot process works like this: * AM3358 %%SoC%% ROM code inspects the %%MicroSDHC%% card, finds the MBR partition table and loads "MLO" from the first FAT partition. MLO is loaded before external RAM is initialized, so it has to be under 110k to fit within the on-chip RAM. MLO here is a stripped-down version of U-Boot. * MLO loads BB-UBOOT.IMG from the first FAT partition. U-Boot is a highly modular boot loader system that can be used on a wide variety of systems. The loader is configured with built-in script commands that can be partially overridden by additional commands in the BB-uEnv.txt file. * U-Boot loads BB-uEnv.txt and follows those commands to load BBubldr at address 0x88000000. ubldr is a variant of %%FreeBSD%%'s standard loader(8) program that is designed to be chain-loaded from U-Boot. It calls into U-Boot for low-level device access, which allows ubldr to load %%FreeBSD%% on any system that supports U-Boot. * ubldr locates the UFS partition, loads /boot/kernel/kernel from UFS to address 0x80200000 and executes it. Note: Except for MLO, which must have exactly that name in order to be found and loaded by the ROM code, all the FAT partition boot files named above begin with "BB." This convention is used by the Crochet build tool to allow more than one boot system to reside on the same disk image. %%FreeBSD%% images built by other means may not follow this convention. ===== Using WiFi ===== Various vendors sell a convenient, and small, 802.11 connector that supports up to 802.11N. The proper driver is the urtwn(4) and this {{arm/BeagleBone/BBB-WiFi?linkonly|BBB-WiFi}} kernel config has been modified to include proper support for both Wifi and the device driver. **NOTE: Wifi has only been testing on the Beagle Bone Black** arm/beaglebone.txt Last modified: 2019/09/06 23:11by LorenzoSalvadore