Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 42601
b: refs/heads/master
c: 510c72a
h: refs/heads/master
i:
  42599: 4de98b7
v: v3
  • Loading branch information
Paul Mundt committed Dec 6, 2006
1 parent 3b8841c commit 57b3d4d
Show file tree
Hide file tree
Showing 12 changed files with 38 additions and 46 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1dc41e58a553e612e3d0349bb60eef08f9462bde
refs/heads/master: 510c72ad2dd4e05e6908755f51ac89482c6eb987
5 changes: 3 additions & 2 deletions trunk/arch/sh/kernel/cpu/sh3/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -335,7 +335,7 @@ general_exception:
/* This code makes some assumptions to improve performance.
* Make sure they are stil true. */
#if PTRS_PER_PGD != PTRS_PER_PTE
#error PDG and PTE sizes don't match
#error PGD and PTE sizes don't match
#endif

/* gas doesn't flag impossible values for mov #immediate as an error */
Expand Down Expand Up @@ -547,8 +547,9 @@ ENTRY(handle_exception)
bt/s 1f ! It's a kernel to kernel transition.
mov r15, k0 ! save original stack to k0
/* User space to kernel */
mov #(THREAD_SIZE >> 8), k1
mov #(THREAD_SIZE >> 10), k1
shll8 k1 ! k1 := THREAD_SIZE
shll2 k1
add current, k1
mov k1, r15 ! change to kernel stack
!
Expand Down
5 changes: 3 additions & 2 deletions trunk/arch/sh/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ENTRY(empty_zero_page)
.long 0x00360000 /* INITRD_START */
.long 0x000a0000 /* INITRD_SIZE */
.long 0
.balign 4096,0,4096
.balign PAGE_SIZE,0,PAGE_SIZE

.text
/*
Expand Down Expand Up @@ -70,8 +70,9 @@ ENTRY(_stext)
!
mov.l 2f, r0
mov r0, r15 ! Set initial r15 (stack pointer)
mov #(THREAD_SIZE >> 8), r1
mov #(THREAD_SIZE >> 10), r1
shll8 r1 ! r1 = THREAD_SIZE
shll2 r1
sub r1, r0 !
#ifdef CONFIG_CPU_HAS_SR_RB
ldc r0, r7_bank ! ... and initial thread_info
Expand Down
14 changes: 6 additions & 8 deletions trunk/arch/sh/kernel/relocate_kernel.S
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,9 @@
* This source code is licensed under the GNU General Public License,
* Version 2. See the file COPYING for more details.
*/

#include <linux/linkage.h>

#define PAGE_SIZE 4096 /* must be same value as in <asm/page.h> */

#include <asm/addrspace.h>
#include <asm/page.h>

.globl relocate_new_kernel
relocate_new_kernel:
Expand All @@ -20,8 +18,8 @@ relocate_new_kernel:
/* r6 = start_address */
/* r7 = vbr_reg */

mov.l 10f,r8 /* 4096 */
mov.l 11f,r9 /* 0xa0000000 */
mov.l 10f,r8 /* PAGE_SIZE */
mov.l 11f,r9 /* P2SEG */

/* stack setting */
add r8,r5
Expand All @@ -32,7 +30,7 @@ relocate_new_kernel:
0:
mov.l @r4+,r0 /* cmd = *ind++ */

1: /* addr = (cmd | 0xa0000000) & 0xfffffff0 */
1: /* addr = (cmd | P2SEG) & 0xfffffff0 */
mov r0,r2
or r9,r2
mov #-16,r1
Expand Down Expand Up @@ -92,7 +90,7 @@ relocate_new_kernel:
10:
.long PAGE_SIZE
11:
.long 0xa0000000
.long P2SEG

relocate_new_kernel_end:

