-
Notifications
You must be signed in to change notification settings - Fork 0
Bubblegum Getting Started Guide
This document describes how to get started with the Bubblegum-96 96Board community development board.
The following information is provided in these release notes:
-
Using the Bubblegum-96 Board
Information on using the Bubblegum-96 board and the Debian 8.0 ("Jessie") OS software on the Bubblegum-96 board. -
Updating Debian on the Bubblegum-96
Information on updating Debian 8.0 on the Bubblegum-96 board. -
Board Recovery
Information on board recovery and loading a bootloader onto the Bubblegum-96 board. - Hardware notes
- Known Issues
-
Building Software from Source Code
Information on building software for the Bubblegum-96 board from source code. -
Appendices
Information on the partition table used on Bubblegum-96 and the contents of the boot partition.
To get started you will need a power supply, a USB ethernet adapter and a USB keyboard and mouse.
IMPORTANT NOTES
At present the following interfaces are not supported. A future software update will introduce support for these devices:
- HDMI port
- WiFi and Bluetooth
- microSD card
The Bubblegum-96 board requires an external power supply providing 12V at 2A. (The board will also work with 9V or 15V power supplies). It is not possible to power the board from a USB power supply because the board can use more power than is available from a standard USB power supply. The Bubblegum-96 board uses a standard DC barrel jack with a 1.7mm barrel, center pin positive. An adapter cable is required to use power supplies with 2.1mm barrel jacks.
Suggested power solutions and adapters can be found here.
Link 1-2 causes Bubblegum-96 to auto-power up when power is applied. Links 3-4 should be not fitted (open). If Link 1-2 is not installed then the back edge push button switch near the power jack is used to power on the Bubblegum-96 board. Make sure a cable is NOT connected between the front side microUSB port (next to the HDMI port) and a PC as this will cause the board to start up in fastboot mode.
To use the Bubblegum-96 board without HDMI you will need to connect to a UART. The console comes up to UART1 on the Low Speed Expansion Connector. A small mezzanine UART-USB card is available to enable direct connection to a PC. Be careful to install the board the right way round - the microUSB port should be pointing to the back of the Bubblegum-96 board (the same side as the power supply barrel jack). Alternatively you can use an FTDI cable configured for 1.8V operation terminated in wires and directly connect the UART Tx, Rx and GND wires to pins 1, 11 and 13 on the 96Boards low speed expansion header.
Connect the UART-USB card microUSB port or FTDI cable to your PC and start up a terminal program (e.g. minicom). Configure the PC serial port to be 115200 baud, 8 data bits, 1 stop bit, and no parity bit. About 10 seconds after applying power the right hand green User LED0 will start flashing about once per second. The next User LED1 is used as a disk indicator showing access to the on-board eMMC flash memory. Startup console messages will appear on the minicom terminal until the root login prompt is shown.
You can connect to a wired network by using a USB Ethernet adapter. Network is automatically configured using DHCP if the USB Ethernet adapter is present.
1. Updating and Adding Software
Before adding any software to your system you must do an update as follows:
$ sudo apt-get update
You can now add Debian packages to your system:
$ sudo apt-get install [package-name]
You can search for available packages here: https://www.debian.org/distrib/packages
Search the stable distribution for packages for the Bubblegum-96.
2. File Systems
The following is the default file system layout for Bubblegum-96 running Linux:
/dev/mmcblk0p9 5.3G 820M 4.5G 16% / main user space file system
3. Logging in
The default user name is "linaro" and the default password for user linaro is "linaro".
4. Clock
The Bubblegum-96 board does not support a battery powered RTC. System time will be obtained from the network if available. If you are not connecting to a network you will need to manually set the date and time on each power up.
5. System and User LEDS
Each board led has a directory in /sys/class/leds. By default the LEDs use the following triggers:
LED | Trigger |
---|---|
wifi_active | phy0tx |
bt_active | hci0tx |
user_led1 | heartbeat |
user_led2 | mmc0 disk access |
user_led3 | mmc1 disk access (not used) |
user_led4 | CPU core 0 active (not used) |
To change a user LED you can do the following as a root user:
$ su bash
# echo heartbeat > /sys/class/leds/<led_dir>/trigger make a LED flash
# cat /sys/class/leds/<led_dir>/trigger show triggers
# echo none > /sys/class/leds/<led_dir>/trigger remove triggers
# echo 1 > /sys/class/leds/<led_dir>/brightness turn LED on
# echo 0 > /sys/class/leds/<led_dir>/brightness turn LED off
# exit
$
Updates to 96Boards supported operating systems will be made available from time to time at:
http://builds.96boards.org/snapshots/Bubblegum-96/linaro/debian
IMPORTANT NOTE:
The installation process will overwrite all contents of the eMMC memory. This will remove all installed software and all user files. Before updating the OS make sure that you have saved any user files or data that you want to keep onto a USB memory stick or other storage device.
To install updates you will need a Linux PC with fastboot support. For information on installing and setting up fastboot on your Linux PC see Section 3: Board Recovery - Installing Fastboot on your Linux PC below.
Once fastboot is installed on the Linux PC proceed as follows:
Download the following files from:
http://builds.96boards.org/snapshots/Bubblegum-96/linaro/debian/latest
- pxa1928-Bubblegum-96.dtb
- boot.emmc.img.gz
- Bubblegum-96-jessie_developer_-n.emmc.img.gz
Uncompress the *.img.gz files using your operating system file manager, or with the following command for each file:
$ gunzip [filename].img.gz
The bootloader will enter fastboot automatically when a USB connection is detected during boot.
Power on the Bubblegum-96 board and verify communications from the Linux PC:
$ sudo fastboot devices
???????????????? fastboot
Then install the update using the downloaded files:
Note: The small files will download very quickly, the larger system file will take much longer (several minutes) due to its size.
$ sudo fastboot flash boot boot.emmc.img
$ sudo fastboot flash dtb pxa1928-Bubblegum-96.dtb
$ sudo fastboot flash userdata Bubblegum-96-jessie_developer_*.emmc.img
When flashing is completed, continue the boot with:
$ sudo fastboot continue
Please read the Hardware notes and the Known Issues later in this document before using the OS.
You will need the fastboot application installed on your Linux PC – if this is not installed use the following commands
$ sudo apt-get install android-tools-fastboot On Debian/Ubuntu
$ sudo yum install android-tools On Fedora
Either create the file: /etc/udev/rules.d/51-android.rules with the following content, or append the content to the file if it already exists. You will need to have superuser privileges so use
$ sudo vi /etc/udev/rules.d/51-android.rules or
$ sudo gedit /etc/udev/rules.d/51-android.rules
to create and edit the file. Add the following to the file.
# USB download gadget on Marvell PXA1928 Bubblegum-96
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", GROUP="dialout"
# Ethernet gadget on Marvell PXA1928 Bubblegum-96
SUBSYSTEM=="usb", ATTR{idVendor}=="0525", ATTR{idProduct}=="a4a1", MODE="0600", GROUP="dialout"
# TD2 on Marvell PXA1928 Bubblegum-96
SUBSYSTEM=="usb", ATTR{idVendor}=="1286", ATTR{idProduct}=="8165", MODE="0600", GROUP="dialout"
If fastboot is functioning, then fastboot can be used to update the bootloader. Download the following file:
Then update the Bootloader:
$ sudo fastboot flash bootloader u-boot.bin
For most users a board can be “recovered” from a software failure by reloading the operating system using the instructions provided above. However, if the primary bootloader in the eMMC flash memory has been corrupted then the bootloader will need to be re-installed. This requires a proprietary flashing tool presently only available from Marvell. Please contact your Marvell local support for the tool which will be supplied as a single file: marvell-flashtool.tgz. This section describes how to reinstall the primary bootloader.
Set Board Link options
For flashing the bootloader (u-boot) with the Marvell flashing tool, a jumper must be installed on link 3-4 of J15.
Name | Link | State |
---|---|---|
Auto Power up | Link 1-2 | open or closed |
Boot Select | Link 3-4 | closed |
GPIO_8 | Link 5-6 | open or closed |
Link 1-2 causes Bubblegum-96 to auto-power up when power the power connector is inserted into the barrel jack. If link 1-2 is not closed, it will be necessary to power press the power button on the long side of the board near the barrel jack to get the board to boot.
Link 3-4 causes the PXA1928 SoC internal ROM to start up in bootROM USB download mode which will allow installing a supplied bootloader over the microUSB OTG port into eMMC.
Prepare a standard microUSB to USB connector between the Bubblegum-96 microUSB port and your Linux PC but do not plug it in yet.
Preparing the Flash Tool
Once you have obtained marvell-flashtool.tgz from Marvell then do the following on your local system:
$ tar -xzf marvell-flashtool.tgz
$ cd marvell-flashtool
To flash u-boot (u-boot.bin downloaded as above) to the Bubblegum-96 run:
$ sudo ./flash.sh <path to u-boot.bin>
If you get an "expect: not found" error then install the expect package:
$ sudo apt-get install expect
Note if this does not work you will need to review the README file in the directory and follow the manual steps, including building the kernel module. Please contact Marvell support if you require assistance.
When prompted to connect, power on the board by connecting the power supply to the barrel jack. If there is no jumper on link 1-2 of J15, then you may also have to press the power button near the barrel jack to get the Bubblegum-96 board to start up. Then plug the microUSB end of the cable into the Bubblegum-96 port next to the HDMI port and the USB Type A plug into your PC.
The script will automatically install the bootloader. Once this has been completed the bootloader has been installed into eMMC.
Power off the Bubblegum-96 board by disconnecting the power supply from the barrel jack.
Next change the link configuration as follows:
- Remove the jumper from link 3-4 so the Bubblegum-96 board will boot from the newly installed bootloader in eMMC.
- Leave the USB cable connected between your Linux PC and the micro-USB port. The Bubblegum-96 will automatically boot up into fastboot mode.
Now power up the Bubblegum-96 board again.
Check that the Bubblegum-96 board is detected by your Linux PC:
You should see the ID of the Bubblegum-96 board returned
$ sudo fastboot devices
???????????????? fastboot
Your bootloader has been successfully installed and you are now ready to install the operating system into the eMMC flash memory (see Section 2: Updating Debian on the Bubblegum-96, above).
- Schematics - Please contact Linaro or Marvell for schematics prior to the ArmadaBoard 28 release
- Hardware User Guide is not yet available
At present the HDMI port is not supported. We expect a future software update to support EDID and setting of alternate video modes for the display.
There are multiple USB ports on the Bubblegum-96 board:
- One microUSB OTG port on the front edge of the board
- Two Type A USB 2.0 host ports on the front edge of the board
- One USB 2.0 host port on the high-speed expansion bus
The 96Boards UARTs are mapped as follows. They are configured at 115200 baud by default. The kernel console defaults to /dev/ttyS3.
Board UART location | Linux tty device |
---|---|
Debug 2x2 2mm header UART | /dev/ttyS0 |
Bluetooth UART | /dev/ttyS1 |
LS Expansion UART0 | /dev/ttyS2 |
LS Expansion UART1 | /dev/ttyS3 |
Note that the LS expansion port I/O pins on the 96Boards 2mm header, including the UART signals, are at 1.8V levels.
The following are known software issues on the current release.
-
Not Yet Supported
- SD card slot support. Support for the SD card slot available in u-boot, but not in Linux 4.1.
- HDMI video displays. Console access is only available via serial terminal or SSH.
- HDMI and Expansion bus audio.
- WiFi & Bluetooth wireless interfaces.
-
Unique Serial ID
Support for a serial id is missing in u-boot. This causes the fastboot devices command to return "????????????". -
Need better UMS support
Need to allow for setting fs-types for better ums support. Can't mount with usb mass storage gadget. -
TFTP is broken
Ethernet gadget is detected but timeout with ERROR: The remote end did not respond in time.
To build a kernel using a Linux computer use the following instructions. These assume that you have a good level of knowledge in building Linux kernels.
The Bubblegum-96 kernel sources for now are located at: https://git.linaro.org/people/rob.herring/linux.git
To build a kernel, make sure you have an AArch64 cross-toolchain installed on your linux computer, and configured to cross compile to ARMv8 code. For example, Linaro GCC 4.9:
$ wget http://releases.linaro.org/15.02/components/toolchain/binaries/aarch64-linux-gnu/\
> gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz
$ mkdir ~/arm64-tc/bin
$ tar --strip-components=1 -C ~/arm64-tc/bin -xf gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz
$ export PATH=~/arm64-tc/bin:$PATH
Note: the toolchain binaries are for a 32 bit host system. On Debian/Ubuntu, you should install multiarch-support and enabled i386 architecture. On Fedora, you should install glibc.i686 package.
The following instructions can then be used to build the kernel:
Git clone the source code tree:
$ git clone --depth 1 -b v4.1-pxa1928 https://git.linaro.org/people/rob.herring/linux.git
To build the kernel:
$ cd linux
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- pxa1928_defconfig
$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(getconf _NPROCESSORS_ONLN) Image dtb modules
Note: if you make ANY of your own changes to the tagged tree your built kernel will be named 4.1.0-linaro-Bubblegum-96+ (use uname -a
to see the kernel name). This means that the installed kernel modules in /lib/modules will not work correctly unless you install a new set of kernel modules in /lib/modules from your kernel build.
Source for Debian 8.0 Jessie rootfs build
We pull all the packages from Debian official repository.
Table 1 describes the partition layout on the Bubblegum-96 eMMC.
Number Start (sector) End (sector) Size Code Name
1 4096 8191 2.0 MiB 0700 DTIM
2 8192 30719 11.0 MiB 0700 recovery
3 30720 32767 1024.0 KiB 0700 bootloader
4 32768 65535 16.0 MiB 0700 boot
5 65536 98303 16.0 MiB 0700 dtb
6 98304 1671167 768.0 MiB 0700 system
7 1671168 2195455 256.0 MiB 0700 vendor
8 2195456 3244031 512.0 MiB 0700 cache
9 3244032 14680063 5.5 GiB 0700 userdata
Table 1: Bubblegum-96 Partitions
Note1: Kernel build image: arch/arm64/boot/Image
Note2: DTB: arch/arm64/boot/dts/marvell/pxa1928-Bubblegum-96.dtb