Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 Jul 2004 16:08:05 -0700
From:      Arun Sharma <arun.sharma@intel.com>
To:        dietmar.hahn@fujitsu-siemens.com
Cc:        freebsd-ia64@freebsd.org
Subject:   Re: SMP on 5.2-20040531-SNAP-ia64
Message-ID:  <40E5EAD5.6060405@intel.com>
In-Reply-To: <200406181402.32212.dietmar.hahn@fujitsu-siemens.com>
References:  <200406181402.32212.dietmar.hahn@fujitsu-siemens.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40E5EAD5.6060405>