configs/globalscale_espressobin: new defconfig

Basic support for the Marvell ESPRESSObin, by Globalscale Technologies.

  http://espressobin.net

The kernel config has been extended with a fragment to enable switchcore
support, DSA drivers, and VLAN filtering in the bridge.  To make use of
this you need a custom libnl based application, or the iproute2 suite
rather than the brctl tools, which don't support the VLAN filtering.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Joachim Nilsson 2020-05-08 11:45:09 +02:00 committed by Thomas Petazzoni
parent d0fb813539
commit 1c714bf757
6 changed files with 146 additions and 0 deletions

View File

@ -198,6 +198,7 @@ friendlyarm_nanopi_a64_defconfig: { extends: .defconfig }
friendlyarm_nanopi_neo2_defconfig: { extends: .defconfig } friendlyarm_nanopi_neo2_defconfig: { extends: .defconfig }
friendlyarm_nanopi_neo_plus2_defconfig: { extends: .defconfig } friendlyarm_nanopi_neo_plus2_defconfig: { extends: .defconfig }
galileo_defconfig: { extends: .defconfig } galileo_defconfig: { extends: .defconfig }
globalscale_espressobin_defconfig: { extends: .defconfig }
grinn_chiliboard_defconfig: { extends: .defconfig } grinn_chiliboard_defconfig: { extends: .defconfig }
grinn_liteboard_defconfig: { extends: .defconfig } grinn_liteboard_defconfig: { extends: .defconfig }
hifive_unleashed_defconfig: { extends: .defconfig } hifive_unleashed_defconfig: { extends: .defconfig }

View File

@ -1271,6 +1271,10 @@ F: package/libuhttpd/
F: package/libuwsc/ F: package/libuwsc/
F: package/rtty/ F: package/rtty/
N: Joachim Nilsson <troglobit@gmail.com>
F: configs/globalscale_espressobin_defconfig
F: board/globalscale/espressobin/
N: Joao Pinto <jpinto@synopsys.com> N: Joao Pinto <jpinto@synopsys.com>
F: board/synopsys/vdk/ F: board/synopsys/vdk/
F: configs/snps_aarch64_vdk_defconfig F: configs/snps_aarch64_vdk_defconfig

View File

@ -0,0 +1,11 @@
# Minimal image, no U-boot since v3/v5 cannot boot from sdcard, see
# readme.txt for details on configuring the on-board u-boot.
image sdcard.img {
hdimage {
}
partition rootfs {
partition-type = 0x83
image = "rootfs.ext4"
}
}

View File

@ -0,0 +1,14 @@
#
# The Espressobin has a switchcore with full support in the kernel.
# This fragment enables DSA and its drivers, inclding VLAN aware bridge
# support to allow users to easily set up a LAN switch + WAN interface.
#
CONFIG_NET_DSA=m
CONFIG_VLAN_8021Q=y
CONFIG_BRIDGE=m
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_PTP=y

View File

@ -0,0 +1,90 @@
Marvell ESPRESSObin
===================
This default configuration allows you to quickly get up and running with
the Marvell ESPRESSObin board by Globalscale Technologies Inc.
The ESPRESSObin is based on the Marvell Armada 88F3720 SoC, coupled with
a Marvell 88E6341 switch core "Topaz", with three exposed gigabit ports.
_________________________
|# U W L L U #|
|# S A A A S #|
|# B N N N B #|
|# 0 1 #|
|# Mini #|
|# -PCI #|
|# #|
|# 5 #|
|#__V___usb_PWR_SATA__SW_#|
Fig 1: Overview of board
Notice difference in Ethernet port layout compared to the Globalscale
docs. They order the ports; LAN2, LAN1, WAN (left to right in figure
above). For more information, see http://espressobin.net
Building
--------
$ make globalscale_espressobin_defconfig
$ make
This generates the kernel image, the devicetree binary, the rootfs as a
tar.gz, and a filesystem image containing everything.
All build artifacts are located in `output/images/`
Booting
-------
To boot, you need a UART connection, using the on-board micro USB port
set to 115200 8N1.
By default, the ESPRESSObin comes with a pre-flashed U-Boot set up to
load the kernel, device-tree and rootfs from SPI NOR flash. The board
jumpers can be changed to boot from different sources, see the quick
start guide for each board revision for details:
- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V5/
- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V7/
Note: the v5, and earlier, cannot boot from sdcard, so you have to set
up the factory U-Boot to boot into Buildroot:
1. Flash rootfs image to sdcard drive, your `of=` device may differ:
$ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M
$ sync
2. Boot board from SPI NOR, interrupt boot by pressing any key ...
3. Check with `printenv` that the default setup is OK, otherwise ensure
the following are set, and define `bootcmd` for automatic boot:
> setenv kernel_addr 0x5000000
> setenv fdt_addr 0x1800000
> setenv fdt_name boot/armada-3720-espressobin.dtb
> setenv console console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000
> setenv bootcmd 'mmc dev 0; ext4load mmc 0:1 $kernel_addr $image_name;ext4load mmc 0:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk0p1 rw rootwait; booti $kernel_addr - $fdt_addr'
4. Call the boot command, or `reset` the board to start:
> run bootcmd
Networking
----------
To enable Ethernet networking, load the `mv88e6xxx` kernel module, and
bring up each respective interface needed:
# modprobe mv88e6xxx
# ifconfig wan up
A more advanced scenario is setting up switching between the ports using
the Linux bridge. The kernel switchdev layer, and DSA driver, ensure
switch functions are "offloaded" to the HW switch, i.e., all traffic
between LAN ports never reach the CPU. For this you need the iproute2
suite of tools.

View File

@ -0,0 +1,26 @@
BR2_aarch64=y
BR2_cortex_a53=y
BR2_ARM_FPU_VFPV4=y
# Linux headers same as kernel, a 5.6 series
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_6=y
# Kernel
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.6.11"
BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/globalscale/espressobin/linux-extras.config"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="marvell/armada-3720-espressobin marvell/armada-3720-espressobin-emmc marvell/armada-3720-espressobin-v7 marvell/armada-3720-espressobin-v7-emmc"
BR2_LINUX_KERNEL_INSTALL_TARGET=y
# Filesystem
BR2_TARGET_GENERIC_ISSUE="Welcome to Buildroot for the Marvell ESPRESSObin"
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
BR2_TARGET_ROOTFS_TAR_GZIP=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/globalscale/espressobin/genimage.cfg"