version 1.9, 2015/04/15 12:45:16
|
version 1.16, 2015/12/07 09:32:48
|
Line 1
|
Line 1
|
[[!meta title="NetBSD/evbarm on BeagleBone"]] |
[[!meta title="NetBSD/evbarm on BeagleBone and BeagleBone Black"]] |
|
|
[[images/beaglebone.jpg]] |
[[images/beaglebone.jpg]] |
|
|
This page attempts to document and coordinate efforts towards NetBSD on [BeagleBone](http://beagleboard.org/bone) and [BeagleBone Black](http://beagleboard.org/black). |
This page attempts to document and coordinate efforts towards NetBSD on |
|
[BeagleBone](http://beagleboard.org/bone) and |
|
[BeagleBone Black](http://beagleboard.org/black). |
|
|
(BeagleBone [image](http://www.flickr.com/photos/sparkfun/8267577194/) by SparkFun Electronics used under CC-By-2.0 license) |
(BeagleBone [image](http://www.flickr.com/photos/sparkfun/8267577194/) by |
|
SparkFun Electronics used under CC-By-2.0 license) |
|
|
# What works |
[[!toc levels=2]] |
|
|
|
# Supported hardware |
- Boots multi-user on [[!template id=man name="ld" section="4"]] @ [[!template id=man name="sdmmc" section="4"]] root and [[!template id=man name="com" section="4"]] console. |
- Boots multi-user on [[!template id=man name="ld" section="4"]] @ [[!template id=man name="sdmmc" section="4"]] root and [[!template id=man name="com" section="4"]] console. |
- Ethernet ([[!template id=man name="cpsw" section="4" arch="evbarm"]]) |
- Ethernet ([[!template id=man name="cpsw" section="4" arch="evbarm"]]) |
|
- SD/MMC controller (SD card and eMMC) |
- EDMA3 (for [[!template id=man name="sdhc" section="4"]]) |
- EDMA3 (for [[!template id=man name="sdhc" section="4"]]) |
- USB (host) |
- USB (host) |
- I²C |
- I²C |
- CPU frequency scaling (various speeds between 300MHz and 1GHz) |
- CPU frequency scaling (various speeds between 300MHz and 1GHz) |
|
- Random number generator [[!template id=man name="trng" section="4"]] |
|
- GPIO (<i>-current since Nov 1, 2015</i>) |
|
|
# What needs work |
# TODO |
- SPI |
- SPI |
- GPIO |
- eMMC 8-bit mode |
- Framebuffer/graphics with LCD or DVI/HDMI capes |
- Framebuffer/graphics with LCD or DVI/HDMI capes |
- Touchscreens on LCD capes |
- Touchscreens on LCD capes |
- USB (device) |
- USB (device) |
|
|
|
# BeagleBone Black User LEDs |
|
|
|
The four blue user LEDs on the BeagleBone Black are wired to GPIO1_21 through |
|
GPIO1_24. To control the LEDs from userland, set **gpio=YES** in rc.conf and |
|
add this to */etc/gpio.conf*: |
|
|
|
[[!template id=programlisting text=""" |
|
gpio1 21 set out USR0 |
|
gpio1 22 set out USR1 |
|
gpio1 23 set out USR2 |
|
gpio1 24 set out USR3 |
|
"""]] |
|
|
|
After rebooting, the LED states can be controlled with |
|
[[!template id=man name="gpioctl" section="8"]]. |
|
|
|
[[!template id=programlisting text=""" |
|
# turn the USR0 light on |
|
gpioctl gpio1 USR0 on |
|
|
|
# turn the USR0 light off |
|
gpioctl gpio1 USR0 off |
|
|
|
# toggle the USR0 light state |
|
gpioctl gpio1 USR0 toggle |
|
"""]] |
|
|
|
|
# Sample dmesg |
# Sample dmesg |
[[!template id=filecontent name="dmesg" text=""" |
[[!template id=filecontent name="dmesg" text=""" |
NetBSD 7.99.9 (BEAGLEBONE) #2: Tue Apr 14 20:24:09 ADT 2015 |
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, |
Jared@Jared-PC:/cygdrive/d/netbsd/src/sys/arch/evbarm/compile/obj/BEAGLEBONE |
2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 |
|
The NetBSD Foundation, Inc. All rights reserved. |
|
Copyright (c) 1982, 1986, 1989, 1991, 1993 |
|
The Regents of the University of California. All rights reserved. |
|
|
|
NetBSD 7.0 (BEAGLEBONE.201509250726Z) |
total memory = 512 MB |
total memory = 512 MB |
avail memory = 503 MB |
avail memory = 503 MB |
sysctl_createv: sysctl_create(machine_arch) returned 17 |
sysctl_createv: sysctl_create(machine_arch) returned 17 |
|
kern.module.path=/stand/evbarm/7.0/modules |
timecounter: Timecounters tick every 10.000 msec |
timecounter: Timecounters tick every 10.000 msec |
mainbus0 (root) |
mainbus0 (root) |
cpu0 at mainbus0 core 0: 550 MHz Cortex-A8 r3p2 (Cortex V7A core) |
cpu0 at mainbus0 core 0: 550 MHz Cortex-A8 r3p2 (Cortex V7A core) |
Line 49 gpmc0 at mainbus0 base 0x50000000: Gener
|
Line 91 gpmc0 at mainbus0 base 0x50000000: Gener
|
gpmc0: CS#0 valid, addr 0x08000000, size 256MB |
gpmc0: CS#0 valid, addr 0x08000000, size 256MB |
com0 at obio0 addr 0x44e09000-0x44e09fff intr 72: ns16550a, working fifo |
com0 at obio0 addr 0x44e09000-0x44e09fff intr 72: ns16550a, working fifo |
com0: console |
com0: console |
sdhc0 at obio0 addr 0x48060100-0x48060fff intr 64: SDHC controller (EDMA) |
sdhc0 at obio0 addr 0x48060100-0x48060fff intr 64sdhc0: EDMA tx channel 24, rx channel 25 |
|
: SDHC controller (EDMA) |
sdhc0: SD Host Specification 2.0, rev.49 |
sdhc0: SD Host Specification 2.0, rev.49 |
sdhc0: using DMA transfer |
sdhc0: using DMA transfer |
sdmmc0 at sdhc0 slot 0 |
sdmmc0 at sdhc0 slot 0 |
sdhc1 at obio0 addr 0x481d8100-0x481d8fff intr 28: SDHC controller (EDMA) |
sdhc1 at obio0 addr 0x481d8100-0x481d8fff intr 28sdhc1: EDMA tx channel 2, rx channel 3 |
|
: SDHC controller (EDMA) |
sdhc1: SD Host Specification 2.0, rev.49 |
sdhc1: SD Host Specification 2.0, rev.49 |
sdhc1: using DMA transfer |
sdhc1: using DMA transfer |
sdmmc1 at sdhc1 slot 0 |
sdmmc1 at sdhc1 slot 0 |
Line 62 iic0 at tiiic0: I2C bus
|
Line 106 iic0 at tiiic0: I2C bus
|
seeprom0 at iic0 addr 0x50: AT24Cxx or compatible EEPROM: size 32768 |
seeprom0 at iic0 addr 0x50: AT24Cxx or compatible EEPROM: size 32768 |
tps65217pmic0 at iic0 addr 0x24: TPS65217C Power Management Multi-Channel IC (rev 1.2) |
tps65217pmic0 at iic0 addr 0x24: TPS65217C Power Management Multi-Channel IC (rev 1.2) |
tps65217pmic0: power sources USB max 1300 mA, [AC] max 2500 mA |
tps65217pmic0: power sources USB max 1300 mA, [AC] max 2500 mA |
tps65217pmic0: [LDO1: 1800 mV] [LDO2: 3300 mV] [LDO3: 1800 mV] [LDO4: 3300 mV] [DCDC1: 1500 mV] [DCDC2: 1325 mV] [DCDC3: 1100 mV] |
tps65217pmic0: [LDO1: 1800 mV] [LDO2: 3300 mV] [LDO3: 1800 mV] [LDO4: 3300 mV] [DCDC1: 1500 mV] [DCDC2: 1100 mV] [DCDC3: 1100 mV] |
omapdmtimer0 at obio0 addr 0x48040000-0x48040fff intr 68: DMTIMER2 |
omapdmtimer0 at obio0 addr 0x48040000-0x48040fff intr 68: DMTIMER2 |
omapdmtimer1 at obio0 addr 0x44e31000-0x44e31fff intr 67: DMTIMER1ms |
omapdmtimer1 at obio0 addr 0x44e31000-0x44e31fff intr 67: DMTIMER1ms |
omapdmtimer2 at obio0 addr 0x48044000-0x48044fff intr 92: DMTIMER4 |
omapdmtimer2 at obio0 addr 0x48044000-0x48044fff intr 92: DMTIMER4 |
Line 74 motg1: Dynamic FIFO sizing detected, ass
|
Line 118 motg1: Dynamic FIFO sizing detected, ass
|
usb0 at motg1: USB revision 2.0 |
usb0 at motg1: USB revision 2.0 |
cpsw0 at obio0 addr 0x4a100000-0x4a107fff intrbase 40: TI CPSW Ethernet |
cpsw0 at obio0 addr 0x4a100000-0x4a107fff intrbase 40: TI CPSW Ethernet |
cpsw0: Ethernet address 90:59:af:5c:d0:94 |
cpsw0: Ethernet address 90:59:af:5c:d0:94 |
ukphy0 at cpsw0 phy 0: OUI 0x00800f, model 0x000f, rev. 1 |
ukphy0 at cpsw0 phy 0WARNING: module error: vfs load failed for `miiverbose', error 45 |
|
: OUI 0x00800f, model 0x000f, rev. 1 |
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto |
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto |
|
trng0 at obio0 addr 0x48310000-0x48311fff intr 111 |
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0 |
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0 |
timecounter: Timecounter "dmtimer" frequency 24000000 Hz quality 100 |
timecounter: Timecounter "dmtimer" frequency 24000000 Hz quality 100 |
uhub0 at usb0: Mentor Graphics MOTG root hub, class 9/0, rev 1.00/1.00, addr 1 |
uhub0 at usb0: Mentor Graphics MOTG root hub, class 9/0, rev 1.00/1.00, addr 1 |
Line 86 ld1: 1832 MB, 930 cyl, 64 head, 63 sec,
|
Line 132 ld1: 1832 MB, 930 cyl, 64 head, 63 sec,
|
ld1: 4-bit width, bus clock 52.000 MHz |
ld1: 4-bit width, bus clock 52.000 MHz |
boot device: ld1 |
boot device: ld1 |
root on ld1a dumps on ld1b |
root on ld1a dumps on ld1b |
root file system type: ffs |
|
kern.module.path=/stand/evbarm/7.99.9/modules |
|
"""]] |
"""]] |
|
|
|
|
- Growing the root file-system |
|
- During the partitioning process, do not delete or format the |
|
first MSDOS (FAT) partition, as this is what your firmware by default boots from |
|
(unless you have prepared a boot partition on other media). |
|
- For accident-free operation of resize_ffs, the filesystem it is supposed to grow needs to be either not mounted or at least not mounted for writing. |
|
To do that for a root filesystem, reboot to single user, and at the prompt to enter the pathname of shell, press |
|
return for the default (/bin/sh). |
|
- At the # prompt, type |
|
|
|
"disklabel -i ld0" and press return. |
|
- At the partition> prompt type "A" and press return. |
|
|
|
Adjust disklabel sector from 4194304 to 62333952 [n]? |
|
Type "y" and press return. |
|
- partition> prompt type "a" and press return. |
|
|
|
Filesystem type prompt, press return to use the current value (4.2BSD). |
|
Start offset prompt, press return to use the current value. |
|
Partition size prompt, type "$" and press return to grow the |
|
partition to use all available free space. |
|
- partition> prompt type "W" to save the changes to the disklabel. |
|
|
|
Confirm this choice by typing "y" at the Label disk prompt. |
|
Type "Q" and press return to quit disklabel. |
|
- At the # prompt (shell), type |
|
|
|
fsck -fy /dev/rld0a |
|
resize_ffs -y /dev/rld0a |
|
- This may take a few minutes, be patient! |
|
|
|
fsck -fy /dev/rld0a |
|
mount_msdos /dev/ld0e /boot |
|
reboot |
|
- When the system comes back up, the root file-system will have been expanded to |
|
fill the SD card. |
|