PERFORCE change 135517 for review

Rafal Jaworowski raj at semihalf.com
Sat Feb 16 14:07:54 PST 2008


Marcel Moolenaar wrote:
> http://perforce.freebsd.org/chv.cgi?CH=135517
> 
> Change 135517 by marcel at 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.


More information about the p4-projects mailing list