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.