From owner-p4-projects@FreeBSD.ORG Sun Feb 17 15:07:17 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0F77F16A420; Sun, 17 Feb 2008 15:07:17 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AED5716A419; Sun, 17 Feb 2008 15:07:16 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from mail.semihalf.com (mail.semihalf.com [83.15.139.206]) by mx1.freebsd.org (Postfix) with ESMTP id 2EE1513C45D; Sun, 17 Feb 2008 15:07:16 +0000 (UTC) (envelope-from raj@semihalf.com) Received: from localhost (unknown [127.0.0.1]) by mail.semihalf.com (Postfix) with ESMTP id 4204014305; Sun, 17 Feb 2008 16:15:31 +0100 (CET) Received: from mail.semihalf.com ([127.0.0.1]) by localhost (mail.semihalf.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01492-05; Sun, 17 Feb 2008 16:15:29 +0100 (CET) Message-ID: <47B84D9B.4010903@semihalf.com> Date: Sun, 17 Feb 2008 16:07:07 +0100 From: Rafal Jaworowski MIME-Version: 1.0 To: Marcel Moolenaar References: <200802162141.m1GLfgkj048217@repoman.freebsd.org> <47B75EB3.2020001@semihalf.com> <504560A3-EABB-4896-8B3E-C7FC89F31EFB@mac.com> In-Reply-To: <504560A3-EABB-4896-8B3E-C7FC89F31EFB@mac.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at semihalf.com Cc: Marcel Moolenaar , Perforce Change Reviews Subject: Re: PERFORCE change 135517 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Feb 2008 15:07:17 -0000 Marcel Moolenaar wrote: >>> Save U-Boot's registers at startup and restore them when >>> performing a syscall. This way we don't have to compile >>> code specially to avoid using those registers. Otherwise >>> we have to encode knowledge of those registers in at least >>> 4 makefiles and introduce a build knob to enable it all. >>> This does not allow us to build everything with a single >>> build world. >> >> Hi Marcel, >> >> I'm not quite sure this is sufficient... I already had a similar >> save/restore >> in place, but there is some general problem with U-Boot that leads to >> hangs >> (experienced): > > Interesting, I didn't see any such problems with 1.3.2-rc1. > After a bit of digging, I guess this is why it didn't bite you up front: very recently (last minute inclusions during 1.3.2-rc1 preparation) Wolfgang changed the dedicated regs layout... with r29 going -> r2 due to certain problems with gcc 4.x producing bigger code when not all 'high' registers it likes are available in the whole block etc. Anyway, the pointer to global_data now became r2, which is system/reserved according to ABI, so r29 unsafety is gone. However, there's r14, which is used for GOT access, and it needs to be addressed still, as we're prone to the same kind of errors. I think the easiest way to go would be following this recent change and switch r14 -> r13. R13 is also non-volatile in ABI and serves small data area pursposes, and we could use it for GOT ptr. This way no context save/restore would be necessary at all. I'll follow up on this on u-boot-users ML. Rafal