Software Emulation Kernel Panic--specific information

Wolfgang Denk wd at denx.de
Thu Jun 22 06:08:27 EST 2000


In message <A109131318C4D1119AC20060088DECE330F493 at amwmail.adaptivemicro.com>
Lucinda Schafer wrote:
>
> The NIP, LR, and TRAP always seem to be set to the same values (others
> vary). I assume those values are physical addresses.

No. All these are virtual addresses.

> If so, from System.map, the NIP seems to be between c0001f00 t Trap_1f and
> c0002000 T transfer_to_handler.

It should be obvious that 0xCxxxxxxx is a virtual address.

> I can't make sense of this, since I don't fully understand what the
> relationship of NIP and LR are.  Does the LR address refer to the return
> address after the exception? Does this mean the exception happened in the
> Decrementer timer interrupt? Why is the NIP set to a value between Trap_1f
> and transfer_to_handler?

NIP means "Next Instruction Pointer" and contains the address of  the
statement following the one that caused the exception; LR is the link
register and contains the return address = the address where executun
continues when you return from the current function.

So in simple words: NIP-4 gives the IP (Intruction  Pointer)  aka  PC
(Program  Counter), and LR-4 is the place where your current function
was called.

Hope this helps,

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
To get something done, a committee should consist  of  no  more  than
three men, two of them absent.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list