From: Greg Ungerer <gerg@snapgear.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: linux-m68k@vger.kernel.org, uclinux-dev@uclinux.org,
Greg Ungerer <gerg@uclinux.org>
Subject: Re: [PATCH 09/36] m68k: set register a2 to current if MMU enabled on ColdFire
Date: Mon, 31 Oct 2011 14:19:03 +1000 [thread overview]
Message-ID: <4EAE21B7.3040702@snapgear.com> (raw)
In-Reply-To: <CAMuHMdWU-W9jDYs4KMRvyB7uxs2gKS7_FEz6QQr1jDxWY2xPKQ@mail.gmail.com>
Hi Geert,
On 30/10/11 23:06, Geert Uytterhoeven wrote:
> On Tue, Oct 25, 2011 at 09:19,<gerg@snapgear.com> wrote:
>> From: Greg Ungerer<gerg@uclinux.org>
>>
>> Virtual memory m68k systems build with register a2 dedicated to being the
>> current proc pointer. Add code to the ColdFire interrupt and exception
>> processing to set this on entry, and also at context switch time.
>>
>> Signed-off-by: Greg Ungerer<gerg@uclinux.org>
>> ---
>> arch/m68k/kernel/entry_no.S 24 ++++++++++++++++++------
>> arch/m68k/platform/coldfire/entry.S | 18 +++++++++++++++++-
>> 2 files changed, 35 insertions(+), 7 deletions(-)
>>
>> diff --git a/arch/m68k/kernel/entry_no.S b/arch/m68k/kernel/entry_no.S
>> index 1b42890..050d7ea 100644
>> --- a/arch/m68k/kernel/entry_no.S
>> +++ b/arch/m68k/kernel/entry_no.S
>> @@ -44,8 +44,12 @@
>>
>> ENTRY(buserr)
>> SAVE_ALL_INT
>> - moveq #-1,%d0
>> - movel %d0,%sp@(PT_OFF_ORIG_D0)
>
> Don't you need the above anymore, at least on nommu?
Yes it is needed, but it is done in the SAVE_ALL_INT macro now.
That was done in commit 61619b12078dc8b85a3d4cbfa16f650daa341bd1
("m68k: merge mmu and non-mmu include/asm/entry.h files").
It sure has nothing to do with the a2 work that the patch description
says above :) I'll move this change into a separate patch with
appropriate comments.
Regards
Greg
>> +#ifdef CONFIG_MMU
>> + á á á movel á %sp,%d0 á á á á á á á á /* get thread_info pointer */
>> + á á á andl á á#-THREAD_SIZE,%d0 á á á /* at start of kernel stack */
>> + á á á movel á %d0,%a2
>> + á á á movel á %a2@,%a2 á á á á á á á á/* current pointer into a2 */
>> +#endif
>> á á á ámovel á %sp,%sp@- á á á á á á á /* stack frame pointer argument */
>> á á á ájsr á á buserr_c
>> á á á áaddql á #4,%sp
>> @@ -53,8 +57,12 @@ ENTRY(buserr)
>>
>> áENTRY(trap)
>> á á á áSAVE_ALL_INT
>> - á á á moveq á #-1,%d0
>> - á á á movel á %d0,%sp@(PT_OFF_ORIG_D0)
>
> Same here.
>
>> +#ifdef CONFIG_MMU
>> + á á á movel á %sp,%d0 á á á á á á á á /* get thread_info pointer */
>> + á á á andl á á#-THREAD_SIZE,%d0 á á á /* at start of kernel stack */
>> + á á á movel á %d0,%a2
>> + á á á movel á %a2@,%a2 á á á á á á á á/* current pointer into a2 */
>> +#endif
>> á á á ámovel á %sp,%sp@- á á á á á á á /* stack frame pointer argument */
>> á á á ájsr á á trap_c
>> á á á áaddql á #4,%sp
>> @@ -65,8 +73,12 @@ ENTRY(trap)
>> á.globl dbginterrupt
>> áENTRY(dbginterrupt)
>> á á á áSAVE_ALL_INT
>> - á á á moveq á #-1,%d0
>> - á á á movel á %d0,%sp@(PT_OFF_ORIG_D0)
>> +#ifdef CONFIG_MMU
>> + á á á movel á %sp,%d0 á á á á á á á á /* get thread_info pointer */
>> + á á á andl á á#-THREAD_SIZE,%d0 á á á /* at start of kernel stack */
>> + á á á movel á %d0,%a2
>> + á á á movel á %a2@,%a2 á á á á á á á á/* current pointer into a2 */
>> +#endif
>> á á á ámovel á %sp,%sp@- á á á á á á á /* stack frame pointer argument */
>> á á á ájsr á á dbginterrupt_c
>> á á á áaddql á #4,%sp
>> diff --git a/arch/m68k/platform/coldfire/entry.S b/arch/m68k/platform/coldfire/entry.S
>> index f567a16..5fc1f40 100644
>> --- a/arch/m68k/platform/coldfire/entry.S
>> +++ b/arch/m68k/platform/coldfire/entry.S
>> @@ -63,6 +63,13 @@ ENTRY(system_call)
>> á á á áSAVE_ALL_SYS
>> á á á ámove á á#0x2000,%sr á á á á á á /* enable intrs again */
>>
>> +#ifdef CONFIG_MMU
>> + á á á movel á %sp,%d2 á á á á á á á á /* get thread_info pointer */
>> + á á á andl á á#-THREAD_SIZE,%d2 á á á /* at start of kernel stack */
>> + á á á movel á %d2,%a2
>> + á á á movel á %a2@,%a2 á á á á á á á á/* current pointer into a2 */
>> +#endif
>> +
>> á á á ácmpl á á#NR_syscalls,%d0
>> á á á ájcc á á enosys
>> á á á álea á á sys_call_table,%a0
>> @@ -166,6 +173,13 @@ Lsignal_return:
>> áENTRY(inthandler)
>> á á á áSAVE_ALL_INT
>>
>> +#ifdef CONFIG_MMU
>> + á á á movel á %sp,%d2 á á á á á á á á /* get thread_info pointer */
>> + á á á andl á á#-THREAD_SIZE,%d2 á á á /* at start of kernel stack */
>> + á á á movel á %d2,%a2
>> + á á á movel á %a2@,%a2 á á á á á á á á/* current pointer into a2 */
>> +#endif
>> +
>> á á á ámovew á %sp@(PT_OFF_FORMATVEC),%d0 /* put exception # in d0 */
>> á á á áandl á á#0x03fc,%d0 á á á á á á /* mask out vector only */
>>
>> @@ -190,7 +204,9 @@ ENTRY(resume)
>> á á á ámovel á %sp,%a0@(TASK_THREAD+THREAD_KSP) /* save kernel stack pointer */
>> á á á áRDUSP á á á á á á á á á á á á á á á á á á/* movel %usp,%a3 */
>> á á á ámovel á %a3,%a0@(TASK_THREAD+THREAD_USP) /* save thread user stack */
>> -
>> +#ifdef CONFIG_MMU
>> + á á á movel á %a1,%a2 á á á á á á á á á á á á á/* set new current */
>> +#endif
>> á á á ámovel á %a1@(TASK_THREAD+THREAD_USP),%a3 /* restore thread user stack */
>> á á á áWRUSP á á á á á á á á á á á á á á á á á á/* movel %a3,%usp */
>> á á á ámovel á %a1@(TASK_THREAD+THREAD_KSP),%sp /* restore new kernel stack */
>
> Gr{oetje,eeting}s,
>
> á á á á á á á á á á á á Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> á á á á á á á á á á á á á áá áá -- Linus Torvalds
>
>
>
--
------------------------------------------------------------------------
Greg Ungerer -- Principal Engineer EMAIL: gerg@snapgear.com
SnapGear Group, McAfee PHONE: +61 7 3435 2888
8 Gardner Close FAX: +61 7 3217 5323
Milton, QLD, 4064, Australia WEB: http://www.SnapGear.com
next prev parent reply other threads:[~2011-10-31 4:17 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-25 7:18 [PATCH 00/36] m68k: ColdFire MMU support gerg
2011-10-25 7:18 ` [PATCH 01/36] m68k: add machine and CPU definitions for ColdFire cores gerg
2011-10-25 7:18 ` [PATCH 02/36] m68k: show ColdFire CPU/FPU/MMU type gerg
2011-10-25 7:18 ` [PATCH 03/36] m68k: definitions for the ColdFire V4e MMU hardware gerg
2011-10-25 7:18 ` [PATCH 04/36] m68k: make old interrupt code conditional on correct CPU types gerg
2011-10-25 7:18 ` [PATCH 05/36] m68k: add TASK definitions for ColdFires running with MMU gerg
2011-10-25 7:18 ` [PATCH 06/36] m68k: modify user space access functions to support ColdFire CPUs gerg
2011-10-30 13:02 ` Geert Uytterhoeven
2011-10-31 5:03 ` Greg Ungerer
2011-10-25 7:18 ` [PATCH 07/36] m68k: add ColdFire 54xx CPU MMU memory init code gerg
2011-10-25 7:19 ` [PATCH 08/36] m68k: init the MMU hardware for the 54xx ColdFire gerg
2011-10-25 7:19 ` [PATCH 09/36] m68k: set register a2 to current if MMU enabled on ColdFire gerg
2011-10-30 13:06 ` Geert Uytterhoeven
2011-10-31 4:19 ` Greg Ungerer [this message]
2011-10-25 7:19 ` [PATCH 10/36] m68k: page table support definitions and code for ColdFire MMU gerg
2011-10-30 13:07 ` Geert Uytterhoeven
2011-10-25 7:19 ` [PATCH 11/36] m68k: add page table size definitions for ColdFire V4e MMU gerg
2011-10-25 7:19 ` [PATCH 12/36] m68k: add ColdFire paging exception handling code gerg
2011-10-25 7:19 ` [PATCH 13/36] m68k: add cache support for V4e ColdFire cores running with MMU enabled gerg
2011-10-25 7:19 ` [PATCH 14/36] m68k: modify ColdFire 54xx cache support for " gerg
2011-10-25 7:19 ` [PATCH 15/36] m68k: add TLB flush support for the ColdFire V4e MMU hardware gerg
2011-10-30 13:26 ` Geert Uytterhoeven
2011-10-25 7:19 ` [PATCH 16/36] m68k: set ColdFire MMU page size gerg
2011-10-30 13:29 ` Geert Uytterhoeven
2011-10-31 4:41 ` Greg Ungerer
2011-10-25 7:19 ` [PATCH 17/36] m68k: ColdFire with MMU does not support separate address spaces gerg
2011-10-25 7:19 ` [PATCH 18/36] m68k: ColdFire V4e MMU context support code gerg
2011-10-25 7:19 ` [PATCH 19/36] m68k: use tracehook_report_syscall_entry/exit for ColdFire MMU ptrace path gerg
2011-10-25 7:19 ` [PATCH 20/36] m68k: ColdFire with MMU needs simpler lib checksum code gerg
2011-10-25 7:19 ` [PATCH 21/36] m68k: modify cache push and clear code for ColdFire with MMU enable gerg
2011-10-25 7:19 ` [PATCH 22/36] m68k: use ColdFire V4e MMU flags when ioremapping() gerg
2011-10-25 7:19 ` [PATCH 23/36] m68k: ColdFire V4e MMU paginit init code and miss handler gerg
2011-10-30 15:56 ` Finn Thain
2011-10-31 4:46 ` Greg Ungerer
2011-10-25 7:19 ` [PATCH 24/36] m68k: compile appropriate mm arch files for ColdFire V4e MMU support gerg
2011-10-30 13:46 ` Geert Uytterhoeven
2011-10-31 5:39 ` Greg Ungerer
2011-10-25 7:19 ` [PATCH 25/36] m68k: create ColdFire MMU pgalloc code gerg
2011-10-25 7:19 ` [PATCH 26/36] m68k: use non-MMU entry.S code when compiling for ColdFire CPU gerg
2011-10-25 7:19 ` [PATCH 27/36] m68k: add code to setup a ColdFire 54xx platform when MMU enabled gerg
2011-10-30 13:39 ` Geert Uytterhoeven
2011-10-31 4:59 ` Greg Ungerer
2011-10-25 7:19 ` [PATCH 28/36] m68k: ColdFire with MMU enabled uses same clocking code as non-MMU gerg
2011-10-25 7:19 ` [PATCH 29/36] m68k: use non-MMU linker script for ColdFire MMU builds gerg
2011-10-25 7:19 ` [PATCH 30/36] m68k: adjustments to stack frame for ColdFire with MMU enabled gerg
2011-10-25 7:19 ` [PATCH 31/36] m68k: completely disable FPU support for ColdFire gerg
2011-10-30 15:56 ` Finn Thain
2011-10-25 7:19 ` [PATCH 32/36] m68k: use new style interrupt handling for ColdFire with MMU enabled gerg
2011-10-25 7:19 ` [PATCH 33/36] m68k: define a ack_bad_irq() function for ColdFire with MMU gerg
2011-10-25 7:19 ` [PATCH 34/36] m68k: add ColdFire with MMU enabled support to the m68k mem init code gerg
2011-10-25 7:19 ` [PATCH 35/36] m68k: config option adjustments for configuring ColdFire with MMU gerg
2011-10-30 13:42 ` Geert Uytterhoeven
2011-10-25 7:19 ` [PATCH 36/36] m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled gerg
2011-10-30 13:47 ` [PATCH 00/36] m68k: ColdFire MMU support Geert Uytterhoeven
2011-10-31 5:46 ` Greg Ungerer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4EAE21B7.3040702@snapgear.com \
--to=gerg@snapgear.com \
--cc=geert@linux-m68k.org \
--cc=gerg@uclinux.org \
--cc=linux-m68k@vger.kernel.org \
--cc=uclinux-dev@uclinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.