From 5de9e5b9f6bae42df4e4fadbd1fbacf0f965997c Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Mon, 15 Nov 2021 00:18:02 +0100 Subject: 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 --- target/arm/kernel/synology-ds414 | 115 ++++++++++++++++++++++++++++++++++++++ target/arm/systems/synology-ds414 | 20 +++++++ target/config/Config.in.cpu | 10 ++++ target/config/Config.in.kernelfmt | 2 + 4 files changed, 147 insertions(+) create mode 100644 target/arm/kernel/synology-ds414 create mode 100644 target/arm/systems/synology-ds414 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 -- cgit v1.2.3