Expand Down
4 changes: 2 additions & 2 deletions trunk/arch/sh/mm/cache-sh4.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ static inline void flush_cache_4096(unsigned long start,
*/
if ((cpu_data->flags & CPU_HAS_P2_FLUSH_BUG) ||
(start < CACHE_OC_ADDRESS_ARRAY))
exec_offset = 0x20000000;
exec_offset = 0x20000000;

local_irq_save(flags);
__flush_cache_4096(start | SH_CACHE_ASSOC,
Expand All @@ -246,7 +246,7 @@ void flush_dcache_page(struct page *page)

/* Loop all the D-cache */
n = cpu_data->dcache.n_aliases;
for (i = 0; i < n; i++, addr += PAGE_SIZE)
for (i = 0; i < n; i++, addr += 4096)
flush_cache_4096(addr, phys);
}

Expand Down
18 changes: 9 additions & 9 deletions trunk/arch/sh/mm/clear_page.S
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/* $Id: clear_page.S,v 1.13 2003/08/25 17:03:10 lethal Exp $
*
/*
* __clear_user_page, __clear_user, clear_page implementation of SuperH
*
* Copyright (C) 2001 Kaz Kojima
* Copyright (C) 2001, 2002 Niibe Yutaka
*
* Copyright (C) 2006 Paul Mundt
*/
#include <linux/linkage.h>
#include <asm/page.h>

/*
* clear_page_slow
Expand All @@ -18,11 +18,11 @@
/*
* r0 --- scratch
* r4 --- to
* r5 --- to + 4096
* r5 --- to + PAGE_SIZE
*/
ENTRY(clear_page_slow)
mov r4,r5
mov.w .Llimit,r0
mov.l .Llimit,r0
add r0,r5
mov #0,r0
!
Expand Down Expand Up @@ -50,7 +50,7 @@ ENTRY(clear_page_slow)
!
rts
nop
.Llimit: .word (4096-28)
.Llimit: .long (PAGE_SIZE-28)

ENTRY(__clear_user)
!
Expand Down Expand Up @@ -164,10 +164,10 @@ ENTRY(__clear_user)
* r0 --- scratch
* r4 --- to
* r5 --- orig_to
* r6 --- to + 4096
* r6 --- to + PAGE_SIZE
*/
ENTRY(__clear_user_page)
mov.w .L4096,r0
mov.l .Lpsz,r0
mov r4,r6
add r0,r6
mov #0,r0
Expand All @@ -191,7 +191,7 @@ ENTRY(__clear_user_page)
!
rts
nop
.L4096: .word 4096
.Lpsz: .long PAGE_SIZE

#endif

16 changes: 8 additions & 8 deletions trunk/arch/sh/mm/copy_page.S
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
/* $Id: copy_page.S,v 1.8 2003/08/25 17:03:10 lethal Exp $
*
/*
* copy_page, __copy_user_page, __copy_user implementation of SuperH
*
* Copyright (C) 2001 Niibe Yutaka & Kaz Kojima
* Copyright (C) 2002 Toshinobu Sugioka
*
* Copyright (C) 2006 Paul Mundt
*/
#include <linux/linkage.h>
#include <asm/page.h>

/*
* copy_page_slow
Expand All @@ -18,7 +18,7 @@

/*
* r0, r1, r2, r3, r4, r5, r6, r7 --- scratch
* r8 --- from + 4096
* r8 --- from + PAGE_SIZE
* r9 --- not used
* r10 --- to
* r11 --- from
Expand All @@ -30,7 +30,7 @@ ENTRY(copy_page_slow)
mov r4,r10
mov r5,r11
mov r5,r8
mov.w .L4096,r0
mov.l .Lpsz,r0
add r0,r8
!
1: mov.l @r11+,r0
Expand Down Expand Up @@ -80,7 +80,7 @@ ENTRY(copy_page_slow)

/*
* r0, r1, r2, r3, r4, r5, r6, r7 --- scratch
* r8 --- from + 4096
* r8 --- from + PAGE_SIZE
* r9 --- orig_to
* r10 --- to
* r11 --- from
Expand All @@ -94,7 +94,7 @@ ENTRY(__copy_user_page)
mov r5,r11
mov r6,r9
mov r5,r8
mov.w .L4096,r0
mov.l .Lpsz,r0
add r0,r8
!
1: ocbi @r9
Expand Down Expand Up @@ -129,7 +129,7 @@ ENTRY(__copy_user_page)
rts
nop
#endif
.L4096: .word 4096
.Lpsz: .long PAGE_SIZE
/*
* __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
* Return the number of bytes NOT copied
Expand Down
1 change: 0 additions & 1 deletion trunk/arch/sh/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,6 @@ static struct kcore_list kcore_mem, kcore_vmalloc;

void __init mem_init(void)
{
extern unsigned long empty_zero_page[1024];
int codesize, reservedpages, datasize, initsize;
int tmp;
extern unsigned long memory_start;
Expand Down
2 changes: 0 additions & 2 deletions trunk/arch/sh/mm/pg-dma.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ static void copy_page_dma(void *to, void *from)

static void clear_page_dma(void *to)
{
extern unsigned long empty_zero_page[1024];

/*
* We get invoked quite early on, if the DMAC hasn't been initialized
* yet, fall back on the slow manual implementation.
Expand Down
3 changes: 2 additions & 1 deletion trunk/include/asm-sh/entry-macros.S
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@
#ifdef CONFIG_HAS_SR_RB
stc r7_bank, \ti
#else
mov #((THREAD_SIZE - 1)>> 8) ^ 0xff, \tmp
mov #((THREAD_SIZE - 1) >> 10) ^ 0xff, \tmp
shll8 \tmp
shll2 \tmp
mov r15, \ti
and \tmp, \ti
#endif
Expand Down
6 changes: 3 additions & 3 deletions trunk/include/asm-sh/pgtable.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
#define PGDIR_MASK (~(PGDIR_SIZE-1))

/* Entries per level */
#define PTRS_PER_PTE (1 << PTE_BITS)
#define PTRS_PER_PGD (1 << PGDIR_BITS)
#define PTRS_PER_PTE (PAGE_SIZE / 4)
#define PTRS_PER_PGD (PAGE_SIZE / 4)

#define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE)
#define FIRST_USER_ADDRESS 0
Expand All @@ -57,7 +57,7 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];

/*
* First 1MB map is used by fixed purpose.
* Currently only 4-enty (16kB) is used (see arch/sh/mm/cache.c)
* Currently only 4-entry (16kB) is used (see arch/sh/mm/cache.c)
*/
#define VMALLOC_START (P3SEG+0x00100000)
#define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
Expand Down
8 changes: 1 addition & 7 deletions trunk/include/asm-sh/thread_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,13 +90,7 @@ static inline struct thread_info *current_thread_info(void)
#endif
#define free_thread_info(ti) kfree(ti)

#else /* !__ASSEMBLY__ */

/* how to get the thread information struct from ASM */
#define GET_THREAD_INFO(reg) \
stc r7_bank, reg

#endif
#endif /* __ASSEMBLY__ */

/*
* thread information flags
Expand Down

0 comments on commit 57b3d4d

Please sign in to comment.