Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: "Bradley D. LaRonde" <brad@ltc.com>
To: "Lars Munch" <lars@segv.dk>
Cc: <linux-mips@oss.sgi.com>
Subject: Re: set_except_vector question
Date: Sat, 1 Sep 2001 13:00:37 -0400	[thread overview]
Message-ID: <012801c13307$a05865e0$3501010a@ltc.com> (raw)
In-Reply-To: 20010901181009.A13883@tuxedo.skovlyporten.dk

I haven't verified it, but it looks like it is making jump (j) instruction
that jumps to handler.  So the first instruction at the dedicated interrupt
vector becomes a jump to the handler.

Regards,
Brad

----- Original Message -----
From: "Lars Munch" <lars@segv.dk>
To: "Bradley D. LaRonde" <brad@ltc.com>
Cc: <linux-mips@oss.sgi.com>
Sent: Saturday, September 01, 2001 12:10 PM
Subject: Re: set_except_vector question


> What do you mean by "synthesizing a jump"?
>
> My CPU is a 5Kc and it has a DIVEC which is set to the mipsIRQ function in
> /arch/mips64/mips-boards/generic/mipsIRQ.S to handle interrupts. But I
still do
> not understand the address manipulation which is done before storing the
> function pointer (handler).
>
> Thanks
> Lars Munch
>
> On Sat, Sep 01, 2001 at 11:54:26AM -0400, Bradley D. LaRonde wrote:
> > Looks like it is synthesizing a jump (j) instruction to forward
interrupt
> > exceptions to the interrupt handler for cpus that have a dedicated
interrupt
> > vector (DIVEC).  arch/mips/kernel/setup.c sets the DIVEC option for
certain
> > cpus.
> >
> > Regards,
> > Brad
> >
> > ----- Original Message -----
> > From: "Lars Munch" <lars@segv.dk>
> > To: <linux-mips@oss.sgi.com>
> > Sent: Saturday, September 01, 2001 10:58 AM
> > Subject: set_except_vector question
> >
> >
> > > Hi
> > >
> > > I have been looking at the set_except_vector function in
> > > arch/mips[64]/kernel/traps.c and wondering why the handler
> > > address is changed/recalculated before it is stored:
> > >
> > > *(volatile u32 *)(KSEG0+0x200) = 0x08000000 | (0x03ffffff & (handler
>>
> > 2));
> > >
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > >
> > > Could someone please enlighten me?
> > >
> > > Thanks
> > > Lars Munch
> > >
> >
>

WARNING: multiple messages have this Message-ID (diff)
From: "Bradley D. LaRonde" <brad@ltc.com>
To: Lars Munch <lars@segv.dk>
Cc: linux-mips@oss.sgi.com
Subject: Re: set_except_vector question
Date: Sat, 1 Sep 2001 13:00:37 -0400	[thread overview]
Message-ID: <012801c13307$a05865e0$3501010a@ltc.com> (raw)
Message-ID: <20010901170037._uzS2sQ1W6v6RRTbOL3lUYNtduVG5-qWsM1EbcuGvaM@z> (raw)
In-Reply-To: 20010901181009.A13883@tuxedo.skovlyporten.dk

I haven't verified it, but it looks like it is making jump (j) instruction
that jumps to handler.  So the first instruction at the dedicated interrupt
vector becomes a jump to the handler.

Regards,
Brad

----- Original Message -----
From: "Lars Munch" <lars@segv.dk>
To: "Bradley D. LaRonde" <brad@ltc.com>
Cc: <linux-mips@oss.sgi.com>
Sent: Saturday, September 01, 2001 12:10 PM
Subject: Re: set_except_vector question


> What do you mean by "synthesizing a jump"?
>
> My CPU is a 5Kc and it has a DIVEC which is set to the mipsIRQ function in
> /arch/mips64/mips-boards/generic/mipsIRQ.S to handle interrupts. But I
still do
> not understand the address manipulation which is done before storing the
> function pointer (handler).
>
> Thanks
> Lars Munch
>
> On Sat, Sep 01, 2001 at 11:54:26AM -0400, Bradley D. LaRonde wrote:
> > Looks like it is synthesizing a jump (j) instruction to forward
interrupt
> > exceptions to the interrupt handler for cpus that have a dedicated
interrupt
> > vector (DIVEC).  arch/mips/kernel/setup.c sets the DIVEC option for
certain
> > cpus.
> >
> > Regards,
> > Brad
> >
> > ----- Original Message -----
> > From: "Lars Munch" <lars@segv.dk>
> > To: <linux-mips@oss.sgi.com>
> > Sent: Saturday, September 01, 2001 10:58 AM
> > Subject: set_except_vector question
> >
> >
> > > Hi
> > >
> > > I have been looking at the set_except_vector function in
> > > arch/mips[64]/kernel/traps.c and wondering why the handler
> > > address is changed/recalculated before it is stored:
> > >
> > > *(volatile u32 *)(KSEG0+0x200) = 0x08000000 | (0x03ffffff & (handler
>>
> > 2));
> > >
> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > >
> > > Could someone please enlighten me?
> > >
> > > Thanks
> > > Lars Munch
> > >
> >
>

  reply	other threads:[~2001-09-01 16:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-01 14:58 set_except_vector question Lars Munch
2001-09-01 15:54 ` Bradley D. LaRonde
2001-09-01 15:54   ` Bradley D. LaRonde
2001-09-01 16:10   ` Lars Munch
2001-09-01 17:00     ` Bradley D. LaRonde [this message]
2001-09-01 17:00       ` Bradley D. LaRonde

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='012801c13307$a05865e0$3501010a@ltc.com' \
    --to=brad@ltc.com \
    --cc=lars@segv.dk \
    --cc=linux-mips@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