Commit Graph

377545 Commits

Author SHA1 Message Date
Jon Medhurst
6c75e2cc08 Merge branch 'tracking-armlt-tc2-dt' into lsk-3.10-vexpress 2013-07-17 12:01:44 +01:00
Jon Medhurst
38b7fa2a7c Merge branch 'tracking-armlt-misc-fixes' into lsk-3.10-vexpress 2013-07-17 12:01:43 +01:00
Jon Medhurst
5af2ca472c Merge branch 'tracking-armlt-clcd' into lsk-3.10-vexpress 2013-07-17 12:01:43 +01:00
Jon Medhurst
1d7123299d Merge branch 'tracking-armlt-hdlcd' into lsk-3.10-vexpress 2013-07-17 12:01:42 +01:00
Jon Medhurst
042c5cb741 Merge branch 'tracking-armlt-ve-updates' into lsk-3.10-vexpress 2013-07-17 12:01:37 +01:00
Jon Medhurst
7a6cc8ab22 Merge branch 'tracking-armlt-rtsm' into lsk-3.10-vexpress 2013-07-17 12:01:37 +01:00
Jon Medhurst
50f1a7c407 Merge branch 'tracking-armlt-config' into lsk-3.10-vexpress 2013-07-17 12:01:36 +01:00
Vincent Guittot
17b821ed0e ARM: bL boot on A7 cluster
Ensure that A7 cluster will be mapped on CPU0-2

Suggested-by: Chris Redpath <Chris.Redpath@arm.com>
Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
2013-07-01 11:04:44 +01:00
Sudeep KarkadaNagesha
40bb83f11c ARM: vexpress: update TC2 dts to support multiple PMUs
This patch adds support for both A15 and A7 PMUs on vexpress TC2

Signed-off-by: Sudeep KarkadaNagesha <sudeep.karkadanagesha@arm.com>
2013-07-01 11:04:44 +01:00
Jon Medhurst
8f15973ef8 ARM: vexpress: Add CPU clock-frequencies to TC2 device-tree
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:44 +01:00
Jon Medhurst
fa945c17bf ARM: vexpress: Update TC2 memory to 2GB
All TC2 boards 'in the wild' will have 2GB of memory, so lets make it
all available.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:44 +01:00
Liviu Dudau
25a62f4a64 ARM: vexpress: Add proper DT support for the dual cluster V2P-CA15_CA7 CoreTile
Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:43 +01:00
Mark Rutland
bba0859a99 arm: versatile: don't mark pen as __INIT
When booting fewer cores than are physically present on a versatile
platform (e.g. when passing maxcpus=N on the command line), some
secondary cores may remain in the holding pen, which is marked __INIT.
Late in the boot process, the memory comprising the holding pen will be
released to the kernel for more general use, and may be overwritten with
arbitrary data, which can cause the held secondaries to start behaving
unpredictably. This can lead to all manner of odd behaviour from the
kernel.

Instead don't mark the section as __INIT. This means we can't reuse the
pen memory, but we won't get secondaries corrupting the rest of the
kernel.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2013-07-01 11:04:36 +01:00
Mathieu J. Poirier
49428cc5c3 timer: Avoid masking EVENTEN bit in CNTKCTL register
Will Deacon has a better solution and his patch should
be coming in soon.  In the mean time please consider for inclusion.

This is an in-between solution that prevents the EVENTEN bit in
the CNTKCTL register from being mask, resulting in events between
clusters being lost.

