openwrt/target/linux/mvebu/base-files/lib/mvebu.sh
Tomasz Maciej Nowak 584d7c53bd mvebu: new subtarget cortex A53
This commit introduces new subtarget for Marvell EBU Armada Cortex A53
processor based devices.

The first device is Globalscale ESPRESSObin. Some hardware specs:

SoC: Marvell Armada 3700LP (88F3720) dual core ARM Cortex A53
     processor up to 1.2GHz
RAM: 512MB, 1GB or 2GB DDR3
Storage: SATA interface
         µSD card slot with footprint for an optional 4GB EMMC
         4MB SPI NOR flash for bootloader
Ethernet: Topaz Networking Switch (88E6341) with 3x GbE ports
Connectors: USB 3.0
            USB 2.0
            µUSB port connected to PL2303SA (USB to serial bridge
            controller) for UART access
Expansion: 2x 46-pin GPIO headers for accessories and shields with
           I2C, GPIOs, PWM, UART, SPI, MMC, etc
           MiniPCIe slot
Misc: Reset button, JTAG interface

Currently booting only from µSD card is supported.
The boards depending on date of dispatch can come with various U-Boot
versions. For the newest version 2017.03-armada-17.10 no manual
intervention should be needed to boot OpenWrt image. For the older ones
it's necessary to modify default U-Boot environment:

 1. Interrupt boot process to run U-Boot command line,

 2. Run following commands:
    (for version 2017.03-armada-17.06 and 2017.03-armada-17.08)
     setenv bootcmd "load mmc 0:1 0x4d00000 boot.scr; source 0x4d00000"
     saveenv

    (for version 2015.01-armada-17.02 and 2015.01-armada-17.04)
     setenv bootargs "console=ttyMV0,115200 root=/dev/mmcblk0p2 rw rootwait"
     setenv bootcmd "ext4load mmc 0:1 ${fdt_addr} armada-3720-espressobin.dtb; ext4load mmc 0:1 ${kernel_addr} Image; booti ${kernel_addr} - ${fdt_addr}"
     saveenv

 3. Poweroff, insert SD card with OpenWrt image, boot and enjoy.

Signed-off-by: Tomasz Maciej Nowak <tomek_n@o2.pl>
2018-03-10 01:15:22 +01:00

80 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (C) 2013-2015 OpenWrt.org
# Copyright (C) 2016 LEDE-Project.org
#
MVEBU_BOARD_NAME=
MVEBU_MODEL=
mvebu_board_detect() {
local machine
local name
machine=$(cat /proc/device-tree/model)
case "$machine" in
*"Marvell Armada 370 Evaluation Board")
name="armada-370-db"
;;
*"Globalscale Marvell ESPRESSOBin Board")
name="globalscale,espressobin"
;;
*"Globalscale Mirabox")
name="mirabox"
;;
*"Marvell Armada 370 Reference Design")
name="armada-370-rd"
;;
*"Marvell Armada XP Evaluation Board")
name="armada-xp-db"
;;
*"PlatHome OpenBlocks AX3-4 board")
name="openblocks-ax3-4"
;;
*"Marvell Armada XP GP Board")
name="armada-xp-gp"
;;
*"Linksys WRT1200AC")
name="armada-385-linksys-caiman"
;;
*"Linksys WRT1900AC")
name="armada-xp-linksys-mamba"
;;
*"Linksys WRT1900ACv2")
name="armada-385-linksys-cobra"
;;
*"Linksys WRT1900ACS")
name="armada-385-linksys-shelby"
;;
*"Linksys WRT3200ACM")
name="armada-385-linksys-rango"
;;
*"Marvell Armada 385 Access Point Development Board")
name="armada-385-db-ap"
;;
*"Marvell Armada XP Development Board DB-MV784MP-GP")
name="armada-xp-gp"
;;
*"SolidRun Clearfog Pro A1")
name="armada-388-clearfog-pro"
;;
*"SolidRun Clearfog Base A1")
name="armada-388-clearfog-base"
;;
*"Turris Omnia")
name="armada-385-turris-omnia"
;;
esac
[ -z "$name" ] && name="unknown"
[ -z "$MVEBU_BOARD_NAME" ] && MVEBU_BOARD_NAME="$name"
[ -z "$MVEBU_MODEL" ] && MVEBU_MODEL="$machine"
[ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/"
echo "$MVEBU_BOARD_NAME" > /tmp/sysinfo/board_name
echo "$MVEBU_MODEL" > /tmp/sysinfo/model
}