Commit graph android_kernel_sony_sdm845/arch/sh/mm
Message SHA1
sh: add memory resources to /proc/iomem
Add physical memory resources such as System RAM, Kernel code/data/bss
and reserved crash dump area to /proc/iomem. Same strategy as on x86.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Magnus Damm   authored and   Paul Mundt   commited 2008-05-08 19:51:51 +09:00
0146ba78b9
sh64: export onchip_remap/unmap() too.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-05-08 19:51:41 +09:00
5e2c2872bd
sh64: Fixup the nommu build.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-05-08 19:51:37 +09:00
ccd8058741
hotplug-memory: make online_page() common
All architectures use an effectively identical definition of online_page(), so
just make it common code.  x86-64, ia64, powerpc and sh are actually
identical; x86-32 is slightly different.

x86-32's differences arise because it puts its hotplug pages in the highmem
zone.  We can handle this in the generic code by inspecting the page to see if
its in highmem, and update the totalhigh_pages count appropriately.  This
leaves init_32.c:free_new_highpage with a single caller, so I folded it into
add_one_highpage_init.

I also removed an incorrect comment referring to the NUMA case; any NUMA
details have already been dealt with by the time online_page() is called.

[akpm@linux-foundation.org: fix indenting]
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Acked-by: Dave Hansen <dave@linux.vnet.ibm.com>
Reviewed-by: KAMEZAWA Hiroyuki <kamez.hiroyu@jp.fujitsu.com>
Tested-by: KAMEZAWA Hiroyuki <kamez.hiroyu@jp.fujitsu.com>
Cc: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: Christoph Lameter <clameter@sgi.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Jeremy Fitzhardinge   authored and   Linus Torvalds   commited 2008-04-28 08:58:17 -07:00
180c06efce
sh: Create an sh debugfs root.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-04-18 09:50:01 -07:00
b9e393c2ba
sh: Flag PMB support as EXPERIMENTAL.
There's still work that needs to be done here, and this should not be
enabled by default on existing boards.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-03-06 16:06:38 +09:00
2af8b3b642
sh: replace remaining __FUNCTION__ occurrences
__FUNCTION__ is gcc-specific, use __func__

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Harvey Harrison   authored and   Paul Mundt   commited 2008-03-06 11:18:22 +09:00
866e6b9e50
sh/mm/pg-sh7705.c must #include <linux/fs.h>
This patch fixes the following compile error:

<--  snip  -->

...
  CC      arch/sh/mm/pg-sh7705.o
/home/bunk/linux/kernel-2.6/git/linux-2.6/arch/sh/mm/pg-sh7705.c: In function 'ptep_get_and_clear':
/home/bunk/linux/kernel-2.6/git/linux-2.6/arch/sh/mm/pg-sh7705.c:130: error: implicit declaration of function 'mapping_writably_mapped'
make[2]: *** [arch/sh/mm/pg-sh7705.o] Error 1

<--  snip  -->

Signed-off-by: Adrian Bunk <adrian.bunk@movial.fi>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Adrian Bunk   authored and   Paul Mundt   commited 2008-03-06 11:11:49 +09:00
c31f2f3d06
sh: Fix multiple UTLB hit on UP SH-4.
This acts as a reversion of 1c6b2ca5e0 in
the case of UP SH-4, where we still have the risk of a multiple hit
between the slow and fast paths. As seen on SH7780.

Signed-off-by: Hideo Saito <saito@densan.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Hideo Saito   authored and   Paul Mundt   commited 2008-02-14 14:45:08 +09:00
a602cc05f8
sh: __uncached_start only on sh32.
sh64 doesn't provide __uncached_start, so don't reference it
unconditionally.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-02-14 14:22:12 +09:00
db02612b4e
sh: Get SH-5 caches working again post-unification.
A number of cleanups to get the SH-5 cache management code in line with
the rest of the SH backend.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-02-14 14:22:12 +09:00
38350e0a00
sh: Update SH-5 flush_cache_sigtramp() for API changes.
Previously this took an explicit range, update this to use the same
behaviour as the rest of the SH parts where we simply flush out a line
from the start address.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-02-14 14:22:11 +09:00
f1f8926a94
sh: trapped io support V2
The idea is that we want to get rid of the in/out/readb/writeb callbacks from
the machvec and replace that with simple inline read and write operations to
memory. Fast and simple for most hardware devices (think pci).

Some devices require special treatment though - like 16-bit only CF devices -
so we need to have some method to hook in callbacks.

This patch makes it possible to add a per-device trap generating filter. This
way we can get maximum performance of sane hardware - which doesn't need this
filter - and crappy hardware works but gets punished by a performance hit.

V2 changes things around a bit and replaces io access callbacks with a
simple minimum_bus_width value. In the future we can add stride as well.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Magnus Damm   authored and   Paul Mundt   commited 2008-02-14 14:22:09 +09:00
e7cc9a7340
sh: declared coherent memory support V2 fix
This patch fixes the recently introduced declared coherent memory support.
Without this fix a cached memory area is returned by dma_alloc_coherent() -
unless dma_declare_coherent_memory() has setup a separate area.

This patch makes sure an uncached memory area is returned. With this patch
it is now possible to ping through an rtl8139 interface on r2d-plus.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Magnus Damm   authored and   Paul Mundt   commited 2008-02-14 14:22:07 +09:00
2a3eeba88f
Introduce flags for reserve_bootmem()
This patchset adds a flags variable to reserve_bootmem() and uses the
BOOTMEM_EXCLUSIVE flag in crashkernel reservation code to detect collisions
between crashkernel area and already used memory.

This patch:

Change the reserve_bootmem() function to accept a new flag BOOTMEM_EXCLUSIVE.
If that flag is set, the function returns with -EBUSY if the memory already
has been reserved in the past.  This is to avoid conflicts.

Because that code runs before SMP initialisation, there's no race condition
inside reserve_bootmem_core().

[akpm@linux-foundation.org: coding-style fixes]
[akpm@linux-foundation.org: fix powerpc build]
Signed-off-by: Bernhard Walle <bwalle@suse.de>
Cc: <linux-arch@vger.kernel.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Bernhard Walle   authored and   Linus Torvalds   commited 2008-02-07 08:42:25 -08:00
72a7fe3967
sh: declared coherent memory support V2
This patch adds declared coherent memory support to the sh architecture. All
functions are based on the x86 implementation. Header files are adjusted to
use the new functions instead of the former consistent_alloc() code.

