diff --git a/package/boot/uboot-envtools/files/mvebu b/package/boot/uboot-envtools/files/mvebu index e33830e0a7..24ca6798e8 100644 --- a/package/boot/uboot-envtools/files/mvebu +++ b/package/boot/uboot-envtools/files/mvebu @@ -22,6 +22,9 @@ armada-385-linksys-shelby) armada-385-linksys-rango) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000" ;; +armada-385-turris-omnia) + ubootenv_add_uci_config "/dev/mtd0" "0xC0000" "0x10000" "0x40000" + ;; armada-xp-linksys-mamba) ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x40000" "0x20000" ;; diff --git a/target/linux/mvebu/base-files/etc/board.d/02_network b/target/linux/mvebu/base-files/etc/board.d/02_network index 4fc95406ca..36c4b23c5d 100755 --- a/target/linux/mvebu/base-files/etc/board.d/02_network +++ b/target/linux/mvebu/base-files/etc/board.d/02_network @@ -23,6 +23,10 @@ armada-xp-linksys-mamba) ucidef_add_switch "switch0" \ "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "5@eth0" "4:wan" "6@eth1" ;; +armada-385-turris-omnia) + ucidef_set_interface_lan "lan0 lan1 lan2 lan3 lan4" + ucidef_set_interface_wan "eth2" + ;; armada-388-clearfog-*) # eth0 is standalone ethernet # eth1 is switch (-pro) or standalone ethernet (-base) diff --git a/target/linux/mvebu/base-files/lib/mvebu.sh b/target/linux/mvebu/base-files/lib/mvebu.sh index fb3ddee4f5..1cd87507a3 100755 --- a/target/linux/mvebu/base-files/lib/mvebu.sh +++ b/target/linux/mvebu/base-files/lib/mvebu.sh @@ -59,6 +59,9 @@ mvebu_board_detect() { *"SolidRun Clearfog Base A1") name="armada-388-clearfog-base" ;; + *"Turris Omnia") + name="armada-385-turris-omnia" + ;; esac [ -z "$name" ] && name="unknown" diff --git a/target/linux/mvebu/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/base-files/lib/upgrade/platform.sh index b59c765a38..ef8065a44e 100755 --- a/target/linux/mvebu/base-files/lib/upgrade/platform.sh +++ b/target/linux/mvebu/base-files/lib/upgrade/platform.sh @@ -16,7 +16,7 @@ platform_do_upgrade() { armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba) platform_do_upgrade_linksys "$ARGV" ;; - armada-388-clearfog-base|armada-388-clearfog-pro) + armada-385-turris-omnia|armada-388-clearfog-base|armada-388-clearfog-pro) platform_do_upgrade_sdcard "$ARGV" ;; *) @@ -29,7 +29,7 @@ platform_copy_config() { armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba) platform_copy_config_linksys ;; - armada-388-clearfog-base|armada-388-clearfog-pro) + armada-385-turris-omnia|armada-388-clearfog-base|armada-388-clearfog-pro) platform_copy_config_sdcard "$ARGV" ;; esac diff --git a/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh b/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh index de6e1a920c..fbf121f33d 100644 --- a/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh +++ b/target/linux/mvebu/base-files/lib/upgrade/sdcard.sh @@ -18,8 +18,20 @@ platform_check_image_sdcard() { } platform_do_upgrade_sdcard() { + local board=$(board_name) + sync get_image "$1" | dd of=/dev/mmcblk0 bs=2M conv=fsync + + case "$board" in + armada-385-turris-omnia) + fw_setenv openwrt_bootargs 'earlyprintk console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=auto rootwait' + fw_setenv openwrt_mmcload 'setenv bootargs "$openwrt_bootargs cfg80211.freg=$regdomain"; fatload mmc 0 0x01000000 zImage; fatload mmc 0 0x02000000 armada-385-turris-omnia.dtb' + fw_setenv factory_mmcload 'setenv bootargs "$bootargs cfg80211.freg=$regdomain"; btrload mmc 0 0x01000000 boot/zImage @; btrload mmc 0 0x02000000 boot/dtb @' + fw_setenv mmcboot 'mw 0xf10184a0 0xfd4d4cfa; run openwrt_mmcload || run factory_mmcload; bootz 0x01000000 - 0x02000000' + ;; + esac + sleep 1 } diff --git a/target/linux/mvebu/config-4.14 b/target/linux/mvebu/config-4.14 index 71123f52bc..738f0378b4 100644 --- a/target/linux/mvebu/config-4.14 +++ b/target/linux/mvebu/config-4.14 @@ -207,9 +207,12 @@ CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GLOB=y CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_IRQCHIP=y +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_GENERIC_PLATFORM=y CONFIG_GPIO_MVEBU=y CONFIG_GPIO_PCA953X=y -# CONFIG_GPIO_PCA953X_IRQ is not set +CONFIG_GPIO_PCA953X_IRQ=y CONFIG_GPIO_SYSFS=y # CONFIG_GRO_CELLS is not set CONFIG_HANDLE_DOMAIN_IRQ=y @@ -346,7 +349,13 @@ CONFIG_MVSW61XX_PHY=y CONFIG_MV_XOR=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEON=y +CONFIG_NET_DSA=y +CONFIG_NET_DSA_MV88E6XXX=y +CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y +CONFIG_NET_DSA_TAG_DSA=y +CONFIG_NET_DSA_TAG_EDSA=y CONFIG_NET_FLOW_LIMIT=y +CONFIG_NET_SWITCHDEV=y CONFIG_NLS=y CONFIG_NOP_USB_XCEIV=y CONFIG_NO_BOOTMEM=y diff --git a/target/linux/mvebu/image/Makefile b/target/linux/mvebu/image/Makefile index 68adfc3ddd..823552d4f8 100644 --- a/target/linux/mvebu/image/Makefile +++ b/target/linux/mvebu/image/Makefile @@ -48,6 +48,17 @@ define Build/sdcard-img 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) @@ -226,4 +237,21 @@ define Device/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))