Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Problem caused by forcing interrupt vector location to 0x91xx0200 instead of 0x80000200
@ 2004-10-15  1:29 Kang
  2004-10-15  1:39 ` Michael Uhler
  0 siblings, 1 reply; 2+ messages in thread
From: Kang @ 2004-10-15  1:29 UTC (permalink / raw)
  To: linux-mips

Hello buddies,

I am working on a MIPS4Kc based reference design board. For some
reason, I need to force the interrupt vector location to address
0x91xx0200 instead of 0x80000200 in arch/mips/kernel/traps.c. The
kernel was loaded into 0x91xxxxxx space as well.

The kernel hung just after the interrupt was first time opened, after
sti(), before calibrate_delay() in init/main.c. It was weird that I
didn't see any problem if I put interrupt vector to location
0x80000200 while all other exception vectors to 0x91xxxxxx.

Was interrupt vector location hardcode to the address 0x80000200? Or
some other place I need to change to walk around it. Any idea?

Thanks a bunch for your help.

Leo

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Problem caused by forcing interrupt vector location to 0x91xx0200 instead of 0x80000200
  2004-10-15  1:29 Problem caused by forcing interrupt vector location to 0x91xx0200 instead of 0x80000200 Kang
@ 2004-10-15  1:39 ` Michael Uhler
  0 siblings, 0 replies; 2+ messages in thread
From: Michael Uhler @ 2004-10-15  1:39 UTC (permalink / raw)
  To: Kang; +Cc: linux-mips

Prior to Release 2 of the MIPS32 Architecture, the exception vectors
were fixed at a base of 0x80000000, which put the vectored interrupt
offset at 0x80000200.

The MIPS32 4Kc processor is an implementation of Release 1 of the
Architecture, so it has a fixed exception vector base.  (Note that
the MIPS32 4KEc - the added 'E' is significant - implements Release 2
so in case you mis-typed, there is a solution using the 4KEc).

So with a Release 1 implementation, your only really solution is
to put a jump at 0x80000200 to where you want the code to be.
I suspect that this isn't really what you want.

/gmu

On Thu, 2004-10-14 at 18:29, Kang wrote:
> Hello buddies,
> 
> I am working on a MIPS4Kc based reference design board. For some
> reason, I need to force the interrupt vector location to address
> 0x91xx0200 instead of 0x80000200 in arch/mips/kernel/traps.c. The
> kernel was loaded into 0x91xxxxxx space as well.
> 
> The kernel hung just after the interrupt was first time opened, after
> sti(), before calibrate_delay() in init/main.c. It was weird that I
> didn't see any problem if I put interrupt vector to location
> 0x80000200 while all other exception vectors to 0x91xxxxxx.
> 
> Was interrupt vector location hardcode to the address 0x80000200? Or
> some other place I need to change to walk around it. Any idea?
> 
> Thanks a bunch for your help.
> 
> Leo
-- 

Michael Uhler, Chief Technology Officer
MIPS Technologies, Inc.  Email: uhler@mips.com
1225 Charleston Road
Mountain View, CA 94043

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-10-15  1:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-10-15  1:29 Problem caused by forcing interrupt vector location to 0x91xx0200 instead of 0x80000200 Kang
2004-10-15  1:39 ` Michael Uhler

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox