1*4882a593SmuzhiyunMarvell ESPRESSObin 2*4882a593Smuzhiyun=================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThis default configuration allows you to quickly get up and running with 5*4882a593Smuzhiyunthe Marvell ESPRESSObin board by Globalscale Technologies Inc. 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunThe ESPRESSObin is based on the Marvell Armada 88F3720 SoC, coupled with 8*4882a593Smuzhiyuna Marvell 88E6341 switch core "Topaz", with three exposed gigabit ports. 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun _________________________ 11*4882a593Smuzhiyun |# U W L L U #| 12*4882a593Smuzhiyun |# S A A A S #| 13*4882a593Smuzhiyun |# B N N N B #| 14*4882a593Smuzhiyun |# 0 1 #| 15*4882a593Smuzhiyun |# Mini #| 16*4882a593Smuzhiyun |# -PCI #| 17*4882a593Smuzhiyun |# #| 18*4882a593Smuzhiyun |# 5 #| 19*4882a593Smuzhiyun |#__V___usb_PWR_SATA__SW_#| 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun Fig 1: Overview of board 22*4882a593Smuzhiyun 23*4882a593SmuzhiyunNotice difference in Ethernet port layout compared to the Globalscale 24*4882a593Smuzhiyundocs. They order the ports; LAN2, LAN1, WAN (left to right in figure 25*4882a593Smuzhiyunabove). For more information, see http://espressobin.net 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun 28*4882a593SmuzhiyunBuilding 29*4882a593Smuzhiyun-------- 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun $ make globalscale_espressobin_defconfig 32*4882a593Smuzhiyun $ make 33*4882a593Smuzhiyun 34*4882a593SmuzhiyunThis generates the kernel image, the devicetree binary, the rootfs as a 35*4882a593Smuzhiyuntar.gz, and a filesystem image containing everything. 36*4882a593Smuzhiyun 37*4882a593SmuzhiyunAll build artifacts are located in `output/images/` 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun 40*4882a593SmuzhiyunBooting 41*4882a593Smuzhiyun------- 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunTo boot, you need a UART connection, using the on-board micro USB port 44*4882a593Smuzhiyunset to 115200 8N1. 45*4882a593Smuzhiyun 46*4882a593SmuzhiyunBy default, the ESPRESSObin comes with a pre-flashed U-Boot set up to 47*4882a593Smuzhiyunload the kernel, device-tree and rootfs from SPI NOR flash. The board 48*4882a593Smuzhiyunjumpers can be changed to boot from different sources, see the quick 49*4882a593Smuzhiyunstart guide for each board revision for details: 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V5/ 52*4882a593Smuzhiyun- ftp://downloads.globalscaletechnologies.com/Downloads/Espressobin/ESPRESSObin%20V7/ 53*4882a593Smuzhiyun 54*4882a593SmuzhiyunNote: the v5, and earlier, cannot boot from sdcard, so you have to set 55*4882a593Smuzhiyunup the factory U-Boot to boot into Buildroot: 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun1. Flash rootfs image to sdcard drive, your `of=` device may differ: 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun $ sudo dd if=output/images/sdcard.img of=/dev/mmcblk0 bs=1M 60*4882a593Smuzhiyun $ sync 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun2. Boot board from SPI NOR, interrupt boot by pressing any key ... 63*4882a593Smuzhiyun3. Check with `printenv` that the default setup is OK, otherwise ensure 64*4882a593Smuzhiyun the following are set, and define `bootcmd` for automatic boot: 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun > setenv kernel_addr 0x5000000 67*4882a593Smuzhiyun > setenv fdt_addr 0x1800000 68*4882a593Smuzhiyun > setenv fdt_name boot/armada-3720-espressobin.dtb 69*4882a593Smuzhiyun > setenv console console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000 70*4882a593Smuzhiyun > 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' 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun4. Call the boot command, or `reset` the board to start: 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun > run bootcmd 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun 77*4882a593SmuzhiyunNetworking 78*4882a593Smuzhiyun---------- 79*4882a593Smuzhiyun 80*4882a593SmuzhiyunTo enable Ethernet networking, load the `mv88e6xxx` kernel module, and 81*4882a593Smuzhiyunbring up each respective interface needed: 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun # modprobe mv88e6xxx 84*4882a593Smuzhiyun # ifconfig wan up 85*4882a593Smuzhiyun 86*4882a593SmuzhiyunA more advanced scenario is setting up switching between the ports using 87*4882a593Smuzhiyunthe Linux bridge. The kernel switchdev layer, and DSA driver, ensure 88*4882a593Smuzhiyunswitch functions are "offloaded" to the HW switch, i.e., all traffic 89*4882a593Smuzhiyunbetween LAN ports never reach the CPU. For this you need the iproute2 90*4882a593Smuzhiyunsuite of tools. 91