Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "machael thailer" <dony.he@huawei.com>
To: "Ralf Baechle" <ralf@oss.sgi.com>
Cc: <linux-mips@oss.sgi.com>
Subject: questions about some bits of STATUS register and exception priority...
Date: Tue, 21 Aug 2001 09:34:00 +0800	[thread overview]
Message-ID: <001901c129e1$5aaaadc0$8021690a@huawei.com> (raw)
In-Reply-To: 20010820230755.A11242@dea.linux-mips.net

hello:

    I am confused about CU0 and UM(ERL EXL) bit of STATUS register.

    The user manual says that " CP0 is always usable when in Kernel mode,
regardless of the setting of CU0 bit". Does it mean that when in Kernel mode
, the CU0 bit is always 1 and in User mode, the CU0 bit is 0? If the CU0 is
0, can we be sure that it is in User mode?

     If a user program is running in User mode, an interrupt happens at this
time(or an error occurs), then it will switch to Kernel mode to run the
interrupt handler(or the error exception handler). We know that the EXL(or
ERL) bit of Status register will be set to 1 by hardware. What about the UM
bit of Status? Does it remain unchangeable or change to 1 too? The user
manual doesn't say anything about it.


Another question about exception priority:
In entry.S, some exception handlers enables global interrupt bit(IE) but
others disables it.
Also syscall exception handler enables global interrupt bit(IE). Since the
interrupt priority  is lowest,If an interrupt happens in a syscall exception
handler, will it pause the syscall exception handler and run the interrupt
handler? If not, why it enable the IE bit(STI) in the syscall exception
handler??

If two interrupts happens at the same time, how can we decide the larger
priority interrupt and run its ISR?

Thank you very much.

machael thailer

WARNING: multiple messages have this Message-ID (diff)
From: "machael thailer" <dony.he@huawei.com>
To: Ralf Baechle <ralf@oss.sgi.com>
Cc: linux-mips@oss.sgi.com
Subject: questions about some bits of STATUS register and exception priority...
Date: Tue, 21 Aug 2001 09:34:00 +0800	[thread overview]
Message-ID: <001901c129e1$5aaaadc0$8021690a@huawei.com> (raw)
Message-ID: <20010821013400.KY3JjUKWivE-rFPYu_Ggt0xdP1G9T28M_aSztJBcbfA@z> (raw)
In-Reply-To: 20010820230755.A11242@dea.linux-mips.net

hello:

    I am confused about CU0 and UM(ERL EXL) bit of STATUS register.

    The user manual says that " CP0 is always usable when in Kernel mode,
regardless of the setting of CU0 bit". Does it mean that when in Kernel mode
, the CU0 bit is always 1 and in User mode, the CU0 bit is 0? If the CU0 is
0, can we be sure that it is in User mode?

     If a user program is running in User mode, an interrupt happens at this
time(or an error occurs), then it will switch to Kernel mode to run the
interrupt handler(or the error exception handler). We know that the EXL(or
ERL) bit of Status register will be set to 1 by hardware. What about the UM
bit of Status? Does it remain unchangeable or change to 1 too? The user
manual doesn't say anything about it.


Another question about exception priority:
In entry.S, some exception handlers enables global interrupt bit(IE) but
others disables it.
Also syscall exception handler enables global interrupt bit(IE). Since the
interrupt priority  is lowest,If an interrupt happens in a syscall exception
handler, will it pause the syscall exception handler and run the interrupt
handler? If not, why it enable the IE bit(STI) in the syscall exception
handler??

If two interrupts happens at the same time, how can we decide the larger
priority interrupt and run its ISR?

Thank you very much.

machael thailer

  parent reply	other threads:[~2001-08-21  1:32 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-15  1:30 Virtual address to physical address mapping machael thailer
2001-08-15  1:30 ` machael thailer
2001-08-15  8:33 ` Ralf Baechle
2001-08-20  9:54   ` questions about eret machael thailer
2001-08-20  9:54     ` machael thailer
2001-08-20 21:07     ` Ralf Baechle
2001-08-21  1:06       ` machael thailer
2001-08-21  1:06         ` machael thailer
2001-08-21  6:35         ` Ralf Baechle
2001-08-21 10:09           ` machael thailer
2001-08-21 10:09             ` machael thailer
2001-08-21 11:17             ` Ralf Baechle
2001-08-21 15:17               ` Question on porting Linux Shuanglin Wang
2001-08-21 14:33                 ` jeff_lee
2001-08-21 14:33                   ` jeff_lee
2001-08-21 15:33                   ` Shuanglin Wang
2001-08-21 17:26                 ` Jun Sun
2001-08-21 20:26                 ` Carsten Langgaard
2001-08-21 21:36                   ` Shuanglin Wang
2001-08-22  9:58                     ` Carsten Langgaard
2001-08-21  1:34       ` machael thailer [this message]
2001-08-21  1:34         ` questions about some bits of STATUS register and exception priority machael thailer
2001-08-21  6:53         ` Ralf Baechle
2001-08-21 10:53           ` machael thailer
2001-08-21 10:53             ` machael thailer
2001-08-21 11:14             ` Ralf Baechle

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='001901c129e1$5aaaadc0$8021690a@huawei.com' \
    --to=dony.he@huawei.com \
    --cc=linux-mips@oss.sgi.com \
    --cc=ralf@oss.sgi.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox