SMP on 5.2-20040531-SNAP-ia64
Arun Sharma
arun.sharma at intel.com
Fri Jul 2 16:08:07 PDT 2004
On 6/18/2004 5:02 AM, Dietmar Hahn wrote:
> result = ia64_sal_entry(SAL_SET_VECTORS,
> SAL_OS_BOOT_RENDEZ,
> ia64_tpa(FDESC_FUNC(os_boot_rendez)),
> ia64_tpa(FDESC_GP(os_boot_rendez)),
> 0, 0, 0, 0);
This expands to:
tpa r62 = r62
And I found that the value of r62 was 0x000004248200800a, which causes the machine to reset.
I suspect that the compiler allocates a temporary structure and statically intializes it. If the kernel linker didn't relocate it properly, it might result in bogus values such as the above.
I did verify that the above value of r62 is infact a part of the kernel binary (so it's not due to register corruption).
struct ia64_fdesc {
u_int64_t func;
u_int64_t gp;
};
e000000004058100 0a800082 24040000 00600000 00000400 ....$....`......
Sorry, I need to leave for a vacation now, but this looks like a linker/relocation issue to me.
-Arun
More information about the freebsd-ia64
mailing list