From 2dc5ce622a35f8924accbfbeda689c763f517f5d Mon Sep 17 00:00:00 2001 From: Tomasz Maciej Nowak Date: Fri, 10 Jul 2020 19:35:22 +0200 Subject: [PATCH] mvebu: add support for MACCHIATObin Single Shot Add support for Marvell MACCHIATObin Single Shot, cortex-a72 based Marvell ARMADA 8040 Community board. Single Shot was broken as the device tree is different on the Double Shot Board. Specifications: - Quad core Cortex-A72 (up to 2GHz) - DDR4 DIMM slot with optional ECC and single/dual chip select support - Dual 10GbE (1/2.5/10GbE) SFP+ 2.5GbE (1/2.5GbE) via SFP 1GbE via copper - SPI Flash - 3 X SATA 3.0 connectors - MicroSD connector - eMMC - PCI x4 3.0 slot - USB 2.0 Headers (Internal) - USB 3.0 connector - Console port (UART) over microUSB connector - 20-pin Connector for CPU JTAG debugger - 2 X UART Headers - 12V input via DC Jack - ATX type power connector - Form Factor: Mini-ITX (170 mm x 170 mm) More details at http://macchiatobin.net Installation: Write the Image to your Micro SD Card and insert it in the MACCHIATObin Single Shot SD Card Slot. In the U-Boot Environment: 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot with boot script: setenv bootcmd "load mmc 1:1 0x4d00000 boot.scr; source 0x4d00000" saveenv or manually (hanging lines indicate wrapped one-line command): setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr $image_name;ext4load mmc 1:1 $fdt_addr $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr - $fdt_addr' saveenv On newer Bootloaders (18.12) the Variables have been changed, use: setenv fdt_name armada-8040-mcbin-singleshot.dtb setenv image_name Image setenv bootcmd 'mmc dev 1; ext4load mmc 1:1 $kernel_addr_r $image_name;ext4load mmc 1:1 $fdt_addr_r $fdt_name;setenv bootargs $console root=/dev/mmcblk1p2 rw rootwait; booti $kernel_addr_r - $fdt_addr_r' Reported-by: Alexandra Alth Signed-off-by: Tomasz Maciej Nowak Tested-by: Alexandra Alth [add specs and installation as provided by Alexandra Alth] Signed-off-by: Adrian Schmutzler --- package/boot/uboot-envtools/files/mvebu | 3 ++- .../base-files/etc/board.d/02_network | 3 ++- .../base-files/lib/upgrade/platform.sh | 9 ++++++--- target/linux/mvebu/image/cortexa72.mk | 20 +++++++++++++++++-- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/package/boot/uboot-envtools/files/mvebu b/package/boot/uboot-envtools/files/mvebu index 590000aae7..8ed1f87ead 100644 --- a/package/boot/uboot-envtools/files/mvebu +++ b/package/boot/uboot-envtools/files/mvebu @@ -24,7 +24,8 @@ globalscale,espressobin|\ globalscale,espressobin-emmc|\ globalscale,espressobin-v7|\ globalscale,espressobin-v7-emmc|\ -marvell,armada8040-mcbin-doubleshot) +marvell,armada8040-mcbin-doubleshot|\ +marvell,armada8040-mcbin-singleshot) ubootenv_add_uci_config "/dev/mtd0" "0x3f0000" "0x10000" "0x10000" "1" ;; linksys,wrt1200ac|\ diff --git a/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network b/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network index 32053d74e8..9ab3c8174d 100755 --- a/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network +++ b/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network @@ -11,7 +11,8 @@ board_config_update board=$(board_name) case "$board" in -marvell,armada8040-mcbin-doubleshot) +marvell,armada8040-mcbin-doubleshot|\ +marvell,armada8040-mcbin-singleshot) ucidef_set_interfaces_lan_wan "eth0 eth1 eth3" "eth2" ;; marvell,armada8040-db) diff --git a/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh index 75d2933f05..04ea634097 100755 --- a/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh +++ b/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh @@ -9,7 +9,8 @@ REQUIRE_IMAGE_METADATA=1 platform_check_image() { case "$(board_name)" in - marvell,armada8040-mcbin-doubleshot) + marvell,armada8040-mcbin-doubleshot|\ + marvell,armada8040-mcbin-singleshot) platform_check_image_sdcard "$1" ;; *) @@ -20,7 +21,8 @@ platform_check_image() { platform_do_upgrade() { case "$(board_name)" in - marvell,armada8040-mcbin-doubleshot) + marvell,armada8040-mcbin-doubleshot|\ + marvell,armada8040-mcbin-singleshot) platform_do_upgrade_sdcard "$1" ;; *) @@ -30,7 +32,8 @@ platform_do_upgrade() { } platform_copy_config() { case "$(board_name)" in - marvell,armada8040-mcbin-doubleshot) + marvell,armada8040-mcbin-doubleshot|\ + marvell,armada8040-mcbin-singleshot) platform_copy_config_sdcard ;; esac diff --git a/target/linux/mvebu/image/cortexa72.mk b/target/linux/mvebu/image/cortexa72.mk index 6e52109237..1440c07a0b 100644 --- a/target/linux/mvebu/image/cortexa72.mk +++ b/target/linux/mvebu/image/cortexa72.mk @@ -16,14 +16,30 @@ define Device/marvell_armada8040-db endef TARGET_DEVICES += marvell_armada8040-db -define Device/marvell_macchiatobin +define Device/marvell_macchiatobin-doubleshot $(call Device/Default-arm64) DEVICE_VENDOR := SolidRun DEVICE_MODEL := MACCHIATObin + DEVICE_VARIANT := Double Shot DEVICE_ALT0_VENDOR := SolidRun DEVICE_ALT0_MODEL := Armada 8040 Community Board + DEVICE_ALT0_VARIANT := Double Shot DEVICE_PACKAGES += kmod-i2c-mux-pca954x DEVICE_DTS := armada-8040-mcbin SUPPORTED_DEVICES := marvell,armada8040-mcbin-doubleshot marvell,armada8040-mcbin endef -TARGET_DEVICES += marvell_macchiatobin +TARGET_DEVICES += marvell_macchiatobin-doubleshot + +define Device/marvell_macchiatobin-singleshot + $(call Device/Default-arm64) + DEVICE_VENDOR := SolidRun + DEVICE_MODEL := MACCHIATObin + DEVICE_VARIANT := Single Shot + DEVICE_ALT0_VENDOR := SolidRun + DEVICE_ALT0_MODEL := Armada 8040 Community Board + DEVICE_ALT0_VARIANT := Single Shot + DEVICE_PACKAGES += kmod-i2c-mux-pca954x + DEVICE_DTS := armada-8040-mcbin-singleshot + SUPPORTED_DEVICES := marvell,armada8040-mcbin-singleshot +endef +TARGET_DEVICES += marvell_macchiatobin-singleshot