Bug: LP1188778

Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Sudeep KarkadaNagesha <Sudeep.KarkadaNagesha@arm.com>
2013-07-01 11:04:36 +01:00
Jon Medhurst
f0e32abb74 ARM: vexpress: Select CONFIG_ARM_ERRATA_643719
The CA9X4 CoreTile suffers from this errata and as a consequence has
reboot and shutdown crashes since the cpu hotplug changes introduced in
Linux 3.10. (Commit bca7a5a049 "ARM: cpu hotplug: remove majority of
cache flushing from platforms")

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:36 +01:00
Catalin Marinas
f8b1ed7161 net: smc91x: Do not cast pointer to int
The patch removes a compiler warning when casting the ioaddr pointer to
(unsigned int) in the smc_probe() function of the smc91x.c driver. The
casting is now done to (unsigned long).

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:35 +01:00
Catalin Marinas
8570503862 ARM: LPAE: Invalidate the TLB for module addresses during translation fault
During the free_pgtables() call all user and modules/pkmap entries are
removed. If a translation fault for the modules/pkmap area occurs before
we switched away from the current pgd, do_translation_fault() would copy
the init_mm pud into the user pud.

There is a small window between pud_clear() and pmd_free_tlb() in
free_pmd_range() where the pud entry was cleared but the TLB has not
been invalidated yet and the CPU may have cached the original (valid)
pud entry in the TLB. A scenario like below would get stuck in
continuous prefetch abort:

1. Current process exiting. The modules pmd entries not populated
2. exit_mmap() -> ... -> pmd_free_tlb()
3. pud_clear() for the 1GB pud containing user stack and modules (no TLB
   invalidation yet)
4. Interrupt -> module interrupt routine
5. Level 2 (pmd) translation fault occurs when executing the module
   interrupt routine. The CPU previously cached (TLB) the old valid pud
   value for the modules area, so we don't get a level 1 translation
   fault
6. do_translation fault() copies the pud_k into the pud
7. Linux returns to the faulty instruction. Goes back to 5

At point 7, since the CPU still has the old pud value, it goes back to
point 5 and never gets out of this loop. With this patch, the stale pud
TLB entry is invalidated after point 6 and the subsequent prefetch abort
doesn't occur.

Reported-by: Tony Thompson <Anthony.Thompson@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:35 +01:00
Ryan Harkin
c0ac923b5e ARM: vexpress: configure CLCD driver device tree support for A9 CoreTile
Configuration for the amba-clcd PL111 driver is added to the A9 CoreTile's DTS
file.

Configuration of the motherboard CLCD driver is disabled in the DTSI files to
prevent duplicate CLCD drivers being registered.

A generic set of CLCD panel descriptions has been split into its own DTSI file.
Currently, only XVGA and VGA monitors are described.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:31 +01:00
Will Deacon
50ad0eb192 amba-clcd: separate ioremap framebuffer from DMA implementation
The amba-clcd device can be configured to use either DMA or, when this
feature is not available, an ioremapped frambuffer in static ram.

In the case of the latter, we must take care not to pass ioremapped
addresses to dma_common_mmap, since this expects only addresses from
dma_mmap_coherent, which reside in the kernel linear mapping.

This patch reworks the fb initialisation code so that either DMA or IO
implementations of the mmap/remove functions are chosen as appropriate.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:31 +01:00
Catalin Marinas
8df3102afa amba-clcd: Only use dma_alloc_writecombine() if the arch supports it
This patch hides the dma_(alloc|free)_writecombine() calls behind macros
to allow the amba-clcd.c to be used on architectures that do not provide
this DMA API. With this patch, the *_writecombine() API is only used on
ARM (AArch32).

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:31 +01:00
Jon Medhurst
95c8041c50 amba-clcd: Remove check for 'reg' value in clcdfb_probe
This check was attempting to ensure only one clcd device in the
device-tree was probed, however the check fails in the valid case where
the device is a child of another device and the 'reg' value is a offset
from the start of that other device, not an absolute address. This
occurs on vexpress with the motherboard clcd being a child of iofga.

For now, we will just have to rely on there only being one display
device specified in device-tree.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:30 +01:00
Jon Medhurst
778a02466d amba-clcd: Add Device Tree support to amba-clcd driver
Add support to parse the display configuration from device tree.

If the board does not provide platform specific functions in the struct
clcd_board contained with the amba device info, then defaults are provided
by the driver.

The device tree configuration can either ask for a DMA setup or provide a
framebuffer address to be remapped into the driver.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
2013-07-01 11:04:30 +01:00
Jon Medhurst
83bce1182d ARM HDLCD: Fix clock initialisation sequence
This reworks HDLCD initialisation to mirror how CLCD does this, in
particular to prepare the clock immediately after it has been got which
ensures that we don't try and enable clocks before they were prepared,
e.g. in the former clk_enable after register_framebuffer().

The reason this issue wasn't noticed before is that we have been
setting CONFIG_FRAMEBUFFER_CONSOLE and this caused
register_framebuffer() to trigger the creation of a console which calls
hdlcd_set_par(), which in turn was preparing and enabling the clock.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:26 +01:00
Jon Medhurst
0e2f185700 ARM: vexpress: Update TC2 device tree for HDLCD hack
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:26 +01:00
Jon Medhurst
6b614fae0e ARM: vexpress: Add support for HDLCD
This is a temporary solution to get everything running.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:26 +01:00
Jon Medhurst
e9a113ad8f ARM HDLCD: Fix compilation on Linux 3.9
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:26 +01:00
Jon Medhurst
ac1b17efc7 ARM HDLCD: Changes to get HDLCD working with 've-updates'
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:26 +01:00
Jon Medhurst
e361c22545 ARM HDLCD: Enable HDLCD_NO_VIRTUAL_SCREEN on Android
This is a hack which prevents annoying screen flicker in the Android UI.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:25 +01:00
Chris Redpath
9f14266f6f ARM HDLCD: Add developer option to remove double-height framebuffers
This option can be used with Android to push the graphics subsystem into a
different composition strategy which is more effective when used on hardware
where the framebuffer memory is not cacheable.

Signed-off-by: Chris Redpath <chris.redpath@arm.com>
2013-07-01 11:04:25 +01:00
Chris Redpath
5705f5f9c6 ARM HDLCD: Review comments from Liviu - extraneous memcpy
Signed-off-by: Chris Redpath <chris.redpath@arm.com>
Reviewed-By: Liviu Dudau <liviu.dudau@arm.com>
2013-07-01 11:04:25 +01:00
Chris Redpath
7195cb1444 ARM HDLCD: Add useful functions to HDLCD driver for system integration
During TC2 integration a bad config option resulted in HDLCD memory reads
not being serviced often enough. This lead to unsightly screen blanking.

These options allow the developer to count the number of underruns and
to control the color used by HDLCD when an underrun prevents accessing
pixel data. The combination of these two options allow easy diagnosis
of HDLCD underrun conditions.

Signed-off-by: Chris Redpath <chris.redpath@arm.com>
2013-07-01 11:04:25 +01:00
Chris Redpath
585617333b ARM HDLCD: Change default byte ordering to match Android assumption
Change color byte location in 32-bit word from argb to abgr to match
the assumption made in Android when 32-bit color displays are used.

Signed-off-by: Chris Redpath <chris.redpath@arm.com>
2013-07-01 11:04:25 +01:00
Dietmar Eggemann
f03c663576 ARM HDLCD: Get it working under Android.
Add a shortcut when set_par is called to only change the yoffset. Android is
doing that instead of calling pan_display to flip the framebuffer.

Signed-off-by: Chris Redpath <chris.redpath@arm.com>
2013-07-01 11:04:24 +01:00
Jon Medhurst
51f1911828 ARM HDLCD: Fixup driver to resemble ARM's latest codebase.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:24 +01:00
Jon Medhurst
7c7d3b31d5 ARM HDLCD: Add missing clk_{un}prepare calls
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:24 +01:00
Liviu Dudau
caf003fa1d ARM HDLCD: Add support for ARM High Definition LCD.
The ARM HDLCD device is now found in various new Versatile Express coretiles.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
2013-07-01 11:04:24 +01:00
Pawel Moll
abe8e2fe9e mfd: vexpress: Make the driver optional for arm and arm64
The driver can be used on either arm or arm64 platforms, but
the latter doesn't have any platform-specific configuration
options, so it must be possible to manually enable the driver.

As the gpiolib is optional for arm64 arch, the gpio/led code
must be compiled conditionally.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:20 +01:00
Pawel Moll
981794e2f2 power/reset: Make the vexpress driver optional on arm and arm64
The driver can be used on either arm or arm64 platforms, but
the latter doesn't have any platform-specific configuration
options, so it must be possible to manually enable the driver.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:20 +01:00
Pawel Moll
503552ea01 clk: vexpress: Make the clock drivers directly available for arm64
The new arm64 architecture has no idea of platform or machine, so
it doesn't have to define ARCH_VEXPRESS configuration option at
all. To allow user to select the drivers at all, make it depend
on ARM64 as well.

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
2013-07-01 11:04:20 +01:00
Pawel Moll
5f97d66c4a clk: vexpress: Use full node name to identify individual clocks
Previously all the clocks were reported as "osc". Now it will be
something like "/dcc/osc@0".

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
2013-07-01 11:04:19 +01:00
Jon Medhurst
c3e43a142a video: Make vexpress DVI driver depend on CONFIG_FB
The driver uses symbols from fbmem.c so if CONFIG_FB is not
selected we get build errors like:

drivers/built-in.o: In function `vexpress_dvi_fb_select':
 :(.text+0x1b6c): undefined reference to `lock_fb_info'
 :(.text+0x1ba0): undefined reference to `registered_fb'

Note, this is only a partial solution because we still have a
problem if CONFIG_FB is selected as a module.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:19 +01:00
Pawel Moll
d73a32d90f video: Versatile Express DVI output driver
Versatile Express' DVI video output can be connected to one the three
sources - motherboard's CLCD controller or a video signal generated
by one of the daughterboards.

This driver configures the muxer FPGA so the output displays content
of one of the framebuffers in the system (0 by default, can be changed
by user writing to the "fb" sysfs attribute of the muxfpga device).

It will also set up the display formatter mode and keep it up
to date with mode changes requested by the user (eg. with fbset
tool).

Signed-off-by: Pawel Moll <pawel.moll@arm.com>
2013-07-01 11:04:19 +01:00
Jon Medhurst
d2cab175b7 rtsm: fixup for new CCI driver
We include the compatible string "arm,cci" because the semihosting
bootwrapper searches for this to initialise the CCI before boot.

The boot-wrapper will need updating for the new CCI device-tree
bindings when they are stable, then we can remove this old compatible
string from the RTSM device-trees.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:15 +01:00
Nicolas Pitre
e63a47a858 ARM: rtsm_ve-v2p-ca15x?-ca7x?.dts: update dcscb compatible string
... to match the version that was approved during upstream review.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
2013-07-01 11:04:15 +01:00
Nicolas Pitre
76546a4560 ARM: RTSM: add DCSCB address definition to ca15x*-ca7x* .dts files 2013-07-01 11:04:14 +01:00
Jon Medhurst
2791e6ee27 ARM: dts: Update RTSM dtbs for CLCD changes
Signed-off-by: Jon Medhurst <tixy@linaro.org>

Conflicts:
	arch/arm/boot/dts/rtsm_ve-motherboard.dtsi
2013-07-01 11:04:14 +01:00
Jon Medhurst
cec7118232 ARM: dts: Changes to get RTSM working with Linux 3.8
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:14 +01:00
Jon Medhurst
ecc1f5b6c9 ARM: dts: Add RTSM dtb's to Makefile.boot
So they are built by 'make dtbs' and so will appear in Linaro's
Ubuntu kernel package.

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:14 +01:00
Jon Medhurst
d0d4f95d6f ARM: dts: Add device trees for RTSM
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2013-07-01 11:04:14 +01:00
Liviu Dudau
d9f00d1927 ARM: VExpress: PSCI: Compile PSCI code by default
Compile support for PSCI by default and let the command line decide
whether support for SMC calls gets enabled or not.

Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com>
2013-07-01 11:04:10 +01:00