Hi Andreas,
On Tue, Apr 16, 2013 at 11:32 PM, Andreas Bießmann < andreas.de...@googlemail.com> wrote: > > Dear Wolfgang, > > On 04/16/2013 03:05 PM, Wolfgang Denk wrote: > > Dear Andreas, > > > > In message <516d4b00.9030...@gmail.com> you wrote: > >> > >>> So it is dead code in mainline, and we will not add it. > >> > >> Well, I don't think it is dead code cause the hang() is called in some ways. > >> This patch opens just the possibility to specialize the hang() by for > >> example a specific board. Maybe this could also be used for specific > >> hang() for different arches when we get closer to the common board files. > > > > I think it is dead code, and not needed nor useful in mainline. I > > cannot even see how it would be useful for you. hang() is defined to > > "hang" the CPU, i. e. to make sure the system will remain in the > > current state. To me this naturally translates into an infinite loop, > > the implementation of which is completely hardware and architecture > > independent. > > Yes it is independent (or should at least). But there are still slightly > different versions: > > ---8<--- > arch/blackfin/lib/board.c:void hang(void) > arch/blackfin/lib/board.c-{ > arch/blackfin/lib/board.c-#ifdef CONFIG_STATUS_LED > arch/blackfin/lib/board.c- status_led_set(STATUS_LED_BOOT, > STATUS_LED_OFF); > arch/blackfin/lib/board.c- status_led_set(STATUS_LED_CRASH, > STATUS_LED_BLINKING); > --->8--- > > ---8<--- > arch/arm/lib/board.c:void __hang(void) > arch/arm/lib/board.c-{ > arch/arm/lib/board.c- puts("### ERROR ### Please RESET the board ###\n"); > arch/arm/lib/board.c- for (;;); > arch/arm/lib/board.c-} > --->8--- > > ---8<--- > arch/powerpc/lib/board.c:void __hang(void) > arch/powerpc/lib/board.c-{ > arch/powerpc/lib/board.c- puts("### ERROR ### Please RESET the > board ###\n"); > arch/powerpc/lib/board.c- bootstage_error(BOOTSTAGE_ID_NEED_RESET); > arch/powerpc/lib/board.c- for (;;) > --->8--- I think that ultimately there should only be a single hang() function > > Note that hang() is not supposed to do anything else, it just hangs > > the system. If you have a debugger attached, you will be able to do a > > simple stack backtrace and see exactly where you are hanging, and why. > > Well, for this specific board I plan to panic() on wrong hardware > detection (which will in turn call hang()). My requirements say that I > have to visualize this state then, I thought it would be a good idea to > blink some lights in the endless loop in hang() for this specific board. > > > If you think you need to have specialized code, you are doing > > something wrong. > > Really? How would you solve this requirement? Doesn't it make sense to use panic()? Regards, Graeme
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot