summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Sutter <phil@nwl.cc>2021-11-15 00:18:02 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2021-11-15 14:47:51 +0100
commit5de9e5b9f6bae42df4e4fadbd1fbacf0f965997c (patch)
tree1b8f5434db52325832a7e2039295a560dee5ee14
parent83838a890a17d522bb43e8834a42a7cc77a4313f (diff)
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>
-rw-r--r--target/arm/kernel/synology-ds414115
-rw-r--r--target/arm/systems/synology-ds41420
-rw-r--r--target/config/Config.in.cpu10
-rw-r--r--target/config/Config.in.kernelfmt2
4 files changed, 147 insertions, 0 deletions
diff --git a/target/arm/kernel/synology-ds414 b/target/arm/kernel/synology-ds414
new file mode 100644
index 000000000..e09864fc3
--- /dev/null
+++ b/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
diff --git a/target/arm/systems/synology-ds414 b/target/arm/systems/synology-ds414
new file mode 100644
index 000000000..24f4addc3
--- /dev/null
+++ b/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.
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 3ee89ce50..da8a57a7c 100644
--- a/target/config/Config.in.cpu
+++ b/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
diff --git a/target/config/Config.in.kernelfmt b/target/config/Config.in.kernelfmt
index b76819cd5..2e43dc5dc 100644
--- a/target/config/Config.in.kernelfmt
+++ b/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