From patchwork Mon Apr 4 00:56:26 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chris X-Patchwork-Id: 605680 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from arrakis.dune.hu (caladan.dune.hu [78.24.191.180]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qdYWD5FRSz9s6r for ; Mon, 4 Apr 2016 10:58:00 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=PD1k6/vA; dkim-atps=neutral Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id D9C90B9154B; Mon, 4 Apr 2016 02:57:03 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on arrakis.dune.hu X-Spam-Level: ** X-Spam-Status: No, score=2.4 required=5.0 tests=FREEMAIL_FROM,RDNS_NONE, T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.1 Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP; Mon, 4 Apr 2016 02:57:03 +0200 (CEST) Received: from arrakis.dune.hu (localhost [127.0.0.1]) by arrakis.dune.hu (Postfix) with ESMTP id DF7FFB91559 for ; Mon, 4 Apr 2016 02:57:01 +0200 (CEST) X-policyd-weight: using cached result; rate: -7 Received: from mail-ig0-f196.google.com (unknown [209.85.213.196]) by arrakis.dune.hu (Postfix) with ESMTPS for ; Mon, 4 Apr 2016 02:57:01 +0200 (CEST) Received: by mail-ig0-f196.google.com with SMTP id kb1so1649973igb.3 for ; Sun, 03 Apr 2016 17:57:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=tIMBK3wjomirF1YsoKvFWr00u1pAq7Go7ybE6Y4ZSoU=; b=PD1k6/vACTAbhwD27dfuacHBGNWOZJ/6gJXEfd2k1QZXzSpyrUvC12wA+X/hZtm3vN TAk8FXZXh5Fu6z+BRfd5PpESMmXXKrwq2ufy7fZC/jHAyaipNAiDvrp/CZ6tROBO8bRY 8lvujTkk2/H918Y7re+gvdp2KsHAE52wsIRZYWSeX9gTaMY9+S9IOkGannUXVwLEzu5b ce85gCMb3eqkwPnrx5Cm4kbEYoyoIgY38J/93F2Ei+wIj9BFq7vsICx48uC45DB7Ezgt 4mimUuEZrPYMArcTxAXqlfh3CRYKJrODSvwkWcIZq3XCave8ynluWaTo7MCVW3a3Z5sr /Tag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=tIMBK3wjomirF1YsoKvFWr00u1pAq7Go7ybE6Y4ZSoU=; b=dA5AA6j0C8H15PZokiWB3NxqTH3h2i02beDzr4PpRLi0GbR16UMMDXGvw5ZzaG101Y hY/KYogGvTP+wp8F8zHyeJW0V4mrg3zBvjt+vRnm7ICWqCMkYZ5leuNtOYOYWIWAkxjw 0GtZgrXVI/4ITHjgxSdH4IAFtEWUCKfSVSedN75za6VWx0rz5rN7K74oK2OSg1V8KJZy T0zVE4mA/DBd8qlHEyE77N6RLxPpFTZpnGpMyNRKQsJ46gYqCeFq5hQ59kG3BagEPZZG 19LYpceyLMdPzYa3/ythXY3hWfkXpIa1vp9psohBbOW+nZPEq0Rr3NRTaROnDuAx9I4x wB4w== X-Gm-Message-State: AD7BkJIlY6i3DHTjlqOSFu+rlnA2riWkxqUSvRLwdHelmUfVctjS+k4rElcsimG4GbmfUA== X-Received: by 10.50.66.171 with SMTP id g11mr5947733igt.96.1459731420499; Sun, 03 Apr 2016 17:57:00 -0700 (PDT) Received: from build01.chrisrblake.com (build01.chrisrblake.com. [159.203.29.144]) by smtp.gmail.com with ESMTPSA id aw5sm4404322igc.1.2016.04.03.17.56.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 03 Apr 2016 17:56:59 -0700 (PDT) From: Chris Blake To: openwrt-devel@lists.openwrt.org, kaloz@openwrt.org Date: Sun, 3 Apr 2016 20:56:26 -0400 Message-Id: <1459731387-16624-2-git-send-email-chrisrblake93@gmail.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1459731387-16624-1-git-send-email-chrisrblake93@gmail.com> References: <1459731387-16624-1-git-send-email-chrisrblake93@gmail.com> Subject: [OpenWrt-Devel] [PATCH 1/2] Add support for the apm821xx Device Target X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: OpenWrt Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: openwrt-devel-bounces@lists.openwrt.org Sender: "openwrt-devel" 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 --- include/target.mk | 1 + package/kernel/linux/modules/other.mk | 2 +- target/linux/apm821xx/Makefile | 29 ++ .../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 | 298 +++++++++++++++++++++ target/linux/apm821xx/image/Makefile | 24 ++ .../700-powerpc_ibm_phy_add_ar8035.patch | 41 +++ .../800-ppc4xx-rng-fix-crash-during-init.patch | 117 ++++++++ target/linux/apm821xx/profiles/00-default.mk | 16 ++ 11 files changed, 573 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/image/Makefile create mode 100644 target/linux/apm821xx/patches-4.4/700-powerpc_ibm_phy_add_ar8035.patch create mode 100644 target/linux/apm821xx/patches-4.4/800-ppc4xx-rng-fix-crash-during-init.patch create mode 100644 target/linux/apm821xx/profiles/00-default.mk diff --git a/include/target.mk b/include/target.mk index 76fbd99..5bdb7bf 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_464fp:=-mcpu=464fp 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..d48dab0 --- /dev/null +++ b/target/linux/apm821xx/Makefile @@ -0,0 +1,29 @@ +# +# 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:=464fp +FEATURES:=squashfs nand rtc fpu ramdisk +MAINTAINER:=Imre Kaloz + +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..c7d067b --- /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" in +*) + 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..0c1657b --- /dev/null +++ b/target/linux/apm821xx/config-4.4 @@ -0,0 +1,298 @@ +# CONFIG_40x is not set +CONFIG_44x=y +CONFIG_4xx=y +CONFIG_4xx_SOC=y +# CONFIG_ADVANCED_OPTIONS is not set +# CONFIG_ARCHES is not set +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_ARCH_HAS_DMA_SET_COHERENT_MASK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=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_REQUIRE_GPIOLIB=y +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_BCH=y +# CONFIG_BLUESTONE is not set +CONFIG_BOOKE=y +CONFIG_BOUNCE=y +# CONFIG_CANYONLANDS is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CMDLINE="rootfstype=squashfs noinitrd" +CONFIG_CMDLINE_BOOL=y +CONFIG_CONSISTENT_SIZE=0x00200000 +CONFIG_CPU_BIG_ENDIAN=y +CONFIG_CRC16=y +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DEV_PPC4XX=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_LZO=y +CONFIG_CRYPTO_MD5_PPC=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SHA1_PPC=y +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_XZ=y +CONFIG_DECOMPRESS_GZIP=y +# CONFIG_DEFAULT_UIMAGE is not set +CONFIG_DTC=y +# CONFIG_E200 is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_EBONY is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EIGER is not set +# CONFIG_EPAPR_BOOT is not set +CONFIG_EXTRA_TARGETS="uImage" +# CONFIG_FSL_ULI1575 is not set +CONFIG_GENERIC_ATOMIC64=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CMOS_UPDATE=y +# CONFIG_GENERIC_CSUM is not set +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_MSI_IRQ=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_GE_FPGA is not set +# CONFIG_GLACIER is not set +CONFIG_GPIOLIB=y +CONFIG_GPIO_DEVRES=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_BITREVERSE is not set +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_BPF_JIT=y +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_GENERIC_RCU_GUP=y +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=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=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=y +CONFIG_HW_RANDOM_PPC4XX=y +CONFIG_HZ=1000 +# CONFIG_HZ_100 is not set +CONFIG_HZ_1000=y +CONFIG_HZ_PERIODIC=y +CONFIG_IBM_EMAC=y +CONFIG_IBM_EMAC_POLL_WEIGHT=32 +CONFIG_IBM_EMAC_RXB=128 +CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256 +CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0 +CONFIG_IBM_EMAC_TXB=128 +# 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_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +# CONFIG_MATH_EMULATION is not set +CONFIG_MDIO_BOARDINFO=y +# 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=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_ECC_BCH=y +CONFIG_MTD_NAND_ECC_SMC=y +CONFIG_MTD_NAND_NDFC=y +CONFIG_MTD_SPLIT_FIRMWARE=y +CONFIG_MTD_SPLIT_UIMAGE_FW=y +CONFIG_MTD_UBI=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_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_NO_BOOTMEM=y +CONFIG_NR_IRQS=512 +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_ADDRESS_PCI=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_IRQ=y +CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y +CONFIG_OF_NET=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND=y +CONFIG_PAGE_OFFSET=0xc0000000 +CONFIG_PCI=y +CONFIG_PCIEAER=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_BUS_ADDR_T_64BIT=y +CONFIG_PCI_DISABLE_COMMON_QUIRKS=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_MSI=y +CONFIG_PGTABLE_LEVELS=2 +CONFIG_PHYLIB=y +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PHYS_64BIT=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PPC=y +CONFIG_PPC32=y +CONFIG_PPC44x_SIMPLE=y +CONFIG_PPC4xx_GPIO=y +# CONFIG_PPC4xx_HSTA_MSI is not set +# CONFIG_PPC4xx_MSI is not set +CONFIG_PPC4xx_OCM=y +# CONFIG_PPC4xx_PCI_EXPRESS is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_47x 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_DACS=2 +CONFIG_PPC_ADV_DEBUG_DAC_RANGE=y +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=y +# CONFIG_PPC_DCR_MMIO is not set +CONFIG_PPC_DCR_NATIVE=y +# CONFIG_PPC_DOORBELL is not set +# CONFIG_PPC_EARLY_DEBUG is not set +# CONFIG_PPC_EPAPR_HV_PIC is not set +# 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_MMU_NOHASH=y +# CONFIG_PPC_MM_SLICES is not set +# CONFIG_PPC_MPC106 is not set +# 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_PQ2ADS 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_SCHED_INFO is not set +# 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_SRCU=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=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_XZ=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_USB_SUPPORT=y +CONFIG_VDSO32=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 +CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_INFLATE=y 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/patches-4.4/700-powerpc_ibm_phy_add_ar8035.patch b/target/linux/apm821xx/patches-4.4/700-powerpc_ibm_phy_add_ar8035.patch new file mode 100644 index 0000000..b0c1eeb --- /dev/null +++ b/target/linux/apm821xx/patches-4.4/700-powerpc_ibm_phy_add_ar8035.patch @@ -0,0 +1,41 @@ +--- a/drivers/net/ethernet/ibm/emac/phy.c ++++ b/drivers/net/ethernet/ibm/emac/phy.c +@@ -470,12 +470,38 @@ static struct mii_phy_def m88e1112_phy_d + .ops = &m88e1112_phy_ops, + }; + ++static int ar8035_init(struct mii_phy *phy) ++{ ++ phy_write(phy, 0x1d, 0x5); /* Address debug register 5 */ ++ phy_write(phy, 0x1e, 0x2d47); /* ?? Value copied from u-boot */ ++ phy_write(phy, 0x1d, 0xb); /* Address hib ctrl */ ++ phy_write(phy, 0x1e, 0xbc20); /* Another poorly documented register */ ++ ++ return 0; ++} ++ ++static struct mii_phy_ops ar8035_phy_ops = { ++ .init = ar8035_init, ++ .setup_aneg = genmii_setup_aneg, ++ .setup_forced = genmii_setup_forced, ++ .poll_link = genmii_poll_link, ++ .read_link = genmii_read_link, ++}; ++ ++static struct mii_phy_def ar8035_phy_def = { ++ .phy_id = 0x004dd070, ++ .phy_id_mask = 0xfffffff0, ++ .name = "Atheros 8035 Gigabit Ethernet", ++ .ops = &ar8035_phy_ops, ++}; ++ + static struct mii_phy_def *mii_phy_table[] = { + &et1011c_phy_def, + &cis8201_phy_def, + &bcm5248_phy_def, + &m88e1111_phy_def, + &m88e1112_phy_def, ++ &ar8035_phy_def, + &genmii_phy_def, + NULL + }; diff --git a/target/linux/apm821xx/patches-4.4/800-ppc4xx-rng-fix-crash-during-init.patch b/target/linux/apm821xx/patches-4.4/800-ppc4xx-rng-fix-crash-during-init.patch new file mode 100644 index 0000000..6eed32f --- /dev/null +++ b/target/linux/apm821xx/patches-4.4/800-ppc4xx-rng-fix-crash-during-init.patch @@ -0,0 +1,117 @@ +From 2159e200fcb68f88a94b1d5570d6000c100133a8 Mon Sep 17 00:00:00 2001 +From: Christian Lamparter +Date: Fri, 25 Mar 2016 19:00:05 +0100 +Subject: [PATCH] ppc4xx-rng: fix crash during init + +This patch fixes a crash that happens in the ppc4xx-rng driver +when accessing the main crypto core to enable the true random +number generator. + +Signed-off-by: Christian Lamparter +--- + drivers/char/hw_random/ppc4xx-rng.c | 42 --------------------------------- + drivers/crypto/amcc/crypto4xx_core.c | 1 + + drivers/crypto/amcc/crypto4xx_reg_def.h | 1 + + 3 files changed, 2 insertions(+), 42 deletions(-) + +diff --git a/drivers/char/hw_random/ppc4xx-rng.c b/drivers/char/hw_random/ppc4xx-rng.c +index c0db438..a9a8a29 100644 +--- a/drivers/char/hw_random/ppc4xx-rng.c ++++ b/drivers/char/hw_random/ppc4xx-rng.c +@@ -17,9 +17,6 @@ + #include + #include + +-#define PPC4XX_TRNG_DEV_CTRL 0x60080 +- +-#define PPC4XX_TRNGE 0x00020000 + #define PPC4XX_TRNG_CTRL 0x0008 + #define PPC4XX_TRNG_CTRL_DALM 0x20 + #define PPC4XX_TRNG_STAT 0x0004 +@@ -51,40 +48,6 @@ static int ppc4xx_rng_data_read(struct hwrng *rng, u32 *data) + return 4; + } + +-static int ppc4xx_rng_enable(int enable) +-{ +- struct device_node *ctrl; +- void __iomem *ctrl_reg; +- int err = 0; +- u32 val; +- +- /* Find the main crypto device node and map it to turn the TRNG on */ +- ctrl = of_find_compatible_node(NULL, NULL, "amcc,ppc4xx-crypto"); +- if (!ctrl) +- return -ENODEV; +- +- ctrl_reg = of_iomap(ctrl, 0); +- if (!ctrl_reg) { +- err = -ENODEV; +- goto out; +- } +- +- val = in_le32(ctrl_reg + PPC4XX_TRNG_DEV_CTRL); +- +- if (enable) +- val |= PPC4XX_TRNGE; +- else +- val = val & ~PPC4XX_TRNGE; +- +- out_le32(ctrl_reg + PPC4XX_TRNG_DEV_CTRL, val); +- iounmap(ctrl_reg); +- +-out: +- of_node_put(ctrl); +- +- return err; +-} +- + static struct hwrng ppc4xx_rng = { + .name = MODULE_NAME, + .data_present = ppc4xx_rng_data_present, +@@ -100,10 +63,6 @@ static int ppc4xx_rng_probe(struct platform_device *dev) + if (!rng_regs) + return -ENODEV; + +- err = ppc4xx_rng_enable(1); +- if (err) +- return err; +- + out_le32(rng_regs + PPC4XX_TRNG_CTRL, PPC4XX_TRNG_CTRL_DALM); + ppc4xx_rng.priv = (unsigned long) rng_regs; + +@@ -117,7 +76,6 @@ static int ppc4xx_rng_remove(struct platform_device *dev) + void __iomem *rng_regs = (void __iomem *) ppc4xx_rng.priv; + + hwrng_unregister(&ppc4xx_rng); +- ppc4xx_rng_enable(0); + iounmap(rng_regs); + + return 0; +diff --git a/drivers/crypto/amcc/crypto4xx_core.c b/drivers/crypto/amcc/crypto4xx_core.c +index 62134c8..cb0b262 100644 +--- a/drivers/crypto/amcc/crypto4xx_core.c ++++ b/drivers/crypto/amcc/crypto4xx_core.c +@@ -90,6 +90,7 @@ static void crypto4xx_hw_init(struct crypto4xx_device *dev) + writel(ring_ctrl.w, dev->ce_base + CRYPTO4XX_RING_CTRL); + device_ctrl = readl(dev->ce_base + CRYPTO4XX_DEVICE_CTRL); + device_ctrl |= PPC4XX_DC_3DES_EN; ++ device_ctrl |= PPC4XX_TRNGE; + writel(device_ctrl, dev->ce_base + CRYPTO4XX_DEVICE_CTRL); + writel(dev->gdr_pa, dev->ce_base + CRYPTO4XX_GATH_RING_BASE); + writel(dev->sdr_pa, dev->ce_base + CRYPTO4XX_SCAT_RING_BASE); +diff --git a/drivers/crypto/amcc/crypto4xx_reg_def.h b/drivers/crypto/amcc/crypto4xx_reg_def.h +index 5f5fbc0..914efc6 100644 +--- a/drivers/crypto/amcc/crypto4xx_reg_def.h ++++ b/drivers/crypto/amcc/crypto4xx_reg_def.h +@@ -124,6 +124,7 @@ + #define PPC4XX_BYTE_ORDER 0x22222 + #define PPC4XX_INTERRUPT_CLR 0x3ffff + #define PPC4XX_PRNG_CTRL_AUTO_EN 0x3 ++#define PPC4XX_TRNGE 0x00020000 + #define PPC4XX_DC_3DES_EN 1 + #define PPC4XX_INT_DESCR_CNT 4 + #define PPC4XX_INT_TIMEOUT_CNT 0 +-- +2.8.0.rc3 + diff --git a/target/linux/apm821xx/profiles/00-default.mk b/target/linux/apm821xx/profiles/00-default.mk new file mode 100644 index 0000000..acd1fdf --- /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 (all drivers) + 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))