9f3f61a0d9
Adds support for the Turris Omnia and builds an eMMC sysupgrade image in the same format as the SolidRun ClearFog. An initramfs image in the simple yet Omnia-specific 'medkit' image format is also built in order to ease the initial flashing process. Notable hardware support omissions are support for switching between SFP cage and copper PHY, and RGB LED control. Due to a current limitation of DSA, only 1/2 CPU switch uplinks are used. Specifications: - Marvell Armada 385 1.6GHz dual-core ARMv7 CPU - 1GB DDR3 RAM - 8GB eMMC Flash - 5x Gigabit LAN via Marvell 88E6176 Switch (2x RGMII CPU ports) - 1x switchable RJ45 (88E1514 PHY) / SFP SGMII WAN - 2x USB 3.0 - 12x dimmable RGB LEDs controlled by independent MCU - 3x Mini PCIe slots - Optional Compex WLE200N2 Mini PCIe AR9287 2x2 802.11b/g/n (2.4GHz) - Optional Compex WLE900VX Mini PCIe QCA9880 3x3 802.11ac (2.4 / 5GHz) - Optional Quectel EC20 Mini PCIe LTE modem Flash instructions: If the U-Boot environment has been modified previously (likely manually via serial console), first use serial to reset the default environment. => env default -a => saveenv Method 1 - USB 'medkit' image w/o serial - Copy openwrt-mvebu-turris-omnia-sysupgrade.img.gz and omnia-medkit-openwrt-mvebu-turris-omnia-initramfs.tar.gz to the root of a USB flash drive formatted with FAT32 / ext2/3/4 / btrfs / XFS. Note that the medkit MUST be named omnia-medkit*.tar.gz - Disconnect other USB devices from the Omnia and connect the flash drive to either USB port. - Power on the Omnia and hold down the rear reset button until 4 LEDs are illuminated, then release. - Wait approximately 2 minutes for the Turris Omnia to flash itself with the temporary image, during which LEDs will change multiple times. - Connect a computer to a LAN port of the Turris Omnia with a DHCP client - (if necessary) ssh-keygen -R 192.168.1.1 - ssh root@192.168.1.1 $ mount /dev/sda1 /mnt $ sysupgrade /mnt/openwrt-mvebu-turris-omnia-sysupgrade.img.gz - Wait another minute for the final OpenWrt image to be flashed. The Turris Omnia will reboot itself and you can remove the flash drive. Method 2 - TFTP w/ serial - Extract omnia-medkit-openwrt-mvebu-turris-omnia-initramfs.tar.gz and copy dtb + zImage to your TFTP server (rename if desired) - Connect Turris Omnia WAN port to DHCP-enabled network with TFTP server - Connect serial console and interrupt U-Boot => dhcp => setenv serverip <tftp_server_ip_here> => tftpboot 0x01000000 zImage => tftpboot 0x02000000 dtb => bootz 0x01000000 - 0x02000000 - OpenWrt will now boot from ramdisk - Download openwrt-mvebu-turris-omnia-sysupgrade.img.gz to /tmp/ $ sysupgrade /tmp/openwrt-mvebu-turris-omnia-sysupgrade.img.gz - Wait another minute for the final OpenWrt image to be flashed. The Turris Omnia will reboot itself. Signed-off-by: Ryan Mounce <ryan@mounce.com.au>
257 lines
7.2 KiB
Makefile
257 lines
7.2 KiB
Makefile
#
|
|
# Copyright (C) 2012-2016 OpenWrt.org
|
|
# Copyright (C) 2016 LEDE-project.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
JFFS2_BLOCKSIZE = 128k
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
include $(INCLUDE_DIR)/image.mk
|
|
|
|
KERNEL_LOADADDR := 0x00008000
|
|
|
|
SIGNATURE:=$(shell printf "%.8s" $(SOURCE_DATE_EPOCH))
|
|
|
|
define Build/dtb
|
|
$(call Image/BuildDTB,$(DTS_DIR)/$(DEVICE_DTS).dts,$@.dtb)
|
|
endef
|
|
|
|
# SD-Card Images:
|
|
# these values are optimized for a 4GB labeled sdcard that actually holds 7744512 sectors of 512 byte
|
|
# MBR: 2048 sectors
|
|
# Partition 1: 32768 sectors
|
|
# Partition 2: 98304 sectors (configurable)
|
|
|
|
define Build/boot-scr
|
|
rm -f $@-boot.scr
|
|
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $(DEVICE_NAME).bootscript $@-boot.scr
|
|
endef
|
|
|
|
define Build/boot-img
|
|
rm -f $@.boot
|
|
mkfs.fat -C $@.boot 16384
|
|
$(foreach dts,$(DEVICE_DTS), mcopy -i $@.boot $(DTS_DIR)/$(dts).dtb ::$(dts).dtb;)
|
|
mcopy -i $@.boot $(IMAGE_KERNEL) ::zImage
|
|
-mcopy -i $@.boot $@-boot.scr ::boot.scr
|
|
endef
|
|
|
|
define Build/sdcard-img
|
|
if [ -n "$(UBOOT)" ]; then UBOOT="$(STAGING_DIR_IMAGE)/$(UBOOT)"; fi; \
|
|
ROOTFS_SIZE=$$(( $(CONFIG_TARGET_ROOTFS_PARTSIZE) * 1024 * 2 )); \
|
|
SIGNATURE="$(SIGNATURE)" \
|
|
./gen_mvebu_sdcard_img.sh $@ \
|
|
$$UBOOT \
|
|
c 32768 $@.boot \
|
|
83 $$ROOTFS_SIZE $(IMAGE_ROOTFS)
|
|
endef
|
|
|
|
define Build/omnia-medkit-initramfs
|
|
$(TAR) -c -T /dev/null -f $@
|
|
rm -rf $(dir $(IMAGE_KERNEL))boot
|
|
mkdir -p $(dir $(IMAGE_KERNEL))boot/boot/
|
|
cp $(KDIR)/zImage-initramfs $(dir $(IMAGE_KERNEL))boot/boot/zImage
|
|
cp $(DTS_DIR)/$(DEVICE_DTS).dtb $(dir $(IMAGE_KERNEL))boot/boot/dtb
|
|
$(TAR) -rp --numeric-owner --owner=0 --group=0 --sort=name \
|
|
$(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
|
|
--file=$@ -C $(dir $(IMAGE_KERNEL))boot/ .
|
|
endef
|
|
|
|
define Device/Default
|
|
PROFILES := Default
|
|
DEVICE_DTS := $(1)
|
|
BOARD_NAME = $$(DEVICE_DTS)
|
|
KERNEL_NAME := zImage
|
|
KERNEL := kernel-bin | append-dtb | uImage none
|
|
SUPPORTED_DEVICES = $$(DEVICE_DTS)
|
|
endef
|
|
|
|
define Device/UBI
|
|
IMAGES := sysupgrade.bin
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
endef
|
|
|
|
define Device/UBI-factory
|
|
$(Device/UBI)
|
|
UBINIZE_OPTS := -E 5
|
|
IMAGES += factory.img
|
|
IMAGE/factory.img := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | pad-to $$$$(PAGESIZE)
|
|
endef
|
|
|
|
define Device/NAND-128K
|
|
$(Device/UBI)
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 2048
|
|
SUBPAGESIZE := 512
|
|
VID_HDR_OFFSET := 2048
|
|
endef
|
|
|
|
define Device/NAND-256K
|
|
$(Device/UBI)
|
|
BLOCKSIZE := 256k
|
|
PAGESIZE := 4096
|
|
endef
|
|
|
|
define Device/NAND-512K
|
|
$(Device/UBI)
|
|
BLOCKSIZE := 512k
|
|
PAGESIZE := 4096
|
|
endef
|
|
|
|
define Device/linksys
|
|
DEVICE_TITLE := Linksys $(1)
|
|
DEVICE_PACKAGES := kmod-mwlwifi wpad-mini swconfig
|
|
endef
|
|
|
|
define Device/armada-385-linksys
|
|
$(Device/NAND-128K)
|
|
$(Device/UBI-factory)
|
|
KERNEL_SIZE := 6144k
|
|
endef
|
|
|
|
define Device/linksys-wrt1200ac
|
|
$(call Device/linksys,WRT1200AC (Caiman))
|
|
$(Device/armada-385-linksys)
|
|
DEVICE_DTS := armada-385-linksys-caiman
|
|
DEVICE_PACKAGES += mwlwifi-firmware-88w8864
|
|
endef
|
|
TARGET_DEVICES += linksys-wrt1200ac
|
|
|
|
define Device/linksys-wrt1900acv2
|
|
$(call Device/linksys,WRT1900ACv2 (Cobra))
|
|
$(Device/armada-385-linksys)
|
|
DEVICE_DTS := armada-385-linksys-cobra
|
|
DEVICE_PACKAGES += mwlwifi-firmware-88w8864
|
|
endef
|
|
TARGET_DEVICES += linksys-wrt1900acv2
|
|
|
|
define Device/linksys-wrt3200acm
|
|
$(call Device/linksys,WRT3200ACM (Rango))
|
|
$(Device/armada-385-linksys)
|
|
DEVICE_DTS := armada-385-linksys-rango
|
|
DEVICE_PACKAGES += kmod-btmrvl kmod-mwifiex-sdio mwlwifi-firmware-88w8964
|
|
endef
|
|
TARGET_DEVICES += linksys-wrt3200acm
|
|
|
|
define Device/linksys-wrt1900acs
|
|
$(call Device/linksys,WRT1900ACS (Shelby))
|
|
$(Device/armada-385-linksys)
|
|
DEVICE_DTS := armada-385-linksys-shelby
|
|
DEVICE_PACKAGES += mwlwifi-firmware-88w8864
|
|
endef
|
|
TARGET_DEVICES += linksys-wrt1900acs
|
|
|
|
define Device/linksys-wrt1900ac
|
|
$(call Device/linksys,WRT1900AC (Mamba))
|
|
DEVICE_DTS := armada-xp-linksys-mamba
|
|
DEVICE_PACKAGES += mwlwifi-firmware-88w8864
|
|
$(Device/NAND-128K)
|
|
$(Device/UBI-factory)
|
|
KERNEL_SIZE := 3072k
|
|
endef
|
|
TARGET_DEVICES += linksys-wrt1900ac
|
|
|
|
define Device/openblocks-ax3-4
|
|
$(Device/UBI-factory)
|
|
DEVICE_DTS := armada-xp-openblocks-ax3-4
|
|
SUPPORTED_DEVICES := $(1)
|
|
BLOCKSIZE := 128k
|
|
PAGESIZE := 1
|
|
IMAGE/factory.img := append-kernel | pad-to $$(BLOCKSIZE) | append-ubi
|
|
DEVICE_TITLE := Plat'Home OpenBlocks AX3
|
|
endef
|
|
TARGET_DEVICES += openblocks-ax3-4
|
|
|
|
define Device/armada-385-db-ap
|
|
$(Device/NAND-256K)
|
|
$(Device/UBI-factory)
|
|
KERNEL_SIZE := 8192k
|
|
DEVICE_TITLE := Marvell Armada 385 DB AP (DB-88F6820-AP)
|
|
endef
|
|
TARGET_DEVICES += armada-385-db-ap
|
|
|
|
define Device/marvell-nand
|
|
$(Device/NAND-512K)
|
|
DEVICE_TITLE := Marvell Armada $(1)
|
|
endef
|
|
|
|
define Device/armada-370-db
|
|
$(call Device/marvell-nand,370 DB (DB-88F6710-BP-DDR3))
|
|
endef
|
|
TARGET_DEVICES += armada-370-db
|
|
|
|
define Device/armada-370-rd
|
|
$(call Device/marvell-nand,370 RD (RD-88F6710-A1))
|
|
endef
|
|
TARGET_DEVICES += armada-370-rd
|
|
|
|
define Device/armada-xp-db
|
|
$(call Device/marvell-nand,XP DB (DB-78460-BP))
|
|
endef
|
|
TARGET_DEVICES += armada-xp-db
|
|
|
|
define Device/armada-xp-gp
|
|
$(call Device/marvell-nand,XP GP (DB-MV784MP-GP))
|
|
endef
|
|
TARGET_DEVICES += armada-xp-gp
|
|
|
|
define Device/armada-388-rd
|
|
DEVICE_TITLE := Marvell Armada 388 RD (RD-88F6820-AP)
|
|
IMAGES := firmware.bin
|
|
IMAGE/firmware.bin := append-kernel | pad-to 256k | append-rootfs | pad-rootfs
|
|
endef
|
|
TARGET_DEVICES += armada-388-rd
|
|
|
|
define Device/armada-388-clearfog-pro
|
|
KERNEL_INSTALL := 1
|
|
KERNEL := kernel-bin
|
|
DEVICE_TITLE := SolidRun ClearFog Pro
|
|
DEVICE_PACKAGES := mkf2fs e2fsprogs swconfig kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1
|
|
IMAGES := sdcard.img.gz
|
|
IMAGE/sdcard.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata
|
|
DEVICE_DTS := armada-388-clearfog-pro armada-388-clearfog-base
|
|
SUPPORTED_DEVICES := armada-388-clearfog-pro armada-388-clearfog
|
|
UBOOT := clearfog-u-boot-spl.kwb
|
|
endef
|
|
TARGET_DEVICES += armada-388-clearfog-pro
|
|
|
|
define Device/armada-388-clearfog-base
|
|
KERNEL_INSTALL := 1
|
|
KERNEL := kernel-bin
|
|
DEVICE_TITLE := SolidRun ClearFog Base
|
|
DEVICE_PACKAGES := mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1
|
|
IMAGES := sdcard.img.gz
|
|
IMAGE/sdcard.img.gz := boot-scr | boot-img | sdcard-img | gzip | append-metadata
|
|
DEVICE_DTS := armada-388-clearfog-pro armada-388-clearfog-base
|
|
UBOOT := clearfog-u-boot-spl.kwb
|
|
endef
|
|
TARGET_DEVICES += armada-388-clearfog-base
|
|
|
|
define Device/globalscale-mirabox
|
|
$(Device/NAND-512K)
|
|
DEVICE_DTS := armada-370-mirabox
|
|
SUPPORTED_DEVICES := mirabox
|
|
DEVICE_TITLE := Globalscale Mirabox
|
|
endef
|
|
TARGET_DEVICES += globalscale-mirabox
|
|
|
|
define Device/turris-omnia
|
|
KERNEL_INSTALL := 1
|
|
KERNEL := kernel-bin
|
|
KERNEL_INITRAMFS := kernel-bin
|
|
DEVICE_TITLE := Turris Omnia
|
|
DEVICE_PACKAGES := \
|
|
mkf2fs e2fsprogs kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1 \
|
|
wpad-mini kmod-ath9k kmod-ath10k ath10k-firmware-qca988x
|
|
IMAGES := $$(IMAGE_PREFIX)-sysupgrade.img.gz omnia-medkit-$$(IMAGE_PREFIX)-initramfs.tar.gz
|
|
IMAGE/$$(IMAGE_PREFIX)-sysupgrade.img.gz := boot-img | sdcard-img | gzip | append-metadata
|
|
IMAGE/omnia-medkit-$$(IMAGE_PREFIX)-initramfs.tar.gz := omnia-medkit-initramfs | gzip
|
|
IMAGE_NAME = $$(2)
|
|
DEVICE_DTS := armada-385-turris-omnia
|
|
UBOOT :=
|
|
endef
|
|
TARGET_DEVICES += turris-omnia
|
|
|
|
$(eval $(call BuildImage))
|