Date: Thu, 15 Jul 2004 15:35:23 -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: <40F706AB.5070701@intel.com> In-Reply-To: <40E5EAD5.6060405@intel.com> References: <200406181402.32212.dietmar.hahn@fujitsu-siemens.com> <40E5EAD5.6060405@intel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 7/2/2004 4:08 PM, Arun Sharma wrote: > 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); > > [...] > Sorry, I need to leave for a vacation now, but this looks like a > linker/relocation issue to me. > Turned out to be a compiler bug. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16559 The attached work around works for me and takes it all the way to /sbin/init. -Arun Index: sal.c =================================================================== RCS file: /ncvs/src/sys/ia64/ia64/sal.c,v retrieving revision 1.12 diff -u -r1.12 sal.c --- sal.c 1 Feb 2003 22:50:09 -0000 1.12 +++ sal.c 15 Jul 2004 22:11:31 -0000 @@ -152,12 +152,16 @@ ipi_vector[IPI_AP_WAKEUP] = dp->sale_vector; setup_ipi_vectors(dp->sale_vector & 0xf0); -#ifdef SMP - 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); +#ifdef SMP + { + struct ia64_fdesc *f = + (struct ia64_fdesc *) os_boot_rendez; + result = ia64_sal_entry(SAL_SET_VECTORS, + SAL_OS_BOOT_RENDEZ, + ia64_tpa(f->func), + ia64_tpa(f->gp), + 0, 0, 0, 0); + } #endif break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40F706AB.5070701>