mvebu: initial support for Marvell Armada 7k and 8k DB boards
authorDamir Samardzic <damir.samardzic@sartura.hr>
Mon, 7 May 2018 07:25:53 +0000 (09:25 +0200)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 21 May 2018 16:07:47 +0000 (18:07 +0200)
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 <damir.samardzic@sartura.hr>
target/linux/mvebu/base-files/etc/board.d/02_network
target/linux/mvebu/base-files/lib/mvebu.sh
target/linux/mvebu/image/cortex-a72.mk

index 1dba615..2c10154 100755 (executable)
@@ -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"
        ;;
index b908f48..5a0d7b2 100755 (executable)
@@ -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"
                ;;
index ac9cb50..ac5b802 100644 (file)
@@ -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