This version includes the few changes what were included in the fix patch
together with modifications based on feedback from Paul.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Magnus Damm   authored and   Paul Mundt   commited 2008-01-28 13:19:04 +09:00
f93e97eaea
sh: Correct pte size mismatch for X2 TLB.
Fixes up a build warning/error in arch/sh/mm/fault_32.c.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:19:02 +09:00
b62ad83d91
sh: Provide a stubbed __set_fixmap() for nommu.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:19:01 +09:00
52e8b118ec
sh: Stub in page_table_range_init() on nommu.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:19:00 +09:00
9acb98fb7c
sh: Populate swapper_pg_dir with fixmap range.
This saves us from having to use kmalloc() for the fixmap entries,
which is needed early for the uncached fixmap.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Stuart Menefy   authored and   Paul Mundt   commited 2008-01-28 13:18:59 +09:00
2adb4e1009
sh: Preparation for uncached jumps through PMB.
Presently most of the 29-bit physical parts do P1/P2 segmentation
with a 1:1 cached/uncached mapping, jumping between the two to
control the caching behaviour. This provides the basic infrastructure
to maintain this behaviour on 32-bit physical parts that don't map
P1/P2 at all, using a shiny new linker section and corresponding
fixmap entry.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Stuart Menefy   authored and   Paul Mundt   commited 2008-01-28 13:18:59 +09:00
cbaa118ecf
sh: Fix compile error of arch/sh/mm/pmb.c
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Nobuhiro Iwamatsu   authored and   Paul Mundt   commited 2008-01-28 13:18:58 +09:00
53ff09422e
sh: comment tidying for sh64->sh migration.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:58 +09:00
a23ba43573
sh: Invalidate the TLB after applying PMB mappings.
Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Stuart Menefy   authored and   Paul Mundt   commited 2008-01-28 13:18:58 +09:00
eddeeb32fe
sh: clear/copy_page renames in lib and lib64.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:54 +09:00
9895f9429c
sh: Rename the _32 and _64 TLB flush variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:54 +09:00
efddb4c882
sh: Copy over special CFLAGS for SH-5 TLB miss.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:53 +09:00
1e1ed39fae
sh: Move over SH-5 TLB and cache support code.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:52 +09:00
60b2249d45
sh: Kill off a stray proc tlb reference in fault_64.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:52 +09:00
ddf7f1d339
sh: Bump the MEMORY_SIZE default to something reasonable.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:52 +09:00
711fe4369c
sh: Switch SH-5 to use CONFIG_PAGE_OFFSET.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:51 +09:00
36763b22be
sh: Move in the SH-5 TLB miss.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:50 +09:00
811d50cb43
sh: Tidy up various clear_page()/copy_page() definitions.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:50 +09:00
379a95d1d2
sh: ioremap_64 needs after_bootmem.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:49 +09:00
ba2727b556
sh: Split out tlb-flush in to _32 and _64 variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:47 +09:00
3eeffb3204
sh: Split out pgtable.h in to _32 and _64 variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:47 +09:00
249cfea914
sh: ioremap_64 needs proc_fs.h.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:47 +09:00
2b6a8d455b
sh: Split out ioremap in to _32 and _64 variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:46 +09:00
ad81eb9173
sh: Fix up 64kB page size selection on SH-5.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:45 +09:00
079060c6ff
sh: Split out extable.c _32 and _64 variants.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:44 +09:00
83ce3ac1d1
sh: Add SH-5 support to the consistent DMA impl.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:44 +09:00
8a7bcf0dd0
sh: Split out 29-bit and 32-bit physical mode definitions.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:42 +09:00
36bcd39dbc
sh: Switch Kconfig.sh64 to use arch/sh/mm/Kconfig.
Consolidates the HUGETLB definitions and others.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:39 +09:00
a09063da33
sh: Move CPU subtypes to Kconfig.sh.
We intend to share the mm options, so move the SH-only subtypes
up a level.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2008-01-28 13:18:38 +09:00
b5f42db0a7
sh: lockless UTLB miss fast-path.
With the refactored update_mmu_cache() introduced in older kernels,
there's no longer any need to take the page_table_lock in this path,
so simply drop it completely.

Without this, performance degradation is seen on SMP on heavily
threaded workloads that don't use the split ptlock, and ultimately
we have no reason to contend for the lock in the first place.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2007-11-19 13:05:18 +09:00
0f1a394ba6
sh: Kill off UTLB flush in fast-path.
The __do_page_fault() fast-path contains a UTLB flush in order to
force an ITLB reload, this isn't needed in practice as the ITLB is
auto-reloaded from the UTLB anyways, which is already displaced by
the manual 'ldtlb' in the update_mmu_cache() path.

This provides a measurable speed up in the TLB miss fast-path.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2007-11-19 13:00:32 +09:00
1c6b2ca5e0
sh: Kill off __{copy,clear}_user_page().
Now that copy_to_user_page()/copy_from_user_page() are wired up, we
can drop the old __copy_xxx() implementations. Now that the page
colouring scheme has changed via kmap_coherent(), we can avoid the
flush in these specific helpers.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2007-11-07 11:14:12 +09:00
af39c16bd8
sh: Optimized copy_{to,from}_user_page() for SH-4.
This moves copy_{to,from}_user_page() out-of-line on SH-4 and
converts for the kmap_coherent() API. Based on the MIPS
implementation.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2007-11-07 11:14:12 +09:00
ba1789efea
sh: Wire up clear_user_highpage().
With the kmap_coherent() API in place, this is trivial to implement,
and lets us avoid the cache flush in certain cases.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2007-11-07 11:14:12 +09:00
7747b9a493
sh: Kill off the remaining ST40 cruft.
The ST40 stuff in-tree hasn't built for some time, and hasn't been
updated for over 3 years. ST maintains their own out-of-tree changes
and rebases occasionally, and that's ultimately where all of the ST40
users go anyways.

In order for the ST40 code to be brought up to date most of the stuff
removed in this changeset would have to be rewritten anyways, so there's
very little benefit in keeping the remnants around either.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>

Paul Mundt   commited 2007-11-07 11:13:55 +09:00
f966918724