This adds a new target for PowerPC APM821xx (464-based) boards, as well as adds support for the booke-wdt watchdog package.
Signed-off-by: Chris Blake <chrisrblak...@gmail.com> --- include/target.mk | 1 + package/kernel/linux/modules/other.mk | 2 +- target/linux/apm821xx/Makefile | 30 +++ .../apm821xx/base-files/etc/board.d/02_network | 22 ++ .../lib/preinit/03_preinit_do_apm821xx.sh | 12 + .../lib/preinit/05_set_preinit_iface_apm821xx | 12 + target/linux/apm821xx/config-4.4 | 275 +++++++++++++++++++++ target/linux/apm821xx/generic/config-default | 0 target/linux/apm821xx/generic/target.mk | 12 + target/linux/apm821xx/image/Makefile | 24 ++ target/linux/apm821xx/profiles/00-default.mk | 16 ++ 11 files changed, 405 insertions(+), 1 deletion(-) create mode 100644 target/linux/apm821xx/Makefile create mode 100755 target/linux/apm821xx/base-files/etc/board.d/02_network create mode 100644 target/linux/apm821xx/base-files/lib/preinit/03_preinit_do_apm821xx.sh create mode 100644 target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx create mode 100644 target/linux/apm821xx/config-4.4 create mode 100644 target/linux/apm821xx/generic/config-default create mode 100644 target/linux/apm821xx/generic/target.mk create mode 100644 target/linux/apm821xx/image/Makefile create mode 100644 target/linux/apm821xx/profiles/00-default.mk diff --git a/include/target.mk b/include/target.mk index 76fbd99..6d036a0 100644 --- a/include/target.mk +++ b/include/target.mk @@ -253,6 +253,7 @@ ifeq ($(DUMP),1) CPU_CFLAGS_8540:=-mcpu=8540 CPU_CFLAGS_405:=-mcpu=405 CPU_CFLAGS_440:=-mcpu=440 + CPU_CFLAGS_464:=-mcpu=464 endif ifeq ($(ARCH),sparc) CPU_TYPE = sparc diff --git a/package/kernel/linux/modules/other.mk b/package/kernel/linux/modules/other.mk index 528d32f..6624353 100644 --- a/package/kernel/linux/modules/other.mk +++ b/package/kernel/linux/modules/other.mk @@ -517,7 +517,7 @@ $(eval $(call KernelPackage,wdt-orion)) define KernelPackage/booke-wdt SUBMENU:=$(OTHER_MENU) TITLE:=PowerPC Book-E Watchdog Timer - DEPENDS:=@(TARGET_mpc85xx||TARGET_ppc40x||TARGET_ppc44x) + DEPENDS:=@(TARGET_apm821xx||TARGET_mpc85xx||TARGET_ppc40x||TARGET_ppc44x) KCONFIG:=CONFIG_BOOKE_WDT FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/booke_wdt.ko AUTOLOAD:=$(call AutoLoad,50,booke_wdt,1) diff --git a/target/linux/apm821xx/Makefile b/target/linux/apm821xx/Makefile new file mode 100644 index 0000000..1daf039 --- /dev/null +++ b/target/linux/apm821xx/Makefile @@ -0,0 +1,30 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# +include $(TOPDIR)/rules.mk + +ARCH:=powerpc +BOARD:=apm821xx +BOARDNAME:=AppliedMicro APM821xx +CPU_TYPE:=464 +FEATURES:=squashfs nand rtc ramdisk +MAINTAINER:=Imre Kaloz <ka...@openwrt.org> +SUBTARGETS=generic + +KERNEL_PATCHVER:=4.4 + +include $(INCLUDE_DIR)/target.mk + +KERNELNAME:=uImage + +DEFAULT_PACKAGES += \ + kmod-leds-gpio kmod-booke-wdt wpad-mini + +define Target/Description + Build images for AppliedMicro APM821xx based boards. +endef + +$(eval $(call BuildTarget)) diff --git a/target/linux/apm821xx/base-files/etc/board.d/02_network b/target/linux/apm821xx/base-files/etc/board.d/02_network new file mode 100755 index 0000000..a4e5ab4 --- /dev/null +++ b/target/linux/apm821xx/base-files/etc/board.d/02_network @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Copyright (C) 2016 OpenWrt.org +# + +. /lib/functions/system.sh +. /lib/functions/uci-defaults.sh +. /lib/apm821xx.sh + +board_config_update + +board=$(apm821xx_board_name) + +case "$board" +*) + ucidef_set_interfaces_lan_wan "eth0" "eth1" + ;; +esac + +board_config_flush + +exit 0 diff --git a/target/linux/apm821xx/base-files/lib/preinit/03_preinit_do_apm821xx.sh b/target/linux/apm821xx/base-files/lib/preinit/03_preinit_do_apm821xx.sh new file mode 100644 index 0000000..53ca2f5 --- /dev/null +++ b/target/linux/apm821xx/base-files/lib/preinit/03_preinit_do_apm821xx.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Copyright (C) 2016 OpenWrt.org +# + +do_apm821xx() { + . /lib/apm821xx.sh + + apm821xx_board_detect +} + +boot_hook_add preinit_main do_apm821xx diff --git a/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx b/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx new file mode 100644 index 0000000..5ccd8b6 --- /dev/null +++ b/target/linux/apm821xx/base-files/lib/preinit/05_set_preinit_iface_apm821xx @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Copyright (C) 2016 OpenWrt.org +# + +. /lib/apm821xx.sh + +apm821xx_set_preinit_iface() { + ifname=eth0 +} + +boot_hook_add preinit_main apm821xx_set_preinit_iface diff --git a/target/linux/apm821xx/config-4.4 b/target/linux/apm821xx/config-4.4 new file mode 100644 index 0000000..036fe81 --- /dev/null +++ b/target/linux/apm821xx/config-4.4 @@ -0,0 +1,275 @@ +# CONFIG_40x is not set +CONFIG_44x=y +CONFIG_4xx=y +# CONFIG_ADVANCED_OPTIONS is not set +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +# CONFIG_ARCHES is not set +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_ARCH_HAS_ILOG2_U32=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_ARCH_HAS_WALK_MEMORY=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_ARCH_RANDOM is not set +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_AT803X_PHY=y +CONFIG_AUDIT_ARCH=y +# CONFIG_BAMBOO is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLUESTONE is not set +CONFIG_BLUESTONE=y +CONFIG_BOOKE=y +CONFIG_BOUNCE=y +CONFIG_CANYONLANDS=n +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMDLINE_BOOL=y +# CONFIG_CMDLINE_OVERRIDE is not set +CONFIG_CMDLINE="rootfstype=squashfs noinitrd" +CONFIG_CONSISTENT_SIZE=0x00200000 +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_LITTLE_ENDIAN is not set +CONFIG_CRYPTO_DEV_PPC4XX=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_MD5_PPC=y +CONFIG_CRYPTO_SHA1_PPC=y +# CONFIG_DEFAULT_UIMAGE is not set +CONFIG_DTC=y +# CONFIG_E200 is not set +# CONFIG_EARLY_PRINTK is not set +# CONFIG_EBONY is not set +# CONFIG_EIGER is not set +# CONFIG_EPAPR_BOOT is not set +CONFIG_EXTRA_TARGETS="uImage" +# CONFIG_FSL_ULI1575 is not set +# CONFIG_GE_FPGA is not set +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CMOS_UPDATE=y +# CONFIG_GENERIC_CSUM is not set +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_NVRAM=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +# CONFIG_GENERIC_TBSYNC is not set +CONFIG_GENERIC_TIME_VSYSCALL_OLD=y +# CONFIG_GEN_RTC is not set +# CONFIG_GLACIER is not set +CONFIG_GPIO_DEVRES=y +CONFIG_GPIOLIB=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +# CONFIG_HAS_RAPIDIO is not set +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DYNAMIC_FTRACE=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 is not set +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HW_RANDOM_PPC4XX=y +CONFIG_HW_RANDOM=y +CONFIG_HZ=1000 +CONFIG_HZ_1000=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_PERIODIC=y +CONFIG_IBM_EMAC_EMAC4=y +CONFIG_IBM_EMAC_POLL_WEIGHT=32 +CONFIG_IBM_EMAC_RGMII=y +CONFIG_IBM_EMAC_RXB=128 +CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256 +CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0 +CONFIG_IBM_EMAC_TAH=y +CONFIG_IBM_EMAC_TXB=128 +CONFIG_IBM_EMAC=y +CONFIG_IBM_EMAC_ZMII=y +# CONFIG_ICON is not set +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_IOMMU_HELPER is not set +# CONFIG_IPIC is not set +CONFIG_IRQCHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_WORK=y +CONFIG_ISA_DMA_API=y +# CONFIG_KATMAI is not set +CONFIG_KERNEL_START=0xc0000000 +CONFIG_LIBFDT=y +CONFIG_LOWMEM_SIZE=0x30000000 +# CONFIG_MATH_EMULATION is not set +# CONFIG_MMIO_NVRAM is not set +CONFIG_MODULES_USE_ELF_RELA=y +# CONFIG_MPIC is not set +# CONFIG_MPIC_U3_HT_IRQS is not set +# CONFIG_MPIC_WEIRD is not set +CONFIG_MTD_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_NDFC=y +CONFIG_MTD_NAND=y +CONFIG_MTD_SPLIT_FIRMWARE=y +CONFIG_MTD_SPLIT_UIMAGE_FW=y +CONFIG_MTD_UBI_BEB_LIMIT=20 +CONFIG_MTD_UBI_BLOCK=y +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI=y +CONFIG_NEED_DMA_MAP_STATE=y +# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set +CONFIG_NEED_PER_CPU_KM=y +CONFIG_NEED_SG_DMA_LENGTH=y +# CONFIG_NONSTATIC_KERNEL is not set +CONFIG_NOT_COHERENT_CACHE=y +CONFIG_NR_IRQS=512 +CONFIG_OF_ADDRESS_PCI=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_MTD=y +CONFIG_OF_NET=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_PCI=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF=y +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_PAGE_OFFSET=0xc0000000 +CONFIG_PCI_DISABLE_COMMON_QUIRKS=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEAER=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_MSI=y +CONFIG_PCI=y +CONFIG_PHYLIB=y +CONFIG_PHYS_64BIT=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PPC32=y +CONFIG_PPC44x_SIMPLE=y +# CONFIG_PPC_47x is not set +CONFIG_PPC4xx_GPIO=y +# CONFIG_PPC4xx_HSTA_MSI is not set +CONFIG_PPC4xx_MSI=y +CONFIG_PPC4xx_OCM=y +CONFIG_PPC4xx_PCI_EXPRESS=y +# CONFIG_PPC64 is not set +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_8xx is not set +# CONFIG_PPC_970_NAP is not set +CONFIG_PPC_ADV_DEBUG_DAC_RANGE=y +CONFIG_PPC_ADV_DEBUG_DACS=2 +CONFIG_PPC_ADV_DEBUG_DVCS=2 +CONFIG_PPC_ADV_DEBUG_IACS=4 +CONFIG_PPC_ADV_DEBUG_REGS=y +# CONFIG_PPC_BOOK3S_32 is not set +# CONFIG_PPC_CELL is not set +# CONFIG_PPC_CELL_NATIVE is not set +# CONFIG_PPC_COPRO_BASE is not set +# CONFIG_PPC_DCR_MMIO is not set +CONFIG_PPC_DCR_NATIVE=y +CONFIG_PPC_DCR=y +# CONFIG_PPC_DOORBELL is not set +# CONFIG_PPC_EARLY_DEBUG is not set +# CONFIG_PPC_EPAPR_HV_PIC is not set +CONFIG_PPC_FPU=y +CONFIG_PPC_FPU=y +# CONFIG_PPC_I8259 is not set +# CONFIG_PPC_ICP_HV is not set +# CONFIG_PPC_ICP_NATIVE is not set +# CONFIG_PPC_ICS_RTAS is not set +CONFIG_PPC_INDIRECT_PCI=y +CONFIG_PPC_LIB_RHEAP=y +# CONFIG_PPC_MM_SLICES is not set +CONFIG_PPC_MMU_NOHASH=y +# CONFIG_PPC_MPC106 is not set +CONFIG_PPC_MSI_BITMAP=y +CONFIG_PPC_OF=y +# CONFIG_PPC_P7_NAP is not set +CONFIG_PPC_PCI_CHOICE=y +# CONFIG_PPC_RTAS is not set +CONFIG_PPC_UDBG_16550=y +CONFIG_PPC_WERROR=y +# CONFIG_PPC_XICS is not set +CONFIG_PPC=y +# CONFIG_PQ2ADS is not set +# CONFIG_PREEMPT_RCU is not set +CONFIG_PTE_64BIT=y +# CONFIG_RAINIER is not set +CONFIG_RAS=y +# CONFIG_RCU_STALL_COMMON is not set +CONFIG_RD_GZIP=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_SAM440EP is not set +CONFIG_SCHED_HRTICK=y +# CONFIG_SCSI_DMA is not set +# CONFIG_SEQUOIA is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SIMPLE_GPIO=y +CONFIG_SPARSE_IRQ=y +# CONFIG_STRICT_MM_TYPECHECKS is not set +# CONFIG_SWIOTLB is not set +CONFIG_SYSCTL_EXCEPTION_TRACE=y +# CONFIG_TAISHAN is not set +CONFIG_TASK_SIZE=0xc0000000 +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS=y +CONFIG_USB_SUPPORT=y +# CONFIG_WARP is not set +CONFIG_WORD_SIZE=32 +# CONFIG_XILINX_SYSACE is not set +# CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set +CONFIG_XZ_DEC_BCJ=y +CONFIG_XZ_DEC_POWERPC=y +# CONFIG_YOSEMITE is not set diff --git a/target/linux/apm821xx/generic/config-default b/target/linux/apm821xx/generic/config-default new file mode 100644 index 0000000..e69de29 diff --git a/target/linux/apm821xx/generic/target.mk b/target/linux/apm821xx/generic/target.mk new file mode 100644 index 0000000..cd3eb01 --- /dev/null +++ b/target/linux/apm821xx/generic/target.mk @@ -0,0 +1,12 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +BOARDNAME:=Generic + +define Target/Description + Build firmware images for generic APM821xx based boards. +endef diff --git a/target/linux/apm821xx/image/Makefile b/target/linux/apm821xx/image/Makefile new file mode 100644 index 0000000..a9608e7 --- /dev/null +++ b/target/linux/apm821xx/image/Makefile @@ -0,0 +1,24 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# 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 + +IMAGE_PROFILE:=$(if $(PROFILE),$(PROFILE),Default) + +DEVICE_VARS += DTS IMAGE_SIZE + +define Device/Default + BOARDNAME := + DEVICE_PROFILE = $$(BOARDNAME) + PROFILES = Default $$(DEVICE_PROFILE) + KERNEL_DEPENDS = $$(wildcard ../dts/$$(DTS).dts) + KERNEL := kernel-bin | lzma | uImage lzma + KERNEL_INITRAMFS := kernel-bin | lzma | uImage lzma +endef +TARGET_DEVICES += Default + +$(eval $(call BuildImage)) diff --git a/target/linux/apm821xx/profiles/00-default.mk b/target/linux/apm821xx/profiles/00-default.mk new file mode 100644 index 0000000..5f1c125 --- /dev/null +++ b/target/linux/apm821xx/profiles/00-default.mk @@ -0,0 +1,16 @@ +# +# Copyright (C) 2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/Default + NAME:=Default Profile + PACKAGES:=kmod-usb-core kmod-usb2 kmod-usb2-fsl +endef + +define Profile/Default/Description + Default package set compatible with most boards. +endef +$(eval $(call Profile,Default)) -- 2.1.4 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel