summaryrefslogtreecommitdiff
path: root/arch/arm
AgeCommit message (Collapse)AuthorFilesLines
2013-10-20ARM: ep93xx_defconfig: cleanup ep93xx_defconfigH Hartley Sweeten1-14/+2
Generate ep93xx_defconfig by doing: make ep93xx_defconfig make savedefconfig mv defconfig arch/arm/configs/ep93xx_defconfig No function change. This just refreshes the ep93xx_defconfig to make it easier and cleaner when adding new entries. Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Ryan Mallon <rmallon@gmail.com> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Lennert Buytenhek <kernel@wantstofly.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Olof Johansson <olof@lixom.net> Cc: Russell King <linux@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-20Merge 3.12-rc6 into usb-next.Greg Kroah-Hartman20-47/+151
We want those USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-20Merge 3.12-rc6 into staging-next.Greg Kroah-Hartman20-47/+151
We want these fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-19ARM: tlb: ASID macro should give 32bit result for BE correct operationVictor Kamensky1-1/+1
In order for ASID macro to be used as expression passed to inline asm as 'r' operand it needs to give 32 bit unsigned result, not unsigned 64bit expression. Otherwise when 64bit ASID is passed to inline assembler statement as 'r' operand (32bit) compiler behavior is not well specified. For example when __flush_tlb_mm function compiled in big endian case, and ASID is passed to tlb_op macro directly, 0 will be passed as 'mcr 15, 0, r4, cr8, cr3, {2}' argument in r4, unless ASID macro changed to produce 32 bit result. Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: mcpm: fix big endian issue in mcpm startup codeVictor Kamensky1-0/+2
In big endian mode mcpm_entry_point is first function that called on secondaries CPU. First it should switch CPU into big endian code. [ben.dooks@codethink.co.uk: merge fix patch from Victor into this] Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org> Acked-by: Nicolas Pitre <nico@linaro.org> Reviewed-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: signal: sigreturn_codes should be endian neutral to work in BE8Victor Kamensky3-24/+83
In case of BE8 kernel data is in BE order whereas code stays in LE order. Move sigreturn_codes to separate .S file and use proper assembler mnemonics for these code snippets. In this case compiler will take care of proper instructions byteswaps for BE8 case. Change assumes that sufficiently Thumb-capable tools are used to build kernel. Problem was discovered during ltp testing of BE system: all rt_sig* tests failed. Tested against the same tests in both BE and LE modes. Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org> Reviewed-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: atomic64: fix endian-ness in atomic.hVictor Kamensky1-13/+13
Fix inline asm for atomic64_xxx functions in arm atomic.h. Instead of %H operand specifiers code should use %Q for least significant part of the value, and %R for the most significant part of the value. %H always returns the higher of the two register numbers, and therefore it is not endian neutral. %H should be used with ldrexd and strexd instructions. Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: kdgb: use <asm/opcodes.h> for data to be assembled as intructionBen Dooks1-1/+2
The arch_kgdb_breakpoint() function uses an inline assembly directive to assemble a specific instruction using .word. This means the linker will not treat is as an instruction, and therefore incorrectly swap the endian-ness if running BE8. As noted, this code means that kgdb is really only usable on arm32 kernels, and should be made dependant on not being a thumb2 kernel until fixed. However this is not something to be added to this patch. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com>
2013-10-19ARM: Correct BUG() assembly to ensure it is endian-agnosticBen Dooks2-7/+11
Currently BUG() uses .word or .hword to create the necessary illegal instructions. However if we are building BE8 then these get swapped by the linker into different illegal instructions in the text. This means that the BUG() macro does not get trapped properly. Change to using <asm/opcodes.h> to provide the necessary ARM instruction building as we cannot rely on gcc/gas having the `.inst` instructions which where added to try and resolve this issue (reported by Dave Martin <Dave.Martin@arm.com>). Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com>
2013-10-19ARM: net: fix arm instruction endian-ness in bpf_jit_32.cBen Dooks1-1/+5
Use <asm/opcodes.h> to correctly transform instruction byte ordering into in-memory ordering. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com>
2013-10-19ARM: hardware: fix endian-ness in <hardware/coresight.h>Ben Dooks1-4/+4
The <hardware/coresight.h> needs to take into account the endian-ness of the processor when reading and writing data, so change to using the readl/writel relaxed variants from the raw ones. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: set --be8 when linking modulesBen Dooks1-0/+1
To avoid having to make every text section swap the instruction order of all instructions, make sure modules are built also built with --be8 (as is the current kernel final link). If we do not do this, we would end up having to swap all instructions when loading a module, instead of just the instructions that we are applying ELF relocations to. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com>
2013-10-19ARM: module: correctly relocate instructions in BE8Ben Dooks1-23/+34
When in BE8 mode, our instructions are not in the same ordering as the data, so use <asm/opcodes.h> to take this into account. Note, also requires modules to be built --be8 Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com>
2013-10-19ARM: traps: use <asm/opcodes.h> to get correct instruction orderBen Dooks1-6/+10
The trap handler needs to take into account the endian configuration of the system when loading instructions. Use <asm/opcodes.h> to provide the necessary conversion functions. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-10-19ARM: alignment: correctly decode instructions in BE8 mode.Ben Dooks1-2/+7
If we are in BE8 mode, we must deal with the instruction stream being in LE order when data is being loaded in BE order. Ensure the data is swapped before processing to avoid thre following: Change to using <asm/opcodes.h> to provide the necessary conversion functions to change the byte ordering. This stops the following warning messages from the kernel on a fault: Unhandled fault: alignment exception (0x001) at 0xbfa09567 Alignment trap: not handling instruction 030091e8 at [<80333e8c>] Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-10-19ARM: vexpress: add big endian supportBen Dooks2-0/+3
Add support for the versatile express systems to boot big-endian. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: mvebu: support running big-endianBen Dooks3-0/+8
Add indication we can run these cores in BE mode, and ensure that the secondary CPU is set to big-endian mode in the initialisation code as the initial code runs little-endian. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Jason Cooper <jason@lakedaemon.net>
2013-10-19ARM: highbank: enable big-endianBen Dooks1-0/+1
Apart from a xgmac driver issue, the highbank seems to work correctly in big-endian mode. Allow the selection of big-endian in the system. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Acked-by: Rob Herring <rob.herring@calxeda.com>
2013-10-19ARM: smp_scu: data endian fixesBen Dooks1-7/+7
The smp_scu driver needs to use the relaxed readl/write accessors to avoid any issues with the endian mode the processor core is in. Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: twd: data endian fixBen Dooks1-12/+12
Ensure the twd driver uses the correct calls to access the hardware to ensure that we do not end up with data in the wrong endian format. Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: pl01x debug code endian fixBen Dooks1-0/+2
The PL01X debug code needs to take into account which endian mode the processor is running in. If it is big-endian, ensure the data is swapped appropriately. Note, we could do this slightly more efficiently if we have an macro to do the necessary swap for the bits used by test. Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: set BE8 if LE in head codeBen Dooks3-0/+6
If we are booting in LE and compiled for BE8, then add code to set the state to bE8. Since the instruction stream is always LE, we do not need to do anything special to the instruction. Also ensure that the secondary processors are started in the same mode. Note, we do add about 20 bytes to the kernel image, but it seems easier to do this than adding another configuration to change. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-10-19ARM: fixup_pv_table bug when CPU_ENDIAN_BE8Ben Dooks1-0/+8
The fixup_pv_table assumes that the instructions are in the same endian configuration as the data, but when the CPU is running in BE8 the instructions stay in little-endian format. Make sure if CONFIG_CPU_ENDIAN_BE8 is set that we do all the alterations to the instructions taking in to account the LDR/STR will be swapping the data endian-ness. Since the code is only modifying a byte, we avoid dual-swapping the data, and just change the bits we clear and ORR in (in the case where the code is not thumb2). For thumb2, we add the necessary rev16 instructions to ensure that the instructions are processed in the correct format, as it was easier than re-writing the code to contain a mask and shift. Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk> Reviewed-by: Dave Martin <Dave.Martin@arm.com> Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2013-10-19ARM: asm: Add ARM_BE8() assembly helperBen Dooks7-21/+16
Add ARM_BE8() helper to wrap any code conditional on being compile when CONFIG_ARM_ENDIAN_BE8 is selected and convert existing places where this is to use it. Acked-by: Nicolas Pitre <nico@linaro.org> Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: fix ARCH_IXP4xx usage of ARCH_SUPPORTS_BIG_ENDIANBen Dooks3-4/+7
The Kconfig for arch/arm/mach-ixp4xx has a local definition of ARCH_SUPPORTS_BIG_ENDIAN which could be used elsewhere. This means that if IXP4xx is selected and this symbol is selected eleswhere then an warning is produced. Clean the following error up by making the symbol be selected by the main ARCH_IXP4XX definition and have a common definition in arch/arm/mm/Kconfig warning: (ARCH_xxx) selects ARCH_SUPPORTS_BIG_ENDIAN which has unmet direct dependencies (ARCH_IXP4XX) warning: (ARCH_xxx) selects ARCH_SUPPORTS_BIG_ENDIAN which has unmet direct dependencies (ARCH_IXP4XX) Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
2013-10-19ARM: OMAP3: control: add API for setting IVA bootmodeTero Kristo3-2/+13
OMAP3 PM core requires IVA2 bootmode to be set to idle during init. Currently, a direct register write is used for this. Add a new ctrl API for this purpose instead. Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
2013-10-19ARM: OMAP3: CM/control: move CM scratchpad save to CM driverTero Kristo3-39/+27
OMAP3 PM code for off-mode currently saves the scratchpad contents for CM registers within OMAP control module driver. However, as we are separating CM code into its own driver, this must be moved also. This patch adds a new API for saving the CM scratchpad contents and uses this from the high level scratchpad save function. Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
2013-10-19ARM: OMAP3: McBSP: do not access CM register directlyTero Kristo1-8/+8
McBSP driver require special hacks to enable/disable the autoidle feature for its interface clock for the proper function of the sidetone hardware. Currently the driver just writes CM registers directly, which should be avoided. Thus, changed the driver to use the new deny/allow_autoidle clock API calls. Signed-off-by: Tero Kristo <t-kristo@ti.com> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
2013-10-19ARM: OMAP3: clock: add API to enable/disable autoidle for a single clockTero Kristo2-0/+40
Some drivers require direct access to the autoidle functionality of the interface clocks. Added clock APIs for these, so that the drivers do not need to access CM registers directly. Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
2013-10-19ARM: OMAP2: CM/PM: remove direct register accesses outside CM codeTero Kristo6-49/+89
Users of the CM funtionality should not access the CM registers directly by themselves. Thus, added new CM driver APIs for the OMAP2 specific functionalities which support the existing direct register accesses, and changed the platform code to use these. This is done in preparation for moving the CM code into its own individual driver. Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Paul Walmsley <paul@pwsan.com>
2013-10-19ARM: tegra: Add Tegra114 powergate supportThierry Reding1-1/+42
Extend the list of power gates found on Tegra114. Note that there are now holes in the list, so perhaps a simple array is no longer the best data structure to represent it. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: Constify list of CPU domainsThierry Reding1-2/+3
There's no need to modify these at runtime, it is static data and never needs to change. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: Remove duplicate powergate definesThierry Reding1-6/+1
Instead of duplicating powergate defines, reuse the ones from the include/linux/tegra-powergate.h header file. Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: add LP1 support code for Tegra124Joseph Lo5-8/+43
The LP1 suspend procedure is the same with Tegra30 and Tegra114. Just need to update the difference of the register address, then we can continue to share the code. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: re-calculate the LP1 data for Tegra30/114Joseph Lo1-7/+9
This patch re-calculates the LP1 data of tegra30/114_sdram_pad_address to base on its label not rely on others. This can make easier to maintain if some other Tegra chips keep re-using these codes in the future. And change the name of tegra30_sdram_pad_save to tegra_sdram_pad_save to make it more common to other chips. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: enable CPU idle for Tegra124Joseph Lo2-1/+6
The CPUIdle function of Tegra124 is identical to Tegra114, so we share the same driver with Tegra114. Cc: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: make tegra_resume can work with current and later chipsJoseph Lo1-8/+5
Because the CPU0 was the first up and the last down core when cluster power up/down or platform suspend. So only CPU0 needs the rest of the functions to reset flow controller and re-enable SCU and L2. We also move the L2 init function for Cortex-A15 to there. The secondery CPU can just call cpu_resume. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: CPU hotplug support for Tegra124Joseph Lo2-0/+3
The procedure of CPU hotplug for Tegra124 is same with Tegra114. We re-use the same function with it. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: add PMC compatible value for Tegra124Joseph Lo1-0/+1
The PMC HW is not identical to the existing Tegra SoC. Hence add to it. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: add Tegra124 SoC supportJoseph Lo4-0/+12
Add Tegra124 SoC support that base on CortexA15MP Core. And enable the SMP function that can re-use the same procedure with Tegra114. Signed-off-by: Joseph Lo <josephl@nvidia.com> Signed-off-by: Stephen Warren <swarren@nvidia.com>
2013-10-19ARM: tegra: add fuses as device randomnessStephen Warren1-0/+54
Various fuses on Tegra include information that's unique to an individual chip, or a subset of chips. Call add_device_randomness() with this data to perturb the initial state of the random pool. Suggested-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Stephen Warren <swarren@nvidia.com> Acked-by: Linus Walleij <linus.walleij@linaro.org>
2013-10-18Merge tag 'omap-for-v3.13/board-removal-signed-take2' of ↵Kevin Hilman35-2749/+845
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt From Tony Lindgren: Changes needed to drop legacy booting support for some omap3 boards. Note that that these are based on a merge of the following for the dependencies: - v3.12-rc5 for fixes to pinctrl mask - omap-for-v3.13/dt-signed to avoid pointless merge conflicts - omap-for-v3.13/quirk-signed for legacy pdata handling * tag 'omap-for-v3.13/board-removal-signed-take2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (125 commits) ARM: OMAP2+: remove legacy support for IGEP boards ARM: OMAP2+: Remove legacy support for zoom platforms ARM: OMAP2+: Remove legacy booting support for omap3 EVM ARM: OMAP2: delete board-rm680 ARM: dts: add minimal DT support for Nokia N950 & N9 phones ARM: dts: Add basic support for zoom3 ARM: dts: Add basic support for TMDSEVM3730 (Mistral AM/DM37x EVM) ARM: dts: Add common support for omap3-evm ARM: dts: Shared file for omap GPMC connected smsc911x +Linux 3.12-rc5 Signed-off-by: Kevin Hilman <khilman@linaro.org>
2013-10-18Merge branch 'for-rmk/arm-mm-lpae' of ↵Russell King8-30/+206
git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into devel-stable This series extends the existing ARM v2p runtime patching for 64 bit. Needed for LPAE machines which have physical memory beyond 4GB.
2013-10-18ARM: OMAP1: Fix a bunch of GPIO related section warnings after initdata got ↵Tony Lindgren3-28/+28
corrected Commit f8e7ba66 (ARM: OMAP1: fix incorrect placement of __initdata tag) fixed things but we started seeing section warnings. Looks like I missed those in my automatic build scripts: Section mismatch in reference from the variable omap7xx_gpio6 to the (unknown reference) .init.data:(unknown) Section mismatch in reference from the variable omap7xx_gpio6 to the (unknown reference) .init.data:(unknown) Section mismatch in reference from the variable omap7xx_gpio5 to the (unknown reference) .init.data:(unknown) ... Fix the issue by removing __initdata for the resources. Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Kevin Hilman <khilman@linaro.org>
2013-10-18ARM: OMAP2+: remove legacy support for IGEP boardsJavier Martinez Canillas3-697/+0
Device Tree support for IGEP boards in mainline is almost finished. The only remaining bits are support for the Marvell SD8686 wifi + BT and TFP410 DVI chips. Adding support for these should be straightforward so let's not block OMAP3 moving to Device Tree only boot and remove the board file for IGEP boards. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-10-18ARM: OMAP2+: Remove legacy support for zoom platformsTony Lindgren9-995/+1
We now have pretty decent device tree based support for zoom platforms. It's not complete, but basics work for me so adding more features should be quite trivial. Looks like also 3630 sdp is zoom based, and looking at it's board file should also be trivial to support with the device tree based booting. Patches are welcome if people are still using these. Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-10-18ARM: OMAP2+: Remove legacy booting support for omap3 EVMTony Lindgren3-763/+0
We now have pretty decent support with the device tree based booting. Patches to add more features are welcome. Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-10-18ARM: OMAP2: delete board-rm680Aaro Koskinen3-175/+0
Delete board file for Nokia RM-680/RM-696 (N950/N9). DT-based booting should be used for further development on this HW. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-10-18ARM: dts: add minimal DT support for Nokia N950 & N9 phonesAaro Koskinen4-0/+212
Add minimal DT support for Nokia N950 & N9 phones. The same functionality that is provided by the current board file should work: serial console, USB, OneNAND and MMC. Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi> Signed-off-by: Tony Lindgren <tony@atomide.com>
2013-10-18ARM: dts: Add basic support for zoom3Tony Lindgren3-0/+251
I've tested serial, MMC, smsc911x and wl12xx on zoom3. As my omap is an early ES revision, I have not been able to test off-idle on this one. But anyways, I'd say we have enough device tree support for the zoom to be able to drop the board-zoom files. Patches are welcome to add further features to this .dts file. Signed-off-by: Tony Lindgren <tony@atomide.com>