Browse Source

Add support for Synology DS414 NAS

The device features a Marvell Armada XP CPU, introduced config symbol
ADK_TARGET_CPU_ARM_MVEBU should suffice for all Armada-based Marvell
CPUs, though.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Phil Sutter 2 months ago
parent
commit
5de9e5b9f6

+ 115 - 0
target/arm/kernel/synology-ds414

@@ -0,0 +1,115 @@
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_MACH_ARMADA_XP=y
+CONFIG_KERNEL_LZMA=y
+CONFIG_VMSPLIT_3G_OPT=y
+CONFIG_BLOCK=y
+CONFIG_ARM_THUMB=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_CACHE_FEROCEON_L2=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MVEBU=y
+CONFIG_SMP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=2
+CONFIG_AEABI=y
+CONFIG_USE_OF=y
+CONFIG_ATAGS=y
+CONFIG_DEPRECATED_PARAM_STRUCT=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_CMDLINE_EXTEND=y
+CONFIG_NEON=y
+CONFIG_BINFMT_ELF=y
+CONFIG_NET=y
+CONFIG_INET=y
+CONFIG_MVEBU_MBUS=y
+CONFIG_MTD=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_DTC=y
+CONFIG_OF=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_BMDMA=y
+CONFIG_SATA_MV=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVNETA=y
+CONFIG_PHYLIB=y
+CONFIG_MARVELL_PHY=y
+CONFIG_INPUT=y
+CONFIG_SERIO=y
+CONFIG_TTY=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_EM=y
+CONFIG_I2C=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_SPI=y
+CONFIG_SPI_ORION=y
+CONFIG_PINCTRL_ARMADA_XP=y
+CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HWMON=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_OF=y
+CONFIG_ARMADA_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_ORION_WATCHDOG=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_ORION=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_MV_UDC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_MV=y
+CONFIG_DMADEVICES=y
+CONFIG_MV_XOR=y
+CONFIG_ARMADA_XP_CLK=y
+CONFIG_ARMADA_370_XP_TIMER=y
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_MARVELL_CESA=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM=y
+CONFIG_CRYPTO_SHA256_ARM=y
+CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_AES_ARM=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_USERSPACE_CONSUMER=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_PINCTRL_SINGLE=y

+ 20 - 0
target/arm/systems/synology-ds414

@@ -0,0 +1,20 @@
+config ADK_TARGET_SYSTEM_SYNOLOGY_DS414
+	bool "Synology DS414"
+	select ADK_TARGET_CPU_ARM_MVEBU
+	select ADK_TARGET_LITTLE_ENDIAN
+	select ADK_TARGET_KERNEL_UIMAGE
+	select ADK_TARGET_WITH_SERIAL
+	select ADK_TARGET_WITH_CPU_FREQ
+	select ADK_TARGET_WITH_USB
+	select ADK_TARGET_WITH_SD
+	select ADK_TARGET_WITH_I2C
+	select ADK_TARGET_WITH_SPI
+	select ADK_TARGET_WITH_LEDS
+	select ADK_TARGET_WITH_WATCHDOG
+	select ADK_TARGET_WITH_SMP
+	select ADK_TARGET_WITH_ROOT_RW
+	select ADK_TARGET_WITH_NET
+	select ADK_TARGET_WITH_NETDEVICE
+	select ADK_TARGET_WITH_BLOCK
+	help
+	  The DS414 is a four-slot NAS featuring a Marvell ArmadaXP SoC.

+ 10 - 0
target/config/Config.in.cpu

@@ -215,6 +215,15 @@ config ADK_TARGET_CPU_ARM_XSCALE
 	select ADK_TARGET_SUPPORTS_LT
 	depends on ADK_TARGET_ARCH_ARM
 
+config ADK_TARGET_CPU_ARM_MVEBU
+	bool "mvebu"
+	select ADK_TARGET_SUPPORTS_THREADS
+	select ADK_TARGET_SUPPORTS_NPTL
+	select ADK_TARGET_WITH_MMU
+	select ADK_TARGET_CPU_WITH_FPU_VFPV3
+	select ADK_TARGET_SOFTFP_FLOAT
+	depends on ADK_TARGET_ARCH_ARM
+
 # avr32
 config ADK_TARGET_CPU_AVR32
 	bool "avr32"
@@ -1936,6 +1945,7 @@ config ADK_TARGET_GCC_CPU
 	default "8540" if ADK_TARGET_CPU_PPC_8540
 	default "8548" if ADK_TARGET_CPU_PPC_8548
 	default "970" if ADK_TARGET_CPU_PPC_970
+	default "marvell-pj4" if ADK_TARGET_CPU_ARM_MVEBU
 
 # for gcc --with-arch
 config ADK_TARGET_GCC_ARCH

+ 2 - 0
target/config/Config.in.kernelfmt

@@ -66,8 +66,10 @@ config ADK_TARGET_KERNEL_WITH_COMPRESSION
 
 config ADK_TARGET_KERNEL_LOADADDR
 	hex
+	default 0x8000 if ADK_TARGET_SYSTEM_SYNOLOGY_DS414
 	default 0x40008000 if ADK_TARGET_SYSTEM_BANANA_PRO
 	default 0x40008000 if ADK_TARGET_SYSTEM_ORANGE_PI0
 
 config ADK_TARGET_KERNEL_APPEND_DTB
 	string
+	default "armada-xp-synology-ds414" if ADK_TARGET_SYSTEM_SYNOLOGY_DS414