Hello everyone, This patch series creates a generic set of functions available to generic code which can be easily hooked per-architecture or per-board. I have tried to be very careful that U-Boot builds and runs on all architectures for the entire duration of this patchset.
This patchset is designed to produce zero change in behavior *except* for one particular scenario: Platforms which perform a "restart" with a simple jump to the "_start" entrypoint (or similar) will no longer try to do that on panic(). The new functions to be called from generic code are: int system_restart(void) void emergency_restart(void) The specific platform hooks available are: int __arch_restart(void) int __board_restart(void) void __arch_emergency_restart(void) void __board_emergency_restart(void) The first few patches set up the generic functions and hooks with a default fallback to the existing "do_reset()" function. Most of the rest are then architecture-specific modifications necessary to convert away from the old do_reset() prototype. The last patch finally does away with that function. In my previous discussions with Wolfgang Denk about the __arch_restart() hook he requested that it should be mandatory for all architectures to implement. Unfortunately the MIPS and MicroBlaze architectures have no architectural system-reset code at all, and others have only very limited "soft-reboot" (IE: Jump-to-"_start"). Specifically, the MIPS do_reset() function used to look like this: _machine_restart(); printf("*** restart failed ***\n"); When those platforms are fixed then it should be safe to remove the weak fallback __arch_restart() function. Cheers, Kyle Moffett _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot