Marvell ARMADA 8040 MACCHIATOBin Quick User Guide

Introduction

This page offers information on how to get a quick start with your MACCHIATObin board, boot it for the first time and make sure everything is working fine. For instructions on how to compile system components and boot them with your own build binaries, see Software Section.

I/O ports and connectors

First, let us see what ports and connectors are available on the MACCHIATObin board. Below is a picture of the MACCHIATObin from top view:
For the detail settings of the on-board DIP switches and the pin out information of the connectors, please find them out on the Overview Page.

Prerequisites

Here is what you will need to power up the board:

  • Linux or Windows PC
  • MACCHIATObin board
  • 12V power adapter
  • micro USB cable
  • IP router or IP switch
  • USB 3.0/2.0 Flash disk (optional)

Your MACCHIATObin unit should come with a preprogrammed Buildroot file system in its on-board eMMC storage. If that is not the case or you want to flash a different kernel or file system to the board, check out the Software Section.

Connecting

Connecting various peripherals to the board functions as following:

  1. Plug your power adapter to the 12V DC Jack.
  2. Connect your PC to your board by plugging the micro USB cable to a USB port on your laptop/computer and plugging the other end to MicroUSB port on MACCHIATObin.
  3. Connect one end of an Ethernet cable to the RJ45 1GbE port on your MACCHIATObin and the other end to your IP router or IP switch.
  4. (Optional) If you are trying to use the USB storage devices, connect the USB stick to the USB 3.0 port on the MACCHIATObin.

Serial connection

Regarding step 2 from above, we will use serial connection to access console on MACCHIATObin. Follow the tutorial for your OS to make sure you have everything needed:

Start using MACCHIATObin

Booting

When the MACCHIATObin starts to boot, you can check the ATF (ARM Trusted Firmware) & U-Boot version:

BootROM - 2.03
Starting CP-1 IOROM 1.07
Booting from SPI NOR flash 1 (0x32)
Found valid image at boot postion 0x000
lNOTICE: Starting binary extension
NOTICE: Gathering DRAM information
mv_ddr: mv_ddr-armada-17.02.0-g42da6da (Mar 15 2017 - 13:30:32)
mv_ddr: completed successfully
lBooting Trusted Firmware
BL1: v1.2(release):armada-17.02.0:
BL1: Built : 13:30:36, Mar 15 2017
NOTICE: BL1: Booting BL2
lNOTICE: BL2: v1.2(release):armada-17.02.0:
NOTICE: BL2: Built : 13:30:37, Mar 15 2017
NOTICE: BL1: Booting BL31
lNOTICE: BL31: v1.2(release):armada-17.02.0:
NOTICE: BL31: Built : 13:30:38, Mar 15 2017
l
U-Boot 2015.01-armada-17.02.0-g0f680c8 (Mar 15 2017 - 13:12:27)

Then, U-Boot prints out the system settings and serdes configurations:

I2C: ready
DRAM: 15.8 GiB
Board: MACCHIATOBin-8040
Clock: CPU 1300 [MHz]
DDR 800 [MHz]
FABRIC 800 [MHz]
MSS 200 [MHz]
DDR 64 Bit width
LLC Enabled (Exclusive Mode)
Comphy chip #0:
Comphy-0: PEX0
Comphy-1: PEX0
Comphy-2: PEX0
Comphy-3: PEX0
Comphy-4: KR
Comphy-5: SATA1
Comphy chip #1:
Comphy-0: SGMII1 1.25 Gbps
Comphy-1: SATA0
Comphy-2: USB3_HOST0
Comphy-3: SATA1
Comphy-4: KR
Comphy-5: SGMII2 1.25 Gbps

The MACCHIATObin is programmed to auto load the kernel and Buildroot file system stored in the on-board eMMC out-of-the-box.
Check the log message on the console during the kernel boot and we will be prompted with the Buildroot login:

Welcome to Buildroot
buildroot login: root

We login with root where no password is needed.

Once in Buildroot, we can check the kernel version using the uname -a command:

# uname -a
Linux buildroot 4.4.8-devel-17.01.1-01388-ge401441-dirty #55 SMP PREEMPT Tue Feb 28 13:44:53 IST 2017 aarch64 GNU/Linux

Initial network setup

First thing we want for now is to configure MACCHIATObin to have network access, that is, acquire an IP address through the Ethernet interface . Connect one end of an Ethernet cable to the RJ45 1GbE port on MACCHIATObin and the other end to your router or IP switch. In the Buildroot shell insert the following commands to configure eth2 interface to use DHCP for obtaining an IP address:

