On 10/19/18 7:37 PM, Stijn Tintel wrote: > This target supports Amlogic S9 SoCs. > > Signed-off-by: Stijn Tintel <[email protected]> > --- > target/linux/mesongx/Makefile | 36 ++ > target/linux/mesongx/base-files/etc/inittab | 5 + > .../mesongx/base-files/lib/preinit/79_move_config | 22 + > .../mesongx/base-files/lib/upgrade/platform.sh | 95 +++++ > target/linux/mesongx/config-4.14 | 455 > +++++++++++++++++++++ > target/linux/mesongx/image/Makefile | 66 +++ > target/linux/mesongx/image/boot.odroid-c2.txt | 8 + > 7 files changed, 687 insertions(+) > create mode 100644 target/linux/mesongx/Makefile > create mode 100644 target/linux/mesongx/base-files/etc/inittab > create mode 100644 target/linux/mesongx/base-files/lib/preinit/79_move_config > create mode 100644 target/linux/mesongx/base-files/lib/upgrade/platform.sh > create mode 100644 target/linux/mesongx/config-4.14 > create mode 100644 target/linux/mesongx/image/Makefile > create mode 100644 target/linux/mesongx/image/boot.odroid-c2.txt > > diff --git a/target/linux/mesongx/Makefile b/target/linux/mesongx/Makefile > new file mode 100644 > index 0000000000..507f5d2526 > --- /dev/null > +++ b/target/linux/mesongx/Makefile > @@ -0,0 +1,36 @@ > +# > +# Copyright (C) 2017-2018 Stijn Tintel <[email protected]> > +# > +# This is free software, licensed under the GNU General Public License v2. > +# See /LICENSE for more information. > +# > + > +include $(TOPDIR)/rules.mk > + > +ARCH:=aarch64 > +BOARD:=mesongx > +BOARDNAME:=Amlogic S9 family > +CPU_TYPE:=cortex-a53 > +DEVICE_TYPE:=other > +FEATURES:=audio boot-part ext4 fpu squashfs usbgadget > +MAINTAINER:=Stijn Tintel <[email protected]> > + > +KERNEL_PATCHVER:=4.14 > + > +define Target/Description > + Build firmware image for Amlogic S9 SoC devices. > +endef > + > +include $(INCLUDE_DIR)/target.mk > + > +DEFAULT_PACKAGES += \ > + e2fsprogs \ > + kmod-sound-core \ > + kmod-usb-hid \ > + mkf2fs \ > + partx-utils \ > + v4l-utils > + > +KERNELNAME:=Image dtbs > + > +$(eval $(call BuildTarget)) > diff --git a/target/linux/mesongx/base-files/etc/inittab > b/target/linux/mesongx/base-files/etc/inittab > new file mode 100644 > index 0000000000..a5100a7050 > --- /dev/null > +++ b/target/linux/mesongx/base-files/etc/inittab > @@ -0,0 +1,5 @@ > +::sysinit:/etc/init.d/rcS S boot > +::shutdown:/etc/init.d/rcS K shutdown > +::askconsole:/usr/libexec/login.sh > +tty1::askfirst:/usr/libexec/login.sh > +ttyAML0::askfirst:/usr/libexec/login.sh > diff --git a/target/linux/mesongx/base-files/lib/preinit/79_move_config > b/target/linux/mesongx/base-files/lib/preinit/79_move_config > new file mode 100644 > index 0000000000..6ac1b3be69 > --- /dev/null > +++ b/target/linux/mesongx/base-files/lib/preinit/79_move_config > @@ -0,0 +1,22 @@ > +#!/bin/sh > +# Copyright (C) 2012-2015 OpenWrt.org > + > +move_config() { > + local partdev > + > + . /lib/upgrade/common.sh > + > + if export_bootdevice && export_partdevice partdev 1; then > + mkdir -p /boot > + if mount -t ext4 -o ro,noatime "/dev/$partdev" /boot; then > + if [ -f /boot/sysupgrade.tgz ]; then > + mount /boot -o remount,rw,noatime > + mv -f /boot/sysupgrade.tgz / > + mount /boot -o remount,ro,noatime > + fi > + fi > + fi > +} > + > +boot_hook_add preinit_mount_root move_config > + > diff --git a/target/linux/mesongx/base-files/lib/upgrade/platform.sh > b/target/linux/mesongx/base-files/lib/upgrade/platform.sh > new file mode 100644 > index 0000000000..3bfefc6b92 > --- /dev/null > +++ b/target/linux/mesongx/base-files/lib/upgrade/platform.sh > @@ -0,0 +1,95 @@ > +platform_check_image() { > + local diskdev partdev diff > + [ "$#" -gt 1 ] && return 1 > + > + case "$(get_magic_word "$1")" in > + 24c8) ;; > + *) > + echo "Invalid image type" > + return 1 > + ;; > + esac > + > + export_bootdevice && export_partdevice diskdev 0 || { > + echo "Unable to determine upgrade device" > + return 1 > + } > + > + get_partitions "/dev/$diskdev" bootdisk > + > + #extract the boot sector from the image > + get_image "$@" | dd of=/tmp/image.bs count=1 bs=512b 2>/dev/null > + > + get_partitions /tmp/image.bs image > + > + #compare tables > + diff="$(grep -F -x -v -f /tmp/partmap.bootdisk /tmp/partmap.image)" > + > + rm -f /tmp/image.bs /tmp/partmap.bootdisk /tmp/partmap.image > + > + if [ -n "$diff" ]; then > + echo "Partition layout has changed. Full image will be written." > + ask_bool 0 "Abort" && exit 1 > + return 0 > + fi > +} > + > +platform_copy_config() { > + local partdev > + > + if export_partdevice partdev 1; then > + mount -t ext4 -o rw,noatime "/dev/$partdev" /mnt > + cp -af "$CONF_TAR" /mnt/ > + umount /mnt > + fi > +} > + > +platform_do_upgrade() { > + local diskdev partdev diff > + > + export_bootdevice && export_partdevice diskdev 0 || { > + echo "Unable to determine upgrade device" > + return 1 > + } > + > + sync > + > + if [ "$SAVE_PARTITIONS" = "1" ]; then > + get_partitions "/dev/$diskdev" bootdisk > + > + #extract the boot sector from the image > + get_image "$@" | dd of=/tmp/image.bs count=1 bs=512b > + > + get_partitions /tmp/image.bs image > + > + #compare tables > + diff="$(grep -F -x -v -f /tmp/partmap.bootdisk > /tmp/partmap.image)" > + else > + diff=1 > + fi > + > + if [ -n "$diff" ]; then > + get_image "$@" | dd of="/dev/$diskdev" bs=4096 conv=fsync > + > + # Separate removal and addtion is necessary; otherwise, > partition 1 > + # will be missing if it overlaps with the old partition 2 > + partx -d - "/dev/$diskdev" > + partx -a - "/dev/$diskdev" > + > + return 0 > + fi > + > + #iterate over each partition from the image and write it to the boot > disk > + while read part start size; do > + if export_partdevice partdev $part; then > + echo "Writing image to /dev/$partdev..." > + get_image "$@" | dd of="/dev/$partdev" ibs="512" obs=1M > skip="$start" count="$size" conv=fsync > + else > + echo "Unable to find partition $part device, skipped." > + fi > + done < /tmp/partmap.image > + > + #copy partition uuid > + echo "Writing new UUID to /dev/$diskdev..." > + get_image "$@" | dd of="/dev/$diskdev" bs=1 skip=440 count=4 seek=440 > conv=fsync > +} > diff --git a/target/linux/mesongx/config-4.14 > b/target/linux/mesongx/config-4.14 > new file mode 100644 > index 0000000000..aa2ba17d4a > --- /dev/null > +++ b/target/linux/mesongx/config-4.14 > @@ -0,0 +1,455 @@ > +CONFIG_64BIT=y > +# CONFIG_AIO is not set > +CONFIG_ARCH_CLOCKSOURCE_DATA=y > +CONFIG_ARCH_DMA_ADDR_T_64BIT=y > +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y > +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y > +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y > +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y > +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y > +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y > +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y > +CONFIG_ARCH_HAS_KCOV=y > +CONFIG_ARCH_HAS_PMEM_API=y > +CONFIG_ARCH_HAS_SET_MEMORY=y > +CONFIG_ARCH_HAS_SG_CHAIN=y > +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y > +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y > +CONFIG_ARCH_HAS_TICK_BROADCAST=y > +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y > +CONFIG_ARCH_MESON=y > +CONFIG_ARCH_MMAP_RND_BITS=18 > +CONFIG_ARCH_MMAP_RND_BITS_MAX=33 > +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 > +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 > +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set > +# CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set > +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y > +CONFIG_ARCH_PROC_KCORE_TEXT=y > +CONFIG_ARCH_SELECT_MEMORY_MODEL=y > +CONFIG_ARCH_SPARSEMEM_DEFAULT=y > +CONFIG_ARCH_SPARSEMEM_ENABLE=y > +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y > +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y > +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y > +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y > +CONFIG_ARCH_SUPPORTS_UPROBES=y > +CONFIG_ARCH_SUSPEND_POSSIBLE=y > +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y > +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y > +CONFIG_ARCH_WANT_FRAME_POINTERS=y > +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y > +CONFIG_ARM64=y > +# CONFIG_ARM64_16K_PAGES is not set > +CONFIG_ARM64_4K_PAGES=y > +# CONFIG_ARM64_64K_PAGES is not set > +CONFIG_ARM64_CONT_SHIFT=4 > +# CONFIG_ARM64_CRYPTO is not set > +CONFIG_ARM64_ERRATUM_819472=y > +CONFIG_ARM64_ERRATUM_824069=y > +CONFIG_ARM64_ERRATUM_826319=y > +CONFIG_ARM64_ERRATUM_827319=y > +CONFIG_ARM64_ERRATUM_843419=y > +CONFIG_ARM64_ERRATUM_858921=y > +CONFIG_ARM64_HW_AFDBM=y > +# CONFIG_ARM64_LSE_ATOMICS is not set > +CONFIG_ARM64_MODULE_CMODEL_LARGE=y > +CONFIG_ARM64_PAGE_SHIFT=12 > +CONFIG_ARM64_PAN=y > +CONFIG_ARM64_PMEM=y > +# CONFIG_ARM64_PTDUMP_CORE is not set > +# CONFIG_ARM64_PTDUMP_DEBUGFS is not set > +# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set > +CONFIG_ARM64_SSBD=y > +# CONFIG_ARM64_SW_TTBR0_PAN is not set > +CONFIG_ARM64_UAO=y > +CONFIG_ARM64_VA_BITS=48 > +# CONFIG_ARM64_VA_BITS_39 is not set > +CONFIG_ARM64_VA_BITS_48=y > +CONFIG_ARM64_VHE=y > +CONFIG_ARM_AMBA=y > +CONFIG_ARM_ARCH_TIMER=y > +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y > +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y > +CONFIG_ARM_GIC=y > +CONFIG_ARM_GIC_V3=y > +CONFIG_ARM_PSCI_FW=y > +CONFIG_ARM_SCPI_POWER_DOMAIN=y > +CONFIG_ARM_SCPI_PROTOCOL=y > +# CONFIG_ARM_SP805_WATCHDOG is not set > +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y > +# CONFIG_BCM_FLEXRM_MBOX is not set > +CONFIG_BLK_DEBUG_FS=y > +# CONFIG_BLK_DEV_INITRD is not set > +CONFIG_BLK_DEV_LOOP=y > +CONFIG_BOUNCE=y > +CONFIG_CC_STACKPROTECTOR=y > +# CONFIG_CC_STACKPROTECTOR_NONE is not set > +CONFIG_CC_STACKPROTECTOR_STRONG=y
By default OpenWrt uses CONFIG_CC_STACKPROTECTOR_NONE, but I do not know if this is a good default. > +CONFIG_CEC_CORE=y > +CONFIG_CEC_NOTIFIER=y > +CONFIG_CEC_PLATFORM_DRIVERS=y > +CONFIG_CLKDEV_LOOKUP=y > +CONFIG_CLONE_BACKWARDS=y > +CONFIG_CMA=y > +CONFIG_CMA_ALIGNMENT=8 > +CONFIG_CMA_AREAS=7 > +# CONFIG_CMA_DEBUG is not set > +# CONFIG_CMA_DEBUGFS is not set > +CONFIG_CMA_SIZE_MBYTES=16 > +# CONFIG_CMA_SIZE_SEL_MAX is not set > +CONFIG_CMA_SIZE_SEL_MBYTES=y > +# CONFIG_CMA_SIZE_SEL_MIN is not set > +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set > +CONFIG_COMMON_CLK=y > +CONFIG_COMMON_CLK_AMLOGIC=y > +CONFIG_COMMON_CLK_GXBB=y > +# CONFIG_COMMON_CLK_SCPI is not set > +CONFIG_COMMON_CLK_XGENE=y CONFIG_COMMON_CLK_XGENE is probably not needed > +CONFIG_COMPACTION=y > +# CONFIG_COMPAT is not set > +CONFIG_CONSOLE_TRANSLATIONS=y > +CONFIG_COREDUMP=y > +# CONFIG_CPU_BIG_ENDIAN is not set > +CONFIG_CPU_RMAP=y > +CONFIG_CRC16=y > +CONFIG_CRC7=y > +CONFIG_CRC_ITU_T=y > +CONFIG_CRYPTO_AEAD=y > +CONFIG_CRYPTO_AEAD2=y > +CONFIG_CRYPTO_CRC32=y > +CONFIG_CRYPTO_CRC32C=y > +CONFIG_CRYPTO_HASH=y > +CONFIG_CRYPTO_HASH2=y > +CONFIG_CRYPTO_MANAGER=y > +CONFIG_CRYPTO_MANAGER2=y > +CONFIG_CRYPTO_NULL2=y > +CONFIG_CRYPTO_RNG2=y > +CONFIG_CRYPTO_WORKQUEUE=y Are all these crypto algorithms needed by default? > +CONFIG_DCACHE_WORD_ACCESS=y > +CONFIG_DEBUG_INFO=y > +CONFIG_DMA_CMA=y > +CONFIG_DMA_SHARED_BUFFER=y > +CONFIG_DRM=y > +CONFIG_DRM_ARM=y > +CONFIG_DRM_BRIDGE=y > +CONFIG_DRM_DW_HDMI=y > +CONFIG_DRM_GEM_CMA_HELPER=y > +CONFIG_DRM_KMS_CMA_HELPER=y > +CONFIG_DRM_KMS_FB_HELPER=y > +CONFIG_DRM_KMS_HELPER=y > +CONFIG_DRM_MALI_DISPLAY=y > +CONFIG_DRM_MESON=y > +CONFIG_DRM_MESON_DW_HDMI=y > +CONFIG_DRM_PANEL=y > +CONFIG_DRM_PANEL_BRIDGE=y > +CONFIG_DTC=y > +CONFIG_DUMMY_CONSOLE=y > +CONFIG_DWMAC_DWC_QOS_ETH=y > +# CONFIG_DWMAC_GENERIC is not set > +CONFIG_DWMAC_MESON=y > +CONFIG_EDAC_SUPPORT=y > +CONFIG_ELF_CORE=y > +CONFIG_EXT4_FS=y > +CONFIG_EXT4_FS_SECURITY=y > +CONFIG_EXTCON=y > +# CONFIG_F2FS_CHECK_FS is not set > +CONFIG_F2FS_FS=y > +CONFIG_F2FS_FS_POSIX_ACL=y > +# CONFIG_F2FS_FS_SECURITY is not set > +CONFIG_F2FS_FS_XATTR=y > +CONFIG_F2FS_STAT_FS=y > +CONFIG_FB=y > +CONFIG_FB_CFB_COPYAREA=y > +CONFIG_FB_CFB_FILLRECT=y > +CONFIG_FB_CFB_IMAGEBLIT=y > +CONFIG_FB_CMDLINE=y > +CONFIG_FB_DEFERRED_IO=y > +# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set > +CONFIG_FB_SYS_COPYAREA=y > +CONFIG_FB_SYS_FILLRECT=y > +CONFIG_FB_SYS_FOPS=y > +CONFIG_FB_SYS_IMAGEBLIT=y > +CONFIG_FIXED_PHY=y > +CONFIG_FIX_EARLYCON_MEM=y > +# CONFIG_FONTS is not set > +CONFIG_FONT_8x16=y > +CONFIG_FONT_8x8=y > +CONFIG_FONT_SUPPORT=y > +CONFIG_FRAMEBUFFER_CONSOLE=y > +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y > +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set > +CONFIG_FRAME_POINTER=y > +CONFIG_FSL_ERRATUM_A008585=y > +CONFIG_FS_MBCACHE=y > +CONFIG_FS_POSIX_ACL=y > +CONFIG_GENERIC_ALLOCATOR=y > +CONFIG_GENERIC_ARCH_TOPOLOGY=y > +CONFIG_GENERIC_BUG=y > +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y > +CONFIG_GENERIC_CLOCKEVENTS=y > +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y > +CONFIG_GENERIC_CPU_AUTOPROBE=y > +CONFIG_GENERIC_CSUM=y > +CONFIG_GENERIC_EARLY_IOREMAP=y > +CONFIG_GENERIC_IDLE_POLL_SETUP=y > +CONFIG_GENERIC_IO=y > +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y > +CONFIG_GENERIC_IRQ_SHOW=y > +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y > +CONFIG_GENERIC_PCI_IOMAP=y > +CONFIG_GENERIC_PHY=y > +CONFIG_GENERIC_PINCONF=y > +CONFIG_GENERIC_PINCTRL_GROUPS=y > +CONFIG_GENERIC_PINMUX_FUNCTIONS=y > +CONFIG_GENERIC_SCHED_CLOCK=y > +CONFIG_GENERIC_SMP_IDLE_THREAD=y > +CONFIG_GENERIC_STRNCPY_FROM_USER=y > +CONFIG_GENERIC_STRNLEN_USER=y > +CONFIG_GENERIC_TIME_VSYSCALL=y > +CONFIG_GLOB=y > +CONFIG_GPIOLIB=y > +CONFIG_GPIO_SYSFS=y > +# CONFIG_GRO_CELLS is not set > +CONFIG_HANDLE_DOMAIN_IRQ=y > +CONFIG_HARDEN_BRANCH_PREDICTOR=y > +CONFIG_HARDIRQS_SW_RESEND=y > +CONFIG_HAS_DMA=y > +CONFIG_HAS_IOMEM=y > +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set > +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y > +CONFIG_HAVE_ARCH_AUDITSYSCALL=y > +CONFIG_HAVE_ARCH_BITREVERSE=y > +CONFIG_HAVE_ARCH_HUGE_VMAP=y > +CONFIG_HAVE_ARCH_JUMP_LABEL=y > +CONFIG_HAVE_ARCH_KASAN=y > +CONFIG_HAVE_ARCH_KGDB=y > +CONFIG_HAVE_ARCH_PFN_VALID=y > +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y > +CONFIG_HAVE_ARCH_TRACEHOOK=y > +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y > +CONFIG_HAVE_ARCH_VMAP_STACK=y > +CONFIG_HAVE_ARM_SMCCC=y > +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set > +CONFIG_HAVE_CC_STACKPROTECTOR=y > +CONFIG_HAVE_CLK=y > +CONFIG_HAVE_CLK_PREPARE=y > +CONFIG_HAVE_CMPXCHG_DOUBLE=y > +CONFIG_HAVE_CMPXCHG_LOCAL=y > +CONFIG_HAVE_CONTEXT_TRACKING=y > +CONFIG_HAVE_C_RECORDMCOUNT=y > +CONFIG_HAVE_DEBUG_BUGVERBOSE=y > +CONFIG_HAVE_DEBUG_KMEMLEAK=y > +CONFIG_HAVE_DMA_API_DEBUG=y > +CONFIG_HAVE_DMA_CONTIGUOUS=y > +CONFIG_HAVE_DYNAMIC_FTRACE=y > +CONFIG_HAVE_EBPF_JIT=y > +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y > +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y > +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y > +CONFIG_HAVE_FUNCTION_TRACER=y > +CONFIG_HAVE_GENERIC_DMA_COHERENT=y > +CONFIG_HAVE_GENERIC_GUP=y > +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y > +CONFIG_HAVE_MEMBLOCK=y > +CONFIG_HAVE_MEMORY_PRESENT=y > +CONFIG_HAVE_NET_DSA=y > +CONFIG_HAVE_PATA_PLATFORM=y > +CONFIG_HAVE_PERF_EVENTS=y > +CONFIG_HAVE_PERF_REGS=y > +CONFIG_HAVE_PERF_USER_STACK_DUMP=y > +CONFIG_HAVE_RCU_TABLE_FREE=y > +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y > +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y > +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y > +CONFIG_HDMI=y > +CONFIG_HISILICON_ERRATUM_161010101=y > +CONFIG_HOLES_IN_ZONE=y > +# CONFIG_HUGETLBFS is not set > +CONFIG_HWMON=y > +CONFIG_HW_CONSOLE=y > +CONFIG_HW_RANDOM=y > +CONFIG_HW_RANDOM_MESON=y > +CONFIG_I2C=y > +CONFIG_I2C_ALGOBIT=y > +CONFIG_I2C_BOARDINFO=y > +CONFIG_I2C_MESON=y > +CONFIG_IIO=y > +# CONFIG_IIO_BUFFER is not set > +# CONFIG_IIO_TRIGGER is not set > +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 > +CONFIG_INPUT=y > +CONFIG_IOMMU_HELPER=y > +CONFIG_IOSCHED_BFQ=y > +CONFIG_IPV6=y IPv6 should be provided by a module like for other OpenWrt tragets. > +CONFIG_IPV6_MROUTE=y > +CONFIG_IPV6_MULTIPLE_TABLES=y > +# CONFIG_IPV6_PIMSM_V2 is not set > +CONFIG_IPV6_SUBTREES=y > +CONFIG_IRQCHIP=y > +CONFIG_IRQ_DOMAIN=y > +CONFIG_IRQ_DOMAIN_HIERARCHY=y > +CONFIG_IRQ_FORCED_THREADING=y > +CONFIG_IRQ_WORK=y > +CONFIG_IR_MESON=y > +# CONFIG_IR_SERIAL is not set > +# CONFIG_IR_SIR is not set > +CONFIG_JBD2=y > +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set > +CONFIG_LEDS_GPIO=y > +CONFIG_LIBFDT=y > +CONFIG_LOCK_SPIN_ON_OWNER=y > +CONFIG_MAGIC_SYSRQ=y > +CONFIG_MAILBOX=y > +# CONFIG_MAILBOX_TEST is not set > +CONFIG_MDIO_BUS=y > +CONFIG_MDIO_DEVICE=y > +CONFIG_MEDIA_CEC_RC=y > +CONFIG_MEDIA_CEC_SUPPORT=y > +CONFIG_MEDIA_SUPPORT=y > +CONFIG_MEMORY_ISOLATION=y > +CONFIG_MESON_EFUSE=y > +CONFIG_MESON_GXBB_WATCHDOG=y > +# CONFIG_MESON_GXL_PHY is not set > +CONFIG_MESON_GX_PM_DOMAINS=y > +CONFIG_MESON_GX_SOCINFO=y > +CONFIG_MESON_MX_SOCINFO=y > +CONFIG_MESON_SARADC=y > +CONFIG_MESON_SM=y > +CONFIG_MESON_WATCHDOG=y > +CONFIG_MFD_SYSCON=y > +CONFIG_MIGRATION=y > +CONFIG_MMC=y > +CONFIG_MMC_ARMMMCI=y > +CONFIG_MMC_BLOCK=y > +CONFIG_MMC_MESON_GX=y > +CONFIG_MMC_SPI=y > +CONFIG_MODULES_USE_ELF_RELA=y > +CONFIG_MQ_IOSCHED_DEADLINE=y > +CONFIG_MQ_IOSCHED_KYBER=y > +CONFIG_MUTEX_SPIN_ON_OWNER=y > +CONFIG_NEED_DMA_MAP_STATE=y > +CONFIG_NEED_SG_DMA_LENGTH=y > +CONFIG_NET_CLS_ACT=y > +CONFIG_NET_EMATCH=y > +CONFIG_NET_FLOW_LIMIT=y > +CONFIG_NET_PTP_CLASSIFY=y > +CONFIG_NLS=y > +CONFIG_NO_BOOTMEM=y > +CONFIG_NO_HZ_COMMON=y > +CONFIG_NO_HZ_IDLE=y > +CONFIG_NO_IOPORT_MAP=y > +CONFIG_NR_CPUS=8 > +# CONFIG_NUMA is not set > +CONFIG_NVMEM=y > +CONFIG_OF=y > +CONFIG_OF_ADDRESS=y > +CONFIG_OF_EARLY_FLATTREE=y > +CONFIG_OF_FLATTREE=y > +CONFIG_OF_GPIO=y > +CONFIG_OF_IRQ=y > +CONFIG_OF_MDIO=y > +CONFIG_OF_NET=y > +CONFIG_OF_RESERVED_MEM=y > +CONFIG_PADATA=y > +CONFIG_PARTITION_PERCPU=y > +# CONFIG_PCI_DOMAINS is not set > +# CONFIG_PCI_DOMAINS_GENERIC is not set > +# CONFIG_PCI_SYSCALL is not set > +CONFIG_PGTABLE_LEVELS=4 > +CONFIG_PHYLIB=y > +CONFIG_PHYS_ADDR_T_64BIT=y > +CONFIG_PHY_MESON8B_USB2=y > +CONFIG_PHY_MESON_GXL_USB2=y > +CONFIG_PINCTRL=y > +CONFIG_PINCTRL_MESON=y > +CONFIG_PLATFORM_MHU=y > +CONFIG_PM=y > +CONFIG_PM_CLK=y > +# CONFIG_PM_DEBUG is not set > +CONFIG_PM_GENERIC_DOMAINS=y > +CONFIG_PM_GENERIC_DOMAINS_OF=y > +CONFIG_POSIX_MQUEUE=y > +CONFIG_POSIX_MQUEUE_SYSCTL=y > +CONFIG_POWER_RESET=y > +CONFIG_POWER_SUPPLY=y > +CONFIG_PPS=y > +CONFIG_PRINTK_TIME=y > +CONFIG_PTP_1588_CLOCK=y > +CONFIG_PWM=y > +CONFIG_PWM_MESON=y > +CONFIG_PWM_SYSFS=y > +# CONFIG_RANDOMIZE_BASE is not set > +CONFIG_RATIONAL=y > +CONFIG_RCU_NEED_SEGCBLIST=y > +CONFIG_RCU_STALL_COMMON=y > +CONFIG_RC_CORE=y > +CONFIG_RC_DEVICES=y > +CONFIG_REALTEK_PHY=y > +CONFIG_REGMAP=y > +CONFIG_REGMAP_I2C=y > +CONFIG_REGMAP_MMIO=y > +CONFIG_REGULATOR=y > +CONFIG_REGULATOR_DEBUG=y > +CONFIG_REGULATOR_FIXED_VOLTAGE=y > +CONFIG_REGULATOR_GPIO=y > +CONFIG_RESET_CONTROLLER=y > +CONFIG_RESET_MESON=y > +CONFIG_RFS_ACCEL=y > +CONFIG_RPS=y > +CONFIG_RWSEM_SPIN_ON_OWNER=y > +CONFIG_RWSEM_XCHGADD_ALGORITHM=y > +# CONFIG_SCHED_INFO is not set > +# CONFIG_SCSI_DMA is not set > +CONFIG_SDIO_UART=y > +CONFIG_SENSORS_ARM_SCPI=y > +CONFIG_SERIAL_8250_FSL=y > +# CONFIG_SERIAL_AMBA_PL011 is not set > +CONFIG_SERIAL_MESON=y > +CONFIG_SERIAL_MESON_CONSOLE=y > +CONFIG_SMP=y > +CONFIG_SOC_BUS=y > +CONFIG_SPARSEMEM=y > +CONFIG_SPARSEMEM_EXTREME=y > +CONFIG_SPARSEMEM_MANUAL=y > +CONFIG_SPARSEMEM_VMEMMAP=y > +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y > +CONFIG_SPARSE_IRQ=y > +CONFIG_SPI=y > +CONFIG_SPI_MASTER=y > +CONFIG_SPI_MESON_SPICC=y > +CONFIG_SPI_MESON_SPIFC=y > +CONFIG_SRCU=y > +CONFIG_STMMAC_ETH=y > +CONFIG_STMMAC_PLATFORM=y > +CONFIG_SWIOTLB=y > +CONFIG_SWPHY=y > +CONFIG_SYNC_FILE=y > +CONFIG_SYSCTL_EXCEPTION_TRACE=y > +CONFIG_SYS_SUPPORTS_HUGETLBFS=y > +CONFIG_THREAD_INFO_IN_TASK=y > +CONFIG_TICK_CPU_ACCOUNTING=y > +CONFIG_TIMER_OF=y > +CONFIG_TIMER_PROBE=y > +CONFIG_TREE_RCU=y > +CONFIG_TREE_SRCU=y > +CONFIG_UNMAP_KERNEL_AT_EL0=y > +CONFIG_USB=y > +CONFIG_USB_COMMON=y > +CONFIG_USB_DWC2=y > +CONFIG_USB_DWC2_DUAL_ROLE=y > +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set > +# CONFIG_USB_EHCI_HCD is not set > +CONFIG_USB_GADGET=y > +CONFIG_USB_OTG=y > +CONFIG_USB_OTG_FSM=y > +CONFIG_USB_PHY=y > +CONFIG_USB_SUPPORT=y > +CONFIG_VIDEOMODE_HELPERS=y > +CONFIG_VIDEO_MESON_AO_CEC=y > +CONFIG_VMAP_STACK=y > +CONFIG_VT=y > +CONFIG_VT_CONSOLE=y > +CONFIG_VT_HW_CONSOLE_BINDING=y Is the VT faremwork needed? > +CONFIG_WATCHDOG_CORE=y > +CONFIG_XPS=y > diff --git a/target/linux/mesongx/image/Makefile > b/target/linux/mesongx/image/Makefile > new file mode 100644 > index 0000000000..d2fba8ca03 > --- /dev/null > +++ b/target/linux/mesongx/image/Makefile > @@ -0,0 +1,66 @@ > +# > +# Copyright (C) 2017-2018 Stijn Tintel <[email protected]> > +# > +# This is free software, licensed under the GNU General Public License v2. > +# See /LICENSE for more information. > +# > +include $(TOPDIR)/rules.mk > +include $(INCLUDE_DIR)/image.mk > + > +define Build/bootloader-odroid-c2 > + fip_create \ > + --bl30 $(STAGING_DIR_IMAGE)/odroidc2/bl30.bin \ > + --bl301 $(STAGING_DIR_IMAGE)/odroidc2/bl301.bin \ > + --bl31 $(STAGING_DIR_IMAGE)/odroidc2/bl31.bin \ > + --bl33 $(BIN_DIR)/u-boot-odroid-c2/u-boot.bin \ > + $(BIN_DIR)/u-boot-odroid-c2/fip.bin > + > + cat $(STAGING_DIR_IMAGE)/odroidc2/bl2.package > $(BIN_DIR)/u-boot-odroid-c2/fip.bin > $(BIN_DIR)/u-boot-odroid-c2/boot_new.bin > + > + amlbootsig $(BIN_DIR)/u-boot-odroid-c2/boot_new.bin > $(BIN_DIR)/u-boot-odroid-c2/u-boot.bin.signed > + > + dd if=$(BIN_DIR)/u-boot-odroid-c2/u-boot.bin.signed > of=$(BIN_DIR)/u-boot-odroid-c2/u-boot.gxbb bs=512 skip=96 > + dd if=$(STAGING_DIR_IMAGE)/odroidc2/bl1.bin.hardkernel of=$@ > conv=fsync,notrunc bs=1 count=440 > + dd if=$(STAGING_DIR_IMAGE)/odroidc2/bl1.bin.hardkernel of=$@ > conv=fsync,notrunc bs=512 skip=1 seek=1 > + dd if=$(BIN_DIR)/u-boot-odroid-c2/u-boot.gxbb of=$@ conv=fsync,notrunc > bs=512 seek=97 > +endef > + > +define Build/sdcard-img > + $(INSTALL_DIR) $(KDIR)/boot.ext4 > + $(CP) $(KDIR)/boot.$1.scr $(KDIR)/boot.ext4/boot.scr > + $(CP) $(KDIR_KERNEL_IMAGE) $(KDIR)/boot.ext4/uImage > + $(foreach dts,$(DEVICE_DTS),$(CP) $(DTS_DIR)/$(dts).dtb > $(KDIR)/boot.ext4/) > + PADDING="$(CONFIG_TARGET_IMAGES_PAD)" \ > + PATH="$(TARGET_PATH)" \ > + $(SCRIPT_DIR)/gen_image_generic.sh $@ \ > + $(CONFIG_TARGET_KERNEL_PARTSIZE) $(KDIR)/boot.ext4 \ > + $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS) \ > + 4096 > +endef > + > +define Build/uImage-meson > + $(call Build/uImage,none) > + mkimage -A arm64 -T script -C none -n "boot.scr uImage" -d boot.$1.txt > $(KDIR)/boot.$1.scr > +endef > + > +### Devices ### > +define Device/Default > + CONSOLE := ttyAML0,115200 > + FILESYSTEMS := ext4 squashfs > + IMAGES := sdcard.img > + IMAGE/sdcard.img := sdcard-img $$(DEVICE_NAME) | bootloader-$$(DEVICE_NAME) > + KERNEL_DEPENDS = $$(wildcard $(DTS_DIR)/$$(DEVICE_DTS).dts) > + KERNEL_LOADADDR := 0x01080000 > + KERNEL_NAME := Image > + PROFILES = Default $$(DEVICE_NAME) > +endef > + > +define Device/odroid-c2 > + DEVICE_DTS := amlogic/meson-gxbb-odroidc2 > + DEVICE_PACKAGES += odroid-firmware-c2 u-boot-odroid-c2 > + DEVICE_TITLE := ODROID C2 > + KERNEL := kernel-bin | uImage-meson $$(DEVICE_NAME) > +endef > +TARGET_DEVICES += odroid-c2 > + > +$(eval $(call BuildImage)) > diff --git a/target/linux/mesongx/image/boot.odroid-c2.txt > b/target/linux/mesongx/image/boot.odroid-c2.txt > new file mode 100644 > index 0000000000..371e6ec42c > --- /dev/null > +++ b/target/linux/mesongx/image/boot.odroid-c2.txt > @@ -0,0 +1,8 @@ > +setenv bootargs "root=PARTUUID=5452574f-02 rootwait ro > rootfstype=ext4,squashfs console=ttyAML0,115200" > +setenv loadaddr "0x01080000" > +setenv dtb_loadaddr "0x01000000" > + > +ext2load mmc 0:1 ${loadaddr} uImage > +ext2load mmc 0:1 ${dtb_loadaddr} meson-gxbb-odroidc2.dtb > + > +bootm ${loadaddr} - ${dtb_loadaddr} >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
