From 5b7b0c68c7659bb4c0d2c3c52946dafd5703cb13 Mon Sep 17 00:00:00 2001 From: Damir Samardzic Date: Mon, 7 May 2018 09:25:53 +0200 Subject: [PATCH] mvebu: initial support for Marvell Armada 7k and 8k DB boards Add initial support for cortex-a72 based Armada DB-88F8040-Modular and DB-88F7040-Modular development boards. DB-88F8040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU (up to 2 GHz) - DDR4 DIMM - 64 bits + ECC - 2 x 128 Mb SPI NOR flash memory - 2 x 1G Ethernet port via RGMII (RJ45) - 2 x SD card ports (4 bit port on CP, 8 bit port on AP) - 2 SERDES modules with the following interfaces each: - 2 x SATA Rev 3.0 port (Port1 via SERDES module CON4 (active port), Port0 via SERDES Module CON2 or CON1 (optional port)) - 3 x PCI Express (PCIe) Gen 3.0 (Port2 via SERDES module CON5 (active port), Port1 via SERDES module CON7 (optional port), Port0 via SERDES module CON6 (optional port)) - 2 x USB3 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 1 x MCI interface by two over USB Type C connector - 4 x serial COM port driven by the 88F8040 UART interface and converted to USB via FTDI IC - I2C Master Interface - CP I2C 2x EEPROM @ Address 0x50 and 0x57 - 1 x I/O Expander @ Address 0x21 - Sample at Reset (SatR) memory device @ Address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions: 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions: 70 mm x 105 mm DB-88F7040-Modular specifications: - Quad-core ARMv8 Cortex A72 CPU - CPU core operating speed of up to 1.6 GHz for Dual Core, 1.4 GHz for Quad Core - DDR4 - 32 bit + ECC on Module - SLM1366-V1 (DB-DDR4-40B-MODULE) 4 GByte 32-bit - 1 x 128Mb SPI NOR flash memory - 2 x 1G Ethernet port: 1 over RGMII (RJ45) and 1 over SGMII - SD card 4 bits port on AP - eMMc Module on CP - 1 SERDES Modules with the following interfaces each: - 1 x SATA Rev 3.0 port (via SERDES module CON4) - 1 x PCI Express (PCIe) Gen 3.0 (via SERDES module CON5) - 2 x USB 3.0 (USB 2.0 backward compatible) host (via SERDES module CON9 and CON10) - 1 x 10G port over SFP+ connector (via SERDES module CON8) - 2 x MCi interface by one over USB Type C connector - 4 x Serial COM port driven by the 88F7040 UA - RT interface and converted to USB via FTDI IC - I2C Master Interface - 2 x EEPROM at address 0x57 and 0x50 in AP and 2 x EEPROM at address 0x57 and 0x50 in CP - 1 x I/O Expander at address 0x21 - Sample at Reset (SatR) memory device at address 0x4C and 0x4E - I2C Slave Interface (via SERDES module) - Connection to each device on the board via an I2C multiplexer - JTAG interface for CPU emulator - Board dimensions - 270 mm x 240 mm (main + SERDES module) - SERDES Module Dimensions - 70 mm x 105 mm Booting from USB flash drive (dd sdcard image to the flash drive): 1. reset U-Boot environment: env default -a saveenv 2. prepare U-Boot manually (make sure to set correct dtb file name): setenv bootargs_root 'root=/dev/sda2 rw rootdelay=2 ip=dhcp' setenv fdtfile armada-7040-db.dtb setenv image_name Image setenv bootcmd 'usb start; ext4load usb 0:1 $kernel_addr $image_name; ext4load usb 0:1 $fdt_addr $fdtfile; setenv bootargs $console $mtdparts $bootargs_root; booti $kernel_addr - $fdt_addr' saveenv boot Signed-off-by: Damir Samardzic --- .../mvebu/base-files/etc/board.d/02_network | 6 +++++ target/linux/mvebu/base-files/lib/mvebu.sh | 6 +++++ target/linux/mvebu/image/cortex-a72.mk | 26 +++++++++++++++++++ 3 files changed, 38 insertions(+) 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 1dba615e0b..2c10154925 100755 --- a/target/linux/mvebu/base-files/etc/board.d/02_network +++ b/target/linux/mvebu/base-files/etc/board.d/02_network @@ -52,6 +52,12 @@ marvell,armada-3720-db) marvell,armada8040-mcbin) ucidef_set_interfaces_lan_wan "eth0 eth1 eth3" "eth2" ;; +marvell,armada8040-db) + ucidef_set_interfaces_lan_wan "eth0 eth2 eth3" "eth1" + ;; +marvell,armada7040-db) + ucidef_set_interfaces_lan_wan "eth0 eth2" "eth1" + ;; *) ucidef_set_interface_lan "eth0" ;; diff --git a/target/linux/mvebu/base-files/lib/mvebu.sh b/target/linux/mvebu/base-files/lib/mvebu.sh index b908f4813e..5a0d7b2933 100755 --- a/target/linux/mvebu/base-files/lib/mvebu.sh +++ b/target/linux/mvebu/base-files/lib/mvebu.sh @@ -26,6 +26,12 @@ mvebu_board_detect() { *"Marvell 8040 MACHIATOBin") name="marvell,armada8040-mcbin" ;; + *"Marvell Armada 8040 DB board") + name="marvell,armada8040-db" + ;; + *"Marvell Armada 7040 DB board") + name="marvell,armada7040-db" + ;; *"Globalscale Mirabox") name="mirabox" ;; diff --git a/target/linux/mvebu/image/cortex-a72.mk b/target/linux/mvebu/image/cortex-a72.mk index ac9cb50a85..ac5b80233b 100644 --- a/target/linux/mvebu/image/cortex-a72.mk +++ b/target/linux/mvebu/image/cortex-a72.mk @@ -13,4 +13,30 @@ define Device/armada-macchiatobin endef TARGET_DEVICES += armada-macchiatobin +define Device/armada-8040-db + KERNEL_NAME := Image + KERNEL := kernel-bin + DEVICE_TITLE := Marvell Armada 8040 DB board + DEVICE_PACKAGES := e2fsprogs ethtool mkf2fs kmod-fs-vfat kmod-mmc + IMAGES := sdcard.img.gz + IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata + DEVICE_DTS := armada-8040-db + DTS_DIR := $(DTS_DIR)/marvell + SUPPORTED_DEVICES := marvell,armada8040-db +endef +TARGET_DEVICES += armada-8040-db + +define Device/armada-7040-db + KERNEL_NAME := Image + KERNEL := kernel-bin + DEVICE_TITLE := Marvell Armada 7040 DB board + DEVICE_PACKAGES := e2fsprogs ethtool mkf2fs kmod-fs-vfat kmod-mmc + IMAGES := sdcard.img.gz + IMAGE/sdcard.img.gz := boot-img-ext4 | sdcard-img-ext4 | gzip | append-metadata + DEVICE_DTS := armada-7040-db + DTS_DIR := $(DTS_DIR)/marvell + SUPPORTED_DEVICES := marvell,armada7040-db +endef +TARGET_DEVICES += armada-7040-db + endif -- 2.25.1