1. 23 Dec, 2011 2 commits
    • Dave Martin's avatar
      ARM: 7197/1: errata: Remove SMP dependency for erratum 751472 · ba90c516
      Dave Martin authored
      
      
      Activation conditions for a workaround should not be encoded in the
      workaround's direct dependencies if this makes otherwise reasonable
      configuration choices impossible.
      
      This patches uses the SMP/UP patching facilities instead to compile
      out the workaround if the configuration means that it is definitely
      not needed.
      
      This means that configs for buggy silicon can simply select
      ARM_ERRATA_751472, without preventing a UP kernel from being built
      or duplicatiing knowledge about when to activate the workaround.
      This seems the correct way to do things, because the erratum is a
      property of the silicon, irrespective of what the kernel config
      happens to be.
      Signed-off-by: default avatarDave Martin <dave.martin@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      ba90c516
    • Dave Martin's avatar
      ARM: 7196/1: errata: Remove SMP dependency for erratum 720789 · e66dc745
      Dave Martin authored
      
      
      Activation conditions for a workaround should not be encoded in the
      workaround's direct dependencies if this makes otherwise reasonable
      configuration choices impossible.
      
      The workaround for erratum 720789 only affects a code path which is
      not active in UP kernels; hence it should be safe to turn on in UP
      kernels, without penalty.
      
      This patch simply removes the extra dependency on SMP from Kconfig.
      
      This means that configs for buggy silicon can simply select
      ARM_ERRATA_720789, without preventing a UP kernel from being built
      or duplicatiing knowledge about when to activate the workaround.
      Signed-off-by: default avatarDave Martin <dave.martin@linaro.org>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      e66dc745
  2. 06 Dec, 2011 1 commit
    • Nicolas Pitre's avatar
      ARM: 7186/1: fix Kconfig issue with PHYS_OFFSET and !MMU · 974c0724
      Nicolas Pitre authored
      Commit 1b9f95f8
      
       (ARM: prepare for removal of a bunch of <mach/memory.h>
      files) introduced CONFIG_PHYS_OFFSET but the Kconfig hex prompt did not
      provide a default value.
      
      This has the undesired side effect of breaking a reportedly used
      trick for updating defconfigs on the fly for routine buildtesting
      across all arch and all platforms, i.e.
      
      	cp /path/to/somedefconfig .config ; yes "" | make oldconfig
      
      because the config system will endlessly loop until a valid address is
      provided.
      
      However we can't just pick a random default value since it is likely to
      be wrong for the majority of the boards as the right answer for this
      option is quite varied.  So the fact that the config system insists on
      having a proper value be entered is actually a good thing.
      
      It turns out that only at91x40_defconfig has this problem because it has
      CONFIG_MMU=n. However, in the !MMU case, there is already a CONFIG_DRAM_BASE
      value that can be used here.  So let's use that as a default in that case
      and suppress the redundant CONFIG_PHYS_OFFSET prompt.
      
      Eventually the DRAM_BASE config option could simply be replaced by
      PHYS_OFFSET directly, but that's a larger change better suited for later.
      Reported-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarNicolas Pitre <nico@linaro.org>
      Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      974c0724
  3. 21 Nov, 2011 2 commits
  4. 05 Nov, 2011 1 commit
    • Kukjin Kim's avatar
      ARM: EXYNOS: Add ARCH_EXYNOS and reorganize arch/arm/mach-exynos · 83014579
      Kukjin Kim authored
      
      
      The arch/arm/mach-exynos4 directory (CONFIG_ARCH_EXYNOS4) has
      made for plaforms based on EXYNOS4 SoCs. But since upcoming
      Samsung's SoCs such as EXYNOS5 (ARM Cortex A15) can reuse most
      codes in current mach-exynos4, one mach-exynos directory will
      be used for them.
      
      This patch changes to CONFIG_ARCH_EXYNOS (arch/arm/mach-exynos)
      but keeps original CONFIG_ARCH_EXYNOS4 in mach-exynos/Kconfig to
      avoid changing in driver side.
      
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      83014579
  5. 31 Oct, 2011 3 commits
  6. 25 Oct, 2011 1 commit
    • Leo Yan's avatar
      ARM: mmp: add sram allocator · 3c7241bd
      Leo Yan authored
      
      
      On mmp platform, there have two sram banks:
      audio sram and internal sram. The audio sram is mainly for audio;
      the internal sram is for video, wtm and power management.
      So add the sram allocator using genalloc to manage them.
      
      Every sram bank will register its own platform device
      info, after the sram allocator create the generic pool
      for the sram bank, the user module can use the pool's
      name to get the pool handler; then it can use the handler
      to alloc/free memory with genalloc APIs.
      Signed-off-by: default avatarLeo Yan <leoy@marvell.com>
      Acked-by: default avatarHaojian Zhuang <haojian.zhuang@gmail.com>
      Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
      3c7241bd
  7. 17 Oct, 2011 2 commits
    • Simon Glass's avatar
      ARM: 7017/1: Use generic BUG() handler · 87e040b6
      Simon Glass authored
      
      
      ARM uses its own BUG() handler which makes its output slightly different
      from other archtectures.
      
      One of the problems is that the ARM implementation doesn't report the function
      with the BUG() in it, but always reports the PC being in __bug(). The generic
      implementation doesn't have this problem.
      
      Currently we get something like:
      
      kernel BUG at fs/proc/breakme.c:35!
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      ...
      PC is at __bug+0x20/0x2c
      
      With this patch it displays:
      
      kernel BUG at fs/proc/breakme.c:35!
      Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP
      ...
      PC is at write_breakme+0xd0/0x1b4
      
      This implementation uses an undefined instruction to implement BUG, and sets up
      a bug table containing the relevant information. Many versions of gcc do not
      support %c properly for ARM (inserting a # when they shouldn't) so we work
      around this using distasteful macro magic.
      
      v1: Initial version to replace existing ARM BUG() implementation with something
      more similar to other architectures.
      
      v2: Add Thumb support, remove backtrace whitespace output changes. Change to
      use macros instead of requiring the asm %d flag to work (thanks to
      Dave Martin <dave.martin@linaro.org>)
      
      v3: Remove old BUG() implementation in favor of this one.
      Remove the Backtrace: message (will submit this separately).
      Use ARM_EXIT_KEEP() so that some architectures can dump exit text at link time
      thanks to Stephen Boyd <sboyd@codeaurora.org> (although since we always
      define GENERIC_BUG this might be academic.)
      Rebase to linux-2.6.git master.
      
      v4: Allow BUGS in modules (these were not reported correctly in v3)
      (thanks to Stephen Boyd <sboyd@codeaurora.org> for suggesting that.)
      Remove __bug() as this is no longer needed.
      
      v5: Add %progbits as the section flags.
      Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
      Reviewed-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Tested-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      87e040b6
    • Vincent Guittot's avatar
      ARM: 7011/1: Add ARM cpu topology definition · c9018aab
      Vincent Guittot authored
      
      
      The affinity between ARM processors is defined in the MPIDR register.
      We can identify which processors are in the same cluster,
      and which ones have performance interdependency. We can define the
      cpu topology of ARM platform, that is then used by sched_mc and sched_smt.
      
      The default state of sched_mc and sched_smt config is disable.
      When enabled, the behavior of the scheduler can be modified with
      sched_mc_power_savings and sched_smt_power_savings sysfs interfaces.
      
      Changes since v4 :
      *  Remove unnecessary parentheses and blank lines
      
      Changes since v3 :
      * Update the format of printk message
      * Remove blank line
      
      Changes since v2 :
      * Update the commit message and some comments
      
      Changes since v1 :
      * Update the commit message
      * Add read_cpuid_mpidr in arch/arm/include/asm/cputype.h
      * Modify header of arch/arm/kernel/topology.c
      * Modify tests and manipulation of MPIDR's bitfields
      * Modify the place and dependancy of the config
      * Modify Noop functions
      Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
      Reviewed-by: default avatarAmit Kucheria <amit.kucheria@linaro.org>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      c9018aab
  8. 13 Oct, 2011 28 commits