aboutsummaryrefslogtreecommitdiff
path: root/arch/arm
AgeCommit message (Collapse)Author
2013-01-17CONFIG: ARNDALE: Enable IPV6Tushar Behera
Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
2013-01-17fixup: ARM: syscall: wire up sys_migrate_pages.Tushar Behera
Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
2013-01-17Linaro HW pack related patchRony Nandy
Signed-off-by: Rony Nandy <rony.nandy@linaro.org> Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
2013-01-17Enabled bus Freq OppRony Nandy
2013-01-17ARM: EXYNOS: Add Busfreq support on Arndalerudrajit
Not to be sent for upstreaming. Signed-off-by: rudrajit <rudra@ubuntu.(none)>
2013-01-17Enabled SATA,NUMA and Huge support in arndale defconfigVasanth Ananthan
2013-01-17DRIVERS: ATA: SATA controller driverVasanth Ananthan
This patch adds a platform driver for SATA controller. Signed-off-by: Vasanth Ananthan <vasanth.a@samsung.com>
2013-01-17ARM: EXYNOS5: DT Support for SATA and SATA PHYVasanth Ananthan
This patch adds Device Nodes for SATA and SATA PHY device. Signed-off-by: Vasanth Ananthan <vasanth.a@samsung.com>
2013-01-17Temp commit for arndale dts fileAmit Daniel Kachhap
2013-01-17config: Add config for thermal, regulator and DVFS enablementAmit Daniel Kachhap
Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
2013-01-17ARM: exynos5: Add devicetree node for TMU driverAmit Daniel Kachhap
This patch adds necessary source definations needed for TMU driver and adds devicetree for exynos5250. Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
2013-01-17exynos:exynos5: Change I2C interrupt to low speed modeAmit Daniel Kachhap
By default the I2C controllers(0,1,2,3) are configured as high speed so resetting them to low speed during bootup. As and when needed they can reconfigured again to speed. Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
2013-01-17ARM: dts: add max8997 device node for exynos4210-origen boardThomas Abraham
Add max8997 regulator device node for exynos4210-origen board and list all the supported regulators. Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
2013-01-17ARM: EXYNOS: Fixed compiler ErrorVasanth Ananthan
Signed-off-by: Vasanth Ananthan <vasanthananthan@gmail.com>
2013-01-17mach: exynos: Add dts file for Arndale based on exynos5250Girish K S
Arndale is a low cost board based on the samsung exynos5250. This patch adds dt support for the on board devices of arndale Signed-off-by: Girish K S <ks.giri@samsung.com> Conflicts: arch/arm/mach-exynos/Makefile.boot
2013-01-17ARM: EXYNOS: Enabling PERF supportVasanth Ananthan
This patch adds support to use perf Signed-off-by: Vasanth Ananthan <vasanth.a@samsung.com>
2013-01-16ARM: syscall: wire up sys_migrate_pages.Steve Capper
For NUMA support, the sys_migrate_pages syscall is required by userspace. This patch allocates #379 for this syscall and plumbs it in. Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16RM: mm: Add NUMA support.Steve Capper
This patch adds support for NUMA (running on either discontiguous and sparse memory). At the moment, the number of nodes has to be specified on the commandline. One can also, optionally, specify the memory size of each node. (Otherwise the memory range is split roughly equally between nodes). CPUs can be striped across nodes (cpu number modulo the number of nodes), or assigned to a node based on their topology_physical_package_id. So for instance on a TC2, the A7 cores can be grouped together in one node and the A15s grouped together in another node. Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: Add discontiguous memory support.Steve Capper
This patch adds support for discontiguous memory, with a view to each discontiguous block being assigned to a NUMA node (in a future patch). Discontiguous memory should only be used to back NUMA on systems where sparse memory is not available. Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: Consider memblocks in mem_init and show_mem.Steve Capper
This is based on Michael Spang's patch [1]; and is my attempt at applying the feedback from Russell [2]. With discontiguous memory (a requirement for running NUMA on some systems), membanks may not necessarily be representable as contiguous blocks of struct page *s. This patch updates the page scanning code in mem_init and show_mem to consider pages in the intersection of membanks and memblocks instead. We can't consider memblocks solely as under sparse memory configurations, contiguous physical membanks won't necessarily have a contiguous memory map (but may be merged into the same memblock). Only memory blocks in the "memory" region were considered as the "reserved" region was found to always overlap "memory"; all the memory banks are added with memblock_add (which adds to "memory") and no instances were found where memory was added to "reserved" then removed from "memory". In mem_init we are running on one CPU, and I can't see the memblocks changing whilst being enumerated. In show_mem, we can be running on multiple CPUs; whilst the memblock manipulation functions are annotated as __init, this doesn't stop memblocks being manipulated during bootup. I can't see any place where memblocks are removed or merged other than driver initialisation (memblock_steal) or boot memory initialisation. One consequence of using memblocks in show_mem, is that we are unable to define ARCH_DISCARD_MEMBLOCK. Any feedback would be welcome. [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2012-October/127104.html [2] http://lists.infradead.org/pipermail/linux-arm-kernel/2012-November/135455.html Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: Transparent huge page support for non-LPAE systems.Steve Capper
Much of the required code for THP has been implemented in the earlier non-LPAE HugeTLB patch. One more domain bits is used (to store whether or not the THP is splitting). Some THP helper functions are defined; and we have to re-define pmd_page such that it distinguishes between page tables and sections. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: Transparent huge page support for LPAE systems.Catalin Marinas
The patch adds support for THP (transparent huge pages) to LPAE systems. When this feature is enabled, the kernel tries to map anonymous pages as 2MB sections where possible. Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> [steve.capper@arm.com: symbolic constants used, value of PMD_SECT_SPLITTING adjusted, tlbflush.h included in pgtable.h] Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: HugeTLB support for non-LPAE systems.Steve Capper
Based on Bill Carson's HugeTLB patch, with the big difference being in the way PTEs are passed back to the memory manager. Rather than store a "Linux Huge PTE" separately; we make one up on the fly in huge_ptep_get. Also rather than consider 16M supersections, we focus solely on 2x1M sections. To construct a huge PTE on the fly we need additional information (such as the accessed flag and dirty bit) which we choose to store in the domain bits of the short section descriptor. In order to use these domain bits for storage, we need to make ourselves a client for all 16 domains and this is done in head.S. Storing extra information in the domain bits also makes it a lot easier to implement Transparent Huge Pages, and some of the code in pgtable-2level.h is arranged to facilitate THP support in a later patch. Non-LPAE HugeTLB pages are incompatible with the huge page migration code (enabled when CONFIG_MEMORY_FAILURE is selected) as that code dereferences PTEs directly, rather than calling huge_ptep_get and set_huge_pte_at. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: HugeTLB support for LPAE systems.Catalin Marinas
This patch adds support for hugetlbfs based on the x86 implementation. It allows mapping of 2MB sections (see Documentation/vm/hugetlbpage.txt for usage). The 64K pages configuration is not supported (section size is 512MB in this case). Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> [steve.capper@arm.com: symbolic constants replace numbers in places. Split up into multiple files, to simplify future non-LPAE support]. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: Add support for flushing HugeTLB pages.Steve Capper
On ARM we use the __flush_dcache_page function to flush the dcache of pages when needed; usually when the PG_dcache_clean bit is unset and we are setting a PTE. A HugeTLB page is represented as a compound page consisting of an array of pages. Thus to flush the dcache of a HugeTLB page, one must flush more than a single page. This patch modifies __flush_dcache_page such that all constituent pages of a HugeTLB page are flushed. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: mm: correct pte_same behaviour for LPAE.Steve Capper
For 3 levels of paging the PTE_EXT_NG bit will be set for user address ptes that are written to a page table but not for ptes created with mk_pte. This can cause some comparison tests made by pte_same to fail spuriously and lead to other problems. To correct this behaviour, we mask off PTE_EXT_NG for any pte that is present before running the comparison. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Steve Capper <steve.capper@arm.com>
2013-01-16ARM: exynos: update coherent dma maskSubash Patel
This patch updates the coherent_dma_mask for dev-ohci Signed-off-by: Subash Patel <subash.rp@samsung.com>
2013-01-16ARM: exynos: update dma_bit_mask to 64-bitsSubash Patel
This patch changes the dma_mask and coherent_dma_mask to 64-bit mask value for dev-ahci Signed-off-by: Subash Patel <subash.rp@samsung.com>
2013-01-16ARM: LPAE: accomodate >32-bit addresses for page table baseSubash Patel
This patch redefines the early boot time use of the R4 register to steal a few low order bits (ARCH_PGD_SHIFT bits) on LPAE systems. This allows for up to 38-bit physical addresses. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Hand-edited as this patch in eml format doesnt apply due to missing blob data for arch/arm/include/asm/memory.h Signed-off-by: Subash Patel <subash.rp@samsung.com>
2013-01-16ARM: mm: clean up membank size limit checksCyril Chemparathy
This patch cleans up the highmem sanity check code by simplifying the range checks with a pre-calculated size_limit. This patch should otherwise have no functional impact on behavior. This patch also removes a redundant (bank->start < vmalloc_limit) check, since this is already covered by the !highmem condition. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
2013-01-16ARM: mm: cleanup checks for membank overlap with vmalloc areaCyril Chemparathy
On Keystone platforms, physical memory is entirely outside the 32-bit addressible range. Therefore, the (bank->start > ULONG_MAX) check below marks the entire system memory as highmem, and this causes unpleasentness all over. This patch eliminates the extra bank start check (against ULONG_MAX) by checking bank->start against the physical address corresponding to vmalloc_min instead. In the process, this patch also cleans up parts of the highmem sanity check code by removing what has now become a redundant check for banks that entirely overlap with the vmalloc range. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Acked-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: mm: use physical addresses in highmem sanity checksCyril Chemparathy
This patch modifies the highmem sanity checking code to use physical addresses instead. This change eliminates the wrap-around problems associated with the original virtual address based checks, and this simplifies the code a bit. The one constraint imposed here is that low physical memory must be mapped in a monotonically increasing fashion if there are multiple banks of memory, i.e., x < y must => pa(x) < pa(y). Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Acked-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: LPAE: factor out T1SZ and TTBR1 computationsCyril Chemparathy
This patch moves the TTBR1 offset calculation and the T1SZ calculation out of the TTB setup assembly code. This should not affect functionality in any way, but improves code readability as well as readability of subsequent patches in this series. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Acked-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: LPAE: define ARCH_LOW_ADDRESS_LIMIT for bootmemCyril Chemparathy
This patch adds an architecture defined override for ARCH_LOW_ADDRESS_LIMIT. On PAE systems, the absence of this override causes bootmem to incorrectly limit itself to 32-bit addressable physical memory. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
2013-01-16ARM: LPAE: use 64-bit accessors for TTBR registersCyril Chemparathy
This patch adds TTBR accessor macros, and modifies cpu_get_pgd() and the LPAE version of cpu_set_reserved_ttbr0() to use these instead. In the process, we also fix these functions to correctly handle cases where the physical address lies beyond the 4G limit of 32-bit addressing. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Acked-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: LPAE: use phys_addr_t in switch_mm()Cyril Chemparathy
This patch modifies the switch_mm() processor functions to use phys_addr_t. On LPAE systems, we now honor the upper 32-bits of the physical address that is being passed in, and program these into TTBR as expected. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
2013-01-16ARM: LPAE: use phys_addr_t for initrd location and sizeVitaly Andrianov
This patch fixes the initrd setup code to use phys_addr_t instead of assuming 32-bit addressing. Without this we cannot boot on systems where initrd is located above the 4G physical address limit. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Cyril Chemparathy <cyril@ti.com> Acked-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: LPAE: use phys_addr_t in free_memmap()Vitaly Andrianov
The free_memmap() was mistakenly using unsigned long type to represent physical addresses. This breaks on PAE systems where memory could be placed above the 32-bit addressible limit. This patch fixes this function to properly use phys_addr_t instead. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Cyril Chemparathy <cyril@ti.com> Acked-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: LPAE: use signed arithmetic for mask definitionsCyril Chemparathy
This patch applies to PAGE_MASK, PMD_MASK, and PGDIR_MASK, where forcing unsigned long math truncates the mask at the 32-bits. This clearly does bad things on PAE systems. This patch fixes this problem by defining these masks as signed quantities. We then rely on sign extension to do the right thing. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Reviewed-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: LPAE: support 64-bit virt_to_phys patchingCyril Chemparathy
This patch adds support for 64-bit physical addresses in virt_to_phys() patching. This does not do real 64-bit add/sub, but instead patches in the upper 32-bits of the phys_offset directly into the output of virt_to_phys. There is no corresponding change on the phys_to_virt() side, because computations on the upper 32-bits would be discarded anyway. Signed-off-by: Cyril Chemparathy <cyril@ti.com>
2013-01-16ARM: LPAE: use phys_addr_t on virt <--> phys conversionCyril Chemparathy
This patch fixes up the types used when converting back and forth between physical and virtual addresses. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Cyril Chemparathy <cyril@ti.com> Reviewed-by: Nicolas Pitre <nico@linaro.org>
2013-01-16ARM: use late patch framework for phys-virt patchingCyril Chemparathy
This patch replaces the original physical offset patching implementation with one that uses the newly added patching framework. Signed-off-by: Cyril Chemparathy <cyril@ti.com>
2013-01-16ARM: add self test for runtime patch mechanismCyril Chemparathy
This patch adds basic sanity tests to ensure that the instruction patching results in valid instruction encodings. This is done by verifying the output of the patch process against a vector of assembler generated instructions at init time. Signed-off-by: Cyril Chemparathy <cyril@ti.com>
2013-01-16ARM: add mechanism for late code patchingCyril Chemparathy
The original phys_to_virt/virt_to_phys patching implementation relied on early patching prior to MMU initialization. On PAE systems running out of >4G address space, this would have entailed an additional round of patching after switching over to the high address space. The approach implemented here conceptually extends the original PHYS_OFFSET patching implementation with the introduction of "early" patch stubs. Early patch code is required to be functional out of the box, even before the patch is applied. This is implemented by inserting functional (but inefficient) load code into the .runtime.patch.code init section. Having functional code out of the box then allows us to defer the init time patch application until later in the init sequence. In addition to fitting better with our need for physical address-space switch-over, this implementation should be somewhat more extensible by virtue of its more readable (and hackable) C implementation. This should prove useful for other similar init time specialization needs, especially in light of our multi-platform kernel initiative. This code has been boot tested in both ARM and Thumb-2 modes on an ARMv7 (Cortex-A8) device. Note: the obtuse use of stringified symbols in patch_stub() and early_patch_stub() is intentional. Theoretically this should have been accomplished with formal operands passed into the asm block, but this requires the use of the 'c' modifier for instantiating the long (e.g. .long %c0). However, the 'c' modifier has been found to ICE certain versions of GCC, and therefore we resort to stringified symbols here. Signed-off-by: Cyril Chemparathy <cyril@ti.com> Reviewed-by: Nicolas Pitre <nico@linaro.org>
2013-01-16Config for USB changedRony Nandy
2013-01-16USB3.0: Migration of Samsung USBPHY changesYuvaraj CD
Signed-off-by: Yuvaraj CD <yuvaraj.cd@gmail.com>
2013-01-16USB3.0:dwc3:Enabling DT support for USB3.0 DWC3Yuvaraj CD
For internal use only.Made out of patches from Vivek Gautam Signed-off-by: Yuvaraj C D <yuvaraj.cd@samsung.com>
2013-01-16Config chnaged for Highmem supportRony Nandy
2013-01-16Config spec for Arndale Signed-off-by: Rony Nandy <rony.nandy@linaro.org>Rony Nandy
2013-01-16ARM: EXYNOS5: Add PHY initialization code for usb 2.0Vivek Gautam
This patch adds PHY setup functions usb 2.0 support on exynos5 Signed-off-by: Yulgon Kim <yulgon.kim@samsung.com> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>