Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934024AbbBDPHV (ORCPT ); Wed, 4 Feb 2015 10:07:21 -0500 Received: from mail-bl2on0103.outbound.protection.outlook.com ([65.55.169.103]:7232 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932877AbbBDPHQ (ORCPT ); Wed, 4 Feb 2015 10:07:16 -0500 X-Greylist: delayed 847 seconds by postgrey-1.27 at vger.kernel.org; Wed, 04 Feb 2015 10:07:15 EST From: Emil Medve To: , , CC: Geoff Thorpe Subject: [RFC 03/10] powerpc/mpc85xx: Add platform support for the Freescale DPAA BMan Date: Wed, 4 Feb 2015 08:48:35 -0600 Message-ID: <1423061322-16059-4-git-send-email-Emilian.Medve@Freescale.com> X-Mailer: git-send-email 2.2.2 In-Reply-To: <1423061322-16059-1-git-send-email-Emilian.Medve@Freescale.com> References: <1423061322-16059-1-git-send-email-Emilian.Medve@Freescale.com> X-EOPAttributedMessage: 0 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=Emilian.Medve@Freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; X-Forefront-Antispam-Report: CIP:192.88.168.50;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10019020)(6009001)(339900001)(50944004)(86362001)(85426001)(2950100001)(87936001)(77096005)(6806004)(62966003)(104016003)(77156002)(46102003)(36756003)(105606002)(229853001)(19580395003)(19580405001)(106466001)(50226001)(50986999)(47776003)(2201001)(92566002)(50466002)(76176999)(48376002)(2101003);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR0301MB1190;H:tx30smr01.am.freescale.net;FPR:;SPF:Fail;MLV:sfv;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Antispam: UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1190; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004);SRVR:BY1PR0301MB1190; X-Forefront-PRVS: 04772EA191 X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:BY1PR0301MB1190; X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2015 14:53:05.6908 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d;Ip=[192.88.168.50] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0301MB1190 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 9863 Lines: 263 From: Geoff Thorpe Change-Id: I59de17c040cdd304f86306336fcf89f130f7db2d Signed-off-by: Geoff Thorpe --- arch/powerpc/Kconfig | 33 +++++++++++++++------------ arch/powerpc/platforms/85xx/Kconfig | 11 +++++---- arch/powerpc/platforms/85xx/corenet_generic.c | 20 ++++++++++++++-- arch/powerpc/platforms/85xx/p1023_rdb.c | 20 +++++++++++++--- 4 files changed, 60 insertions(+), 24 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 89996f3..7b2e673 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -361,7 +361,7 @@ config PPC_TRANSACTIONAL_MEM select VSX default n ---help--- - Support user-mode Transactional Memory on POWERPC. + Support user-mode Transactional Memory on POWERPC. config IOMMU_HELPER def_bool PPC64 @@ -374,7 +374,7 @@ config SWIOTLB Support for IO bounce buffering for systems without an IOMMU. This allows us to DMA to the full physical address space on platforms where the size of a physical address is larger - than the bus address. Not all platforms support this. + than the bus address. Not all platforms support this. config HOTPLUG_CPU bool "Support for enabling/disabling CPUs" @@ -410,8 +410,8 @@ config KEXEC depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) help kexec is a system call that implements the ability to shutdown your - current kernel, and to start another kernel. It is like a reboot - but it is independent of the system firmware. And like a reboot + current kernel, and to start another kernel. It is like a reboot + but it is independent of the system firmware. And like a reboot you can start any kernel with it, not just Linux. The name comes from the similarity to the exec system call. @@ -450,7 +450,7 @@ config IRQ_ALL_CPUS help This option gives the kernel permission to distribute IRQs across multiple CPUs. Saying N here will route all IRQs to the first - CPU. Generally saying Y is safe, although some problems have been + CPU. Generally saying Y is safe, although some problems have been reported with SMP Power Macintoshes with this option enabled. config NUMA @@ -499,9 +499,9 @@ config ARCH_MEMORY_PROBE depends on MEMORY_HOTPLUG # Some NUMA nodes have memory ranges that span -# other nodes. Even though a pfn is valid and +# other nodes. Even though a pfn is valid and # between a node's start and end pfns, it may not -# reside on that node. See memmap_init_zone() +# reside on that node. See memmap_init_zone() # for details. config NODES_SPAN_OTHER_NODES def_bool y @@ -600,8 +600,8 @@ config FORCE_MAX_ZONEORDER This config option is actually maximum order plus one. For example, a value of 11 means that the largest free memory block is 2^10 pages. - The page size is not necessarily 4KB. For example, on 64-bit - systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep + The page size is not necessarily 4KB. For example, on 64-bit + systems, 64KB pages can be enabled via CONFIG_PPC_64K_PAGES. Keep this in mind when choosing a value for this option. config PPC_SUBPAGE_PROT @@ -630,7 +630,7 @@ config PPC_DENORMALISATION default "y" if PPC_POWERNV ---help--- Add support for handling denormalisation of single precision - values. Useful for bare metal only. If unsure say Y here. + values. Useful for bare metal only. If unsure say Y here. config CMDLINE_BOOL bool "Default bootloader kernel arguments" @@ -740,7 +740,7 @@ config FSL_SOC bool config FSL_PCI - bool + bool select PPC_INDIRECT_PCI select PCI_QUIRKS @@ -778,12 +778,17 @@ config FSL_GTM help Freescale General-purpose Timers support +config HAS_FSL_QBMAN + bool "Datapath Acceleration Queue and Buffer management" + help + Datapath Acceleration Queue and Buffer management + # Yes MCA RS/6000s exist but Linux-PPC does not currently support any config MCA bool # Platforms that what PCI turned unconditionally just do select PCI -# in their config node. Platforms that want to choose at config +# in their config node. Platforms that want to choose at config # time should select PPC_PCI_CHOICE config PPC_PCI_CHOICE bool @@ -910,14 +915,14 @@ config DYNAMIC_MEMSTART select NONSTATIC_KERNEL help This option enables the kernel to be loaded at any page aligned - physical address. The kernel creates a mapping from KERNELBASE to + physical address. The kernel creates a mapping from KERNELBASE to the address where the kernel is loaded. The page size here implies the TLB page size of the mapping for kernel on the particular platform. Please refer to the init code for finding the TLB page size. DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE kernel image, where the only restriction is the page aligned kernel - load address. When this option is enabled, the compile time physical + load address. When this option is enabled, the compile time physical address CONFIG_PHYSICAL_START is ignored. This option is overridden by CONFIG_RELOCATABLE diff --git a/arch/powerpc/platforms/85xx/Kconfig b/arch/powerpc/platforms/85xx/Kconfig index 0e72534..7f8c798 100644 --- a/arch/powerpc/platforms/85xx/Kconfig +++ b/arch/powerpc/platforms/85xx/Kconfig @@ -146,10 +146,10 @@ config SOCRATES This option enables support for the Socrates board. config KSI8560 - bool "Emerson KSI8560" - select DEFAULT_UIMAGE - help - This option enables support for the Emerson KSI8560 board + bool "Emerson KSI8560" + select DEFAULT_UIMAGE + help + This option enables support for the Emerson KSI8560 board config XES_MPC85xx bool "X-ES single-board computer" @@ -249,7 +249,7 @@ config PPC_QEMU_E500 select DEFAULT_UIMAGE help This option enables support for running as a QEMU guest using - QEMU's generic e500 machine. This is not required if you're + QEMU's generic e500 machine. This is not required if you're using a QEMU machine that targets a specific board, such as mpc8544ds. @@ -270,6 +270,7 @@ config CORENET_GENERIC select GPIO_MPC8XXX select HAS_RAPIDIO select PPC_EPAPR_HV_PIC + select HAS_FSL_QBMAN help This option enables support for the FSL CoreNet based boards. For 32bit kernel, the following boards are supported: diff --git a/arch/powerpc/platforms/85xx/corenet_generic.c b/arch/powerpc/platforms/85xx/corenet_generic.c index 63bef30..74faab7 100644 --- a/arch/powerpc/platforms/85xx/corenet_generic.c +++ b/arch/powerpc/platforms/85xx/corenet_generic.c @@ -5,8 +5,8 @@ * * Copyright 2009-2011 Freescale Semiconductor Inc. * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ @@ -197,6 +197,21 @@ static int __init corenet_generic_probe(void) return 0; } +/* Early setup is required for large chunks of contiguous (and coarsely-aligned) + * memory. The following shoe-horns Bman "init_early" calls into the + * platform setup to let them parse their CCSR nodes early on. + */ +#ifdef CONFIG_FSL_BMAN_CONFIG +void __init bman_init_early(void); +#endif + +__init void corenet_ds_init_early(void) +{ +#ifdef CONFIG_FSL_BMAN_CONFIG + bman_init_early(); +#endif +} + define_machine(corenet_generic) { .name = "CoreNet Generic", .probe = corenet_generic_probe, @@ -215,6 +230,7 @@ define_machine(corenet_generic) { #else .power_save = e500_idle, #endif + .init_early = corenet_ds_init_early, }; machine_arch_initcall(corenet_generic, corenet_gen_publish_devices); diff --git a/arch/powerpc/platforms/85xx/p1023_rdb.c b/arch/powerpc/platforms/85xx/p1023_rdb.c index d5b7509..624d3d6 100644 --- a/arch/powerpc/platforms/85xx/p1023_rdb.c +++ b/arch/powerpc/platforms/85xx/p1023_rdb.c @@ -6,8 +6,8 @@ * Description: * P1023 RDB Board Setup * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ @@ -103,7 +103,20 @@ static int __init p1023_rdb_probe(void) unsigned long root = of_get_flat_dt_root(); return of_flat_dt_is_compatible(root, "fsl,P1023RDB"); +} + +/* Early setup is required for large chunks of contiguous (and coarsely-aligned) + * memory. The following shoe-horns Bman "init_early" calls into the + * platform setup to let them parse their CCSR nodes early on. */ +#ifdef CONFIG_FSL_BMAN_CONFIG +void __init bman_init_early(void); +#endif +static __init void p1023_rdb_init_early(void) +{ +#ifdef CONFIG_FSL_BMAN_CONFIG + bman_init_early(); +#endif } define_machine(p1023_rdb) { @@ -117,6 +130,7 @@ define_machine(p1023_rdb) { .progress = udbg_progress, #ifdef CONFIG_PCI .pcibios_fixup_bus = fsl_pcibios_fixup_bus, - .pcibios_fixup_phb = fsl_pcibios_fixup_phb, + .pcibios_fixup_phb = fsl_pcibios_fixup_phb, #endif + .init_early = p1023_rdb_init_early, }; -- 2.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/