Date: Sat, 16 Feb 2008 23:07:47 +0100 From: Rafal Jaworowski <raj@semihalf.com> To: Marcel Moolenaar <marcel@FreeBSD.org> Cc: Perforce Change Reviews <perforce@freebsd.org> Subject: Re: PERFORCE change 135517 for review Message-ID: <47B75EB3.2020001@semihalf.com> In-Reply-To: <200802162141.m1GLfgkj048217@repoman.freebsd.org> References: <200802162141.m1GLfgkj048217@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcel Moolenaar wrote: > http://perforce.freebsd.org/chv.cgi?CH=135517 > > Change 135517 by marcel@marcel_jnpr on 2008/02/16 21:41:02 > > 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): - U-Boot does not handle interrupts so there's no context save/restore of exceptions, other than very few cases - there's one paricular asynchronous way for U-Boot code to regain control without those dedicated r14/29 regs saved: decrementer, which can hit anytime while in the app code, and which usually leads to hangs/corruption as U-Boot code use them blindly - without better handling of U-Boot exeptions such save/restore done only at the external app level will not be safe I'm afraid.. Rafal PS. I guess it would be good to synchronise somehow the work, as we seem to tackle the same pieces, which is a waste of resources.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47B75EB3.2020001>