# dhclient eth2
[ 16.745901] mvpp2 f4000000.ppv22 eth2: link up

using ifconfig command we can verify that the IP address has been obtained, e.g.:

# ifconfig
eth2 Link encap:Ethernet HWaddr 00:00:00:00:00:05
inet addr:10.82.40.222 Bcast:10.82.43.255 Mask:255.255.252.0
inet6 addr: fe80::200:ff:fe00:5%739579584/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:167 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:2048
RX bytes:24424 (23.8 KiB) TX bytes:1332 (1.3 KiB)
Interrupt:136 Memory:f4000000-f408ffff
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1%739580736/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:140 (140.0 B) TX bytes:140 (140.0 B)

we can also ping any IP address on the web to check our Internet connection, e.g.

# ping www.google.com
PING www.google.com (172.217.27.164): 56 data bytes
64 bytes from 172.217.27.164: seq=0 ttl=49 time=114.204 ms
64 bytes from 172.217.27.164: seq=1 ttl=49 time=113.781 ms
64 bytes from 172.217.27.164: seq=2 ttl=49 time=118.081 ms
64 bytes from 172.217.27.164: seq=3 ttl=49 time=113.781 ms
^C
--- www.google.com ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 113.781/114.961/118.081 ms 

USB Interface

There is one USB 3.0 port available on the MACCHIATObin board, your may plug in either USB3.0 stick or USB2.0 stick to this port. Example detection output from Buildroot when a USB3.0 device is plugged in:

# [ 87.175751] usb 2-1: new SuperSpeed USB device number 2 using xhci-hcd
[ 87.297072] usb-storage 2-1:1.0: USB Mass Storage device detected
[ 87.303349] scsi host5: usb-storage 2-1:1.0
[ 88.367846] scsi 5:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[ 89.343260] sd 5:0:0:0: [sda] 15364416 512-byte logical blocks: (7.87 GB/7.33 GiB)
[ 89.350981] sd 5:0:0:0: [sda] Write Protect is off
[ 89.355949] sd 5:0:0:0: [sda] No Caching mode page found
[ 89.361294] sd 5:0:0:0: [sda] Assuming drive cache: write through
[ 89.396108] sda: sda1
[ 89.399340] sd 5:0:0:0: [sda] Attached SCSI removable disk 

Additionally, you can use lsusb command in the console to get information on devices connected to USB buses:

# lsusb
Bus 002 Device 002: ID 0951:1666
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0003 

Checking reset key

After you press the Reset Button on your MACCHIATObin board, the system should reboot:

BootROM - 2.03
Starting CP-1 IOROM 1.07
Booting from SPI NOR flash 1 (0x32)
Found valid image at boot postion 0x000
lNOTICE: Starting binary extension
NOTICE: Gathering DRAM information
mv_ddr: mv_ddr-armada-17.02.0-g42da6da (Mar 15 2017 - 13:30:32)
mv_ddr: completed successfully
Booting Trusted Firmware
BL1: v1.2(release):armada-17.02.0:
BL1: Built : 13:30:36, Mar 15 2017
NOTICE: BL1: Booting BL2
lNOTICE: BL2: v1.2(release):armada-17.02.0:
NOTICE: BL2: Built : 13:30:37, Mar 15 2017
NOTICE: BL1: Booting BL31
lNOTICE: BL31: v1.2(release):armada-17.02.0:
NOTICE: BL31: Built : 13:30:38, Mar 15 2017
l
U-Boot 2015.01-armada-17.02.0-g0f680c8 (Mar 15 2017 - 13:12:27)
I2C: ready
DRAM: 15.8 GiB
Board: MACCHIATOBin-8040
Clock: CPU 1300 [MHz]
DDR 800 [MHz]
FABRIC 800 [MHz]
MSS 200 [MHz]
DDR 64 Bit width
LLC Enabled (Exclusive Mode)
Comphy chip #0:
Comphy-0: PEX0
Comphy-1: PEX0
Comphy-2: PEX0
Comphy-3: PEX0
Comphy-4: KR
Comphy-5: SATA1
Comphy chip #1:
Comphy-0: SGMII1 1.25 Gbps
Comphy-1: SATA0
Comphy-2: USB3_HOST0
Comphy-3: SATA1
Comphy-4: KR
Comphy-5: SGMII2 1.25 